[elephant-devel] Berkeley DB 4.4.20 Patch

Ian Eslick eslick at csail.mit.edu
Mon Sep 4 03:49:38 UTC 2006


Vladimir,

I applied your changes, cleaned up some other changes for a check in.  I
found the same errors as you on Mac OS using Allegro.  Digging deeper
into this it appears there are genuine issues cropping up in these two
tests. 

It appears that a pcursor-next operation returns nil instead of t and
prematurely terminates the walk of an index.  This may be related to the
advertised change in the auto-commit behavior.  Auto-commit used to be a
default that could be overridden within a transaction.  The new behavior
is global so either you always auto-commit or you have to wrap
transactions around everything.  BDB users relying on the old
interleaving behavior may be heavily effected by the 4.4 upgrade.

I'll continue to look into this tomorrow so I better understand the
implications.

Regards,
Ian

Vladimir Sedach wrote:
> Hi everybody,
>
> Unless the BDB people are lying in their Changelog, the only thing
> that changed between 4.3 and 4.4 as far as Elephant should be
> concerned are the constants in db.h. Diff information provided below.
> I don't use Elephant for anything right now (but I am planning to in
> the future, and what better way to get familiar than fixing things
> like this?), so the test suite is the only thing I have to go by. For
> both BDB 4.3 and 4.4, do-backend-tests passes everything but PCURSOR2
> and INDEXING-REDEF-CLASS. Should I be worried?
>
> Vladimir
>
> cd /home/viper/programming/CL/elephant-work/src/db-bdb/
> diff -c /home/viper/programming/CL/elephant/src/db-bdb/sleepycat.lisp
> /home/viper/programming/CL/elephant-work/src/db-bdb/sleepycat.lisp
> *** /home/viper/programming/CL/elephant/src/db-bdb/sleepycat.lisp   
> 2006-04-29
> 19:03:49.000000000 -0600
> ---
> /home/viper/programming/CL/elephant-work/src/db-bdb/sleepycat.lisp   
> 2006-09-02
> 22:05:23.000000000 -0600
> ***************
> *** 119,151 ****
>  (defconstant DB-UNKNOWN               5)
>
>  (defconstant DB_AUTO_COMMIT   #x1000000)
> ! (defconstant DB_JOINENV          #x0040000)
> ! (defconstant DB_INIT_CDB      #x0001000)
> ! (defconstant DB_INIT_LOCK     #x0002000)
> ! (defconstant DB_INIT_LOG      #x0004000)
> ! (defconstant DB_INIT_MPOOL    #x0008000)
> ! (defconstant DB_INIT_REP      #x0010000)
> ! (defconstant DB_INIT_TXN      #x0020000)
>  (defconstant DB_RECOVER          #x0000020)
>  (defconstant DB_RECOVER_FATAL #x0200000)
>  (defconstant DB_LOCKDOWN      #x0080000)
>  (defconstant DB_PRIVATE          #x0100000)
> ! (defconstant DB_SYSTEM_MEM    #x0400000)
>  (defconstant DB_THREAD          #x0000040)
>  (defconstant DB_FORCE          #x0000004)
> ! (defconstant DB_DEGREE_2      #x2000000)
>  (defconstant DB_DIRTY_READ    #x4000000)
>  (defconstant DB_CREATE          #x0000001)
> ! (defconstant DB_EXCL          #x0001000)
>  (defconstant DB_NOMMAP          #x0000008)
>  (defconstant DB_RDONLY          #x0000010)
>  (defconstant DB_TRUNCATE      #x0000080)
>  (defconstant DB_TXN_NOSYNC    #x0000100)
> ! (defconstant DB_TXN_NOWAIT    #x0001000)
> ! (defconstant DB_TXN_SYNC      #x0002000)
>  (defconstant DB_LOCK_NOWAIT   #x002)
> ! (defconstant DB_DUP          #x0000002)
> ! (defconstant DB_DUPSORT          #x0000004)
>
>  (defconstant DB_CURRENT              7)
>  (defconstant DB_FIRST              9)
> --- 119,152 ----
>  (defconstant DB-UNKNOWN               5)
>
>  (defconstant DB_AUTO_COMMIT   #x1000000)
> ! (defconstant DB_JOINENV          #x0000000)
> ! (defconstant DB_INIT_CDB      #x0002000)
> ! (defconstant DB_INIT_LOCK     #x0004000)
> ! (defconstant DB_INIT_LOG      #x0008000)
> ! (defconstant DB_INIT_MPOOL    #x0010000)
> ! (defconstant DB_INIT_REP      #x0020000)
> ! (defconstant DB_INIT_TXN      #x0040000)
>  (defconstant DB_RECOVER          #x0000020)
>  (defconstant DB_RECOVER_FATAL #x0200000)
>  (defconstant DB_LOCKDOWN      #x0080000)
>  (defconstant DB_PRIVATE          #x0100000)
> ! (defconstant DB_SYSTEM_MEM    #x0800000)
>  (defconstant DB_THREAD          #x0000040)
>  (defconstant DB_FORCE          #x0000004)
> ! (defconstant DB_DEGREE_2      #x2000000) ;; DEPRECATED, now called
> DB_READ_COMMITTED
> ! (defconstant DB_READ_COMMITTED #x2000000)
>  (defconstant DB_DIRTY_READ    #x4000000)
>  (defconstant DB_CREATE          #x0000001)
> ! (defconstant DB_EXCL          #x0002000)
>  (defconstant DB_NOMMAP          #x0000008)
>  (defconstant DB_RDONLY          #x0000010)
>  (defconstant DB_TRUNCATE      #x0000080)
>  (defconstant DB_TXN_NOSYNC    #x0000100)
> ! (defconstant DB_TXN_NOWAIT    #x0002000)
> ! (defconstant DB_TXN_SYNC      #x0004000)
>  (defconstant DB_LOCK_NOWAIT   #x002)
> ! (defconstant DB_DUP          #x0004000)
> ! (defconstant DB_DUPSORT          #x0008000)
>
>  (defconstant DB_CURRENT              7)
>  (defconstant DB_FIRST              9)
>
> Diff finished at Sat Sep  2 22:26:08
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel



More information about the elephant-devel mailing list