]> git.sur5r.net Git - openldap/log
openldap
12 years agoAppend tweaks, page_split fixes
Howard Chu [Sat, 21 Jul 2012 13:10:02 +0000 (06:10 -0700)]
Append tweaks, page_split fixes

Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.

12 years agoMake sure cursor's DB is init'd if STALE.
Howard Chu [Tue, 17 Jul 2012 11:02:48 +0000 (04:02 -0700)]
Make sure cursor's DB is init'd if STALE.

12 years agoDon't use env-private copy of DB root nodes.
Howard Chu [Fri, 13 Jul 2012 00:04:05 +0000 (17:04 -0700)]
Don't use env-private copy of DB root nodes.

Just lookup the DB roots as needed. When many DBs are in use,
most of the copies won't be referenced in a given txn, and
there's a bad race condition in the copy routine.

12 years agoFix darwin sem_open() names
Howard Chu [Fri, 13 Jul 2012 18:57:11 +0000 (11:57 -0700)]
Fix darwin sem_open() names

Must begin with '/'

12 years agoFix ID -> MDB_ID due to 20baad4a207db5d0e84fc3a7409f216aefa59385
Howard Chu [Fri, 13 Jul 2012 18:56:29 +0000 (11:56 -0700)]
Fix ID -> MDB_ID due to 20baad4a207db5d0e84fc3a7409f216aefa59385

12 years agoWindows thread callback support
Howard Chu [Thu, 12 Jul 2012 23:50:27 +0000 (16:50 -0700)]
Windows thread callback support

12 years agoDrop me_toggle, unused
Howard Chu [Mon, 9 Jul 2012 01:24:11 +0000 (18:24 -0700)]
Drop me_toggle, unused

12 years agoRevert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
Howard Chu [Mon, 9 Jul 2012 01:18:12 +0000 (18:18 -0700)]
Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."

This reverts commit 4a0b30499caab8628efcedb8be5643fead7cd17e.

12 years agoFix: avoid direct reference to meta pages
Howard Chu [Sat, 7 Jul 2012 00:38:03 +0000 (17:38 -0700)]
Fix: avoid direct reference to meta pages

Relevant info should be copied during txn_begin only.

12 years agoAdd MDB_NOMETASYNC env option.
Howard Chu [Fri, 6 Jul 2012 01:11:18 +0000 (18:11 -0700)]
Add MDB_NOMETASYNC env option.

Just a trial. This may not make sense if we decide to split the
meta pages into their own separate file, to allow meta traffic to
reside on a separate spindle.

12 years agoTweak b802bcf7040110e1f0768d9d9ffa88dabd4bd5e7
Howard Chu [Fri, 6 Jul 2012 00:43:29 +0000 (17:43 -0700)]
Tweak b802bcf7040110e1f0768d9d9ffa88dabd4bd5e7

Clarify prev commit, fix Doxygen comments broken by earlier changes

12 years agoPartial revert of 13c663f666ac28d7a72cbe644d393fc8d2dd9881
Howard Chu [Thu, 5 Jul 2012 23:40:46 +0000 (16:40 -0700)]
Partial revert of 13c663f666ac28d7a72cbe644d393fc8d2dd9881

Don't re-use free pages so soon; that leaves us vulnerable to
DB corruption if data syncs successfully but meta doesn't.

12 years agoTweak prev commit, use first unused slot
Howard Chu [Sat, 2 Jun 2012 12:26:31 +0000 (05:26 -0700)]
Tweak prev commit, use first unused slot

12 years agoFix mdb_open, re-use closed dbi slots
Howard Chu [Sat, 2 Jun 2012 12:24:47 +0000 (05:24 -0700)]
Fix mdb_open, re-use closed dbi slots

12 years agoITS#7266 fix rebalance for LEAF2 pages
Howard Chu [Wed, 9 May 2012 18:24:25 +0000 (11:24 -0700)]
ITS#7266 fix rebalance for LEAF2 pages

12 years agoMore freelist tweaks, avoid referencing freed page
Howard Chu [Wed, 9 May 2012 05:17:17 +0000 (22:17 -0700)]
More freelist tweaks, avoid referencing freed page

12 years agoFurther clarification of mdb_open()
Howard Chu [Sun, 6 May 2012 02:41:45 +0000 (19:41 -0700)]
Further clarification of mdb_open()

12 years agoITS#7251 fix Apple/Windows shared mutex naming
Howard Chu [Wed, 18 Apr 2012 22:59:54 +0000 (15:59 -0700)]
ITS#7251 fix Apple/Windows shared mutex naming

12 years agolibmdb: midl.h namespace cleanup.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: midl.h namespace cleanup.

Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.

12 years agolibmdb: Simplify pick_meta() from read_meta().
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: Simplify pick_meta() from read_meta().

Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.

12 years agolibmdb: Simplify mdb_default_cmp. No real change.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: Simplify mdb_default_cmp. No real change.

12 years agolibmdb: signed meets unsigned warning cleanup
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: signed meets unsigned warning cleanup

12 years agolibmdb: MDB_FDATASYNC code cleanup.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: MDB_FDATASYNC code cleanup.

Define MDB_FDATASYNC() instead of redefining fdatasync().

12 years agolibmdb: Add C++ 'extern "C" {}' to *.h
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Add C++ 'extern "C" {}' to *.h

12 years agolibmdb: Don't open datafile twice when not needed.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Don't open datafile twice when not needed.

If the database is opened with MDB_RDONLY or MDB_NOSYNC,
instead use the same file descriptor for me_mfd and me_fd.

Also factor out Windows/Unix error handling after open.

12 years agolibmdb: Set close-on-exec flag on lockfile
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Set close-on-exec flag on lockfile

12 years agolibmdb: Do not use the MDB_txbody.mtb_txnid field.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Do not use the MDB_txbody.mtb_txnid field.

Get txn->mt_txnid from the meta page instead.  Otherwise it
and txn->mt_toggle could become inconsistent, since read-only
txns fetched both from MDB_txbody without mutex proteciton.

12 years agoFix MDB_DEBUG in last ITS#7299 commit.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
Fix MDB_DEBUG in last ITS#7299 commit.

Make DPRINTF usable in if-else.  Silence signed vs unsigned warning.

12 years agoITS#7229 more mdb_page_split tweaks
Howard Chu [Tue, 10 Apr 2012 21:05:05 +0000 (14:05 -0700)]
ITS#7229 more mdb_page_split tweaks

Also add mdb_debug/mdb_debug_start to toggle debug output at runtime

12 years agoITS#7210 fix check for freelist changes
Howard Chu [Tue, 10 Apr 2012 02:24:47 +0000 (19:24 -0700)]
ITS#7210 fix check for freelist changes

Was being fooled before because the newly malloc'd block had
the same address as the previously freed block.

12 years agoITS#7238 doc clarification
Howard Chu [Mon, 9 Apr 2012 12:01:37 +0000 (05:01 -0700)]
ITS#7238 doc clarification

12 years agoITS#7229 additional tweaks
Howard Chu [Mon, 9 Apr 2012 11:45:32 +0000 (04:45 -0700)]
ITS#7229 additional tweaks

Should probably compare nsize to pg_size/4 instead...

12 years agoITS#7230 check and strip 0 length IDLs from freelist
Howard Chu [Mon, 9 Apr 2012 11:44:08 +0000 (04:44 -0700)]
ITS#7230 check and strip 0 length IDLs from freelist

12 years agoITS#7229 more mdb_page_split fixes
Howard Chu [Sat, 7 Apr 2012 08:27:38 +0000 (01:27 -0700)]
ITS#7229 more mdb_page_split fixes

12 years agoITS#7219 fixup keysize in previous commit
Howard Chu [Wed, 4 Apr 2012 12:22:26 +0000 (05:22 -0700)]
ITS#7219 fixup keysize in previous commit

12 years agoITS#7219 fix for odd-aligned keys in mdb_update_key()
Howard Chu [Tue, 3 Apr 2012 19:24:27 +0000 (12:24 -0700)]
ITS#7219 fix for odd-aligned keys in mdb_update_key()

12 years agoITS#7210 fix leak of overflow pages in freelist
Howard Chu [Fri, 30 Mar 2012 13:36:02 +0000 (06:36 -0700)]
ITS#7210 fix leak of overflow pages in freelist

12 years agoPartial revert of prev commit
Howard Chu [Wed, 28 Mar 2012 17:44:18 +0000 (10:44 -0700)]
Partial revert of prev commit

Sub-DBs were correct before

12 years agoFix entry counts in cursor_put
Howard Chu [Wed, 28 Mar 2012 17:34:35 +0000 (10:34 -0700)]
Fix entry counts in cursor_put

when replacing an existing item

12 years agoFix uninit'd xcursor index
Howard Chu [Wed, 28 Mar 2012 16:33:06 +0000 (09:33 -0700)]
Fix uninit'd xcursor index

12 years agoAdd mfree utility to show the freelist
Howard Chu [Wed, 28 Mar 2012 16:20:18 +0000 (09:20 -0700)]
Add mfree utility to show the freelist

12 years agoITS#7210 additional freelist fixes
Howard Chu [Tue, 27 Mar 2012 17:42:22 +0000 (10:42 -0700)]
ITS#7210 additional freelist fixes

Also allow read access to freelist in mdb_cursor_open

12 years agoITS#7210 partial fix
Howard Chu [Tue, 27 Mar 2012 13:44:28 +0000 (06:44 -0700)]
ITS#7210 partial fix

Allow pages from free list to be used when growing the free list.
(Yes, this is self-referential...)

12 years agoITS#7213 fix page_split with MDB_APPEND
Howard Chu [Mon, 26 Mar 2012 13:58:16 +0000 (06:58 -0700)]
ITS#7213 fix page_split with MDB_APPEND

don't skip the cursor adjust checks

12 years agoUpdate overflow page count when freeing overflow page
Howard Chu [Wed, 21 Mar 2012 00:14:59 +0000 (17:14 -0700)]
Update overflow page count when freeing overflow page

12 years agoFix MDB_txninfo.mt2 padding on Windows/Apple
Hallvard Furuseth [Fri, 9 Mar 2012 18:30:34 +0000 (19:30 +0100)]
Fix MDB_txninfo.mt2 padding on Windows/Apple

12 years agoTweak mdb comment with conflicting spec of 'ID'
Hallvard Furuseth [Fri, 9 Mar 2012 18:25:44 +0000 (19:25 +0100)]
Tweak mdb comment with conflicting spec of 'ID'

12 years agoFix valgrind call after malloc failure in mdb.
Hallvard Furuseth [Fri, 9 Mar 2012 18:22:31 +0000 (19:22 +0100)]
Fix valgrind call after malloc failure in  mdb.

Also line up the code logic a bit.

12 years agoClean up MAP_FAILED handling in mdb.
Hallvard Furuseth [Fri, 9 Mar 2012 18:06:04 +0000 (19:06 +0100)]
Clean up MAP_FAILED handling in mdb.

Delay (MDB_txninfo*) cast to after comparing mmap() with MAP_FAILED.
Otherwise, if MAP_FAILED = (void*)-1 but MDB_txninfo requires stricter
alignment, the compiler could assume the result is never MAP_FAILED.

Also store NULL in env->(me_map, me_txns) after mmap failure.

12 years agoITS#7191 Align dirty MDB pages on the stack
Hallvard Furuseth [Fri, 9 Mar 2012 17:45:39 +0000 (18:45 +0100)]
ITS#7191 Align dirty MDB pages on the stack

12 years agoITS#7191 more alignment tweaks
Howard Chu [Fri, 9 Mar 2012 05:28:24 +0000 (21:28 -0800)]
ITS#7191 more alignment tweaks

Revealed when gcc optimization is enabled

12 years agoFix typo in 7bc62c512824c0d54cc6885ea876c2764510eca2
Howard Chu [Wed, 7 Mar 2012 06:55:53 +0000 (22:55 -0800)]
Fix typo in 7bc62c512824c0d54cc6885ea876c2764510eca2

12 years agoITS#7190 fix merging of branch pages in deletes
Howard Chu [Wed, 7 Mar 2012 06:12:21 +0000 (22:12 -0800)]
ITS#7190 fix merging of branch pages in deletes

12 years agoFix libmdb comments
Hallvard Furuseth [Sun, 25 Sep 2011 21:36:49 +0000 (23:36 +0200)]
Fix libmdb comments

12 years agoRemove development file libmdb/make.sh
Hallvard Furuseth [Sat, 3 Mar 2012 08:52:33 +0000 (09:52 +0100)]
Remove development file libmdb/make.sh

12 years agoITS#7191 Fix mdb_xcursor_init1() unaligned access
Hallvard Furuseth [Sat, 3 Mar 2012 08:49:20 +0000 (09:49 +0100)]
ITS#7191 Fix mdb_xcursor_init1() unaligned access

12 years agoITS#7196 use IOV_MAX if it's defined and small
Howard Chu [Sat, 3 Mar 2012 01:26:49 +0000 (17:26 -0800)]
ITS#7196 use IOV_MAX if it's defined and small

12 years agoITS#7160 get BYTE_ORDER def for HPUX (and Solaris)
Howard Chu [Tue, 21 Feb 2012 19:52:01 +0000 (11:52 -0800)]
ITS#7160 get BYTE_ORDER def for HPUX (and Solaris)

12 years agoFix typo in e8e57be42107a877f604d0c4e67115ef37681a1b
Howard Chu [Sun, 22 Jan 2012 01:31:23 +0000 (17:31 -0800)]
Fix typo in e8e57be42107a877f604d0c4e67115ef37681a1b

12 years agoAdd valgrind support with -DUSE_VALGRIND
Howard Chu [Sat, 21 Jan 2012 16:22:59 +0000 (08:22 -0800)]
Add valgrind support with -DUSE_VALGRIND

Track allocations and invalid accesses to freed tmp pages.

12 years agotxn_commit must abort txn before returning errors
Howard Chu [Sat, 21 Jan 2012 16:20:43 +0000 (08:20 -0800)]
txn_commit must abort txn before returning errors

Fix for failure when committing a txn that is a child of
some parent txn.

12 years agoITS#7121 fix page splits when newindx == 0
Howard Chu [Sat, 21 Jan 2012 16:18:37 +0000 (08:18 -0800)]
ITS#7121 fix page splits when newindx == 0

12 years agoITS#7126 fix cursor tracking code
Howard Chu [Sat, 21 Jan 2012 16:12:56 +0000 (08:12 -0800)]
ITS#7126 fix cursor tracking code

Don't compare cursors that aren't deep enough to match the
current cursor.

12 years agoHappy New Year!
Howard Chu [Sat, 21 Jan 2012 16:07:56 +0000 (08:07 -0800)]
Happy New Year!

12 years agoITS#7121 fix page splits when data+key size is too large
Howard Chu [Wed, 4 Jan 2012 23:25:18 +0000 (15:25 -0800)]
ITS#7121 fix page splits when data+key size is too large

12 years agoHappy New Year!
Kurt Zeilenga [Sun, 1 Jan 2012 15:07:45 +0000 (07:07 -0800)]
Happy New Year!

13 years agoAdd $(SOLIBS) macro for shared lib dependencies
Howard Chu [Fri, 18 Nov 2011 23:43:55 +0000 (15:43 -0800)]
Add $(SOLIBS) macro for shared lib dependencies

13 years agoMore s/DEBUG/MDB_DEBUG/
Howard Chu [Tue, 15 Nov 2011 19:23:00 +0000 (11:23 -0800)]
More s/DEBUG/MDB_DEBUG/

13 years agoAlignment fixes for debug msgs
Howard Chu [Tue, 15 Nov 2011 00:21:59 +0000 (16:21 -0800)]
Alignment fixes for debug msgs

13 years agos/DEBUG/MDB_DEBUG/
Howard Chu [Mon, 14 Nov 2011 22:40:43 +0000 (14:40 -0800)]
s/DEBUG/MDB_DEBUG/

13 years agoAdd MDB_FDATASYNC to allow override to fsync if needed.
Howard Chu [Fri, 11 Nov 2011 20:49:11 +0000 (12:49 -0800)]
Add MDB_FDATASYNC to allow override to fsync if needed.

13 years agoUse <inttypes.h> instead of <stdint.h>
Howard Chu [Fri, 11 Nov 2011 18:59:27 +0000 (10:59 -0800)]
Use <inttypes.h> instead of <stdint.h>

13 years agoFix size check
Howard Chu [Thu, 10 Nov 2011 20:41:34 +0000 (12:41 -0800)]
Fix size check

13 years agoMore Solaris warning cleanup
Howard Chu [Wed, 9 Nov 2011 23:32:37 +0000 (15:32 -0800)]
More Solaris warning cleanup

13 years agoMore pgno alignment tweaks
Howard Chu [Wed, 9 Nov 2011 08:36:50 +0000 (00:36 -0800)]
More pgno alignment tweaks

13 years agoAdd dummy DKEY define
Howard Chu [Wed, 9 Nov 2011 04:05:29 +0000 (20:05 -0800)]
Add dummy DKEY define

13 years agoAdd Solaris byte-order detection
Howard Chu [Wed, 9 Nov 2011 03:04:39 +0000 (19:04 -0800)]
Add Solaris byte-order detection

13 years agoFix mdb_drop return
Howard Chu [Wed, 9 Nov 2011 00:45:45 +0000 (16:45 -0800)]
Fix mdb_drop return

13 years agoAndroid/ARM portability
Howard Chu [Sat, 15 Oct 2011 05:03:46 +0000 (22:03 -0700)]
Android/ARM portability

2-byte alignment isn't good enough for subpages

13 years agoFix page_split with MDB_RESERVE
Howard Chu [Fri, 7 Oct 2011 01:53:07 +0000 (18:53 -0700)]
Fix page_split with MDB_RESERVE

13 years agoFix subcursor initialization
Howard Chu [Thu, 6 Oct 2011 23:11:25 +0000 (16:11 -0700)]
Fix subcursor initialization

13 years agoDon't use Append mode when splits are caused by sub-page inserts
Howard Chu [Tue, 4 Oct 2011 01:02:17 +0000 (18:02 -0700)]
Don't use Append mode when splits are caused by sub-page inserts

Sub-pages need room to grow...

13 years agoFix freelist bug on page split
Howard Chu [Mon, 3 Oct 2011 19:40:53 +0000 (12:40 -0700)]
Fix freelist bug on page split

NULL out env->pghead before writing it, so that its pages can't be used
to satisfy the write.

13 years agoAdd rudimentary MDB_MULTIPLE support for puts
Howard Chu [Mon, 3 Oct 2011 18:25:31 +0000 (11:25 -0700)]
Add rudimentary MDB_MULTIPLE support for puts

Only for DUPFIXED DBs. Still could do better.

13 years agoAdd MDB_APPEND to avoid splitting full pages
Howard Chu [Mon, 3 Oct 2011 04:27:07 +0000 (21:27 -0700)]
Add MDB_APPEND to avoid splitting full pages

13 years agoFix 6e05ca17e988754ae90fde1921765ba130bb90b2
Howard Chu [Mon, 3 Oct 2011 02:52:12 +0000 (19:52 -0700)]
Fix 6e05ca17e988754ae90fde1921765ba130bb90b2

Missed a MDB_RESERVE case

13 years agoAdd mdb_cursor_txn() and mdb_cursor_dbi() for querying the cursor
Howard Chu [Mon, 3 Oct 2011 02:27:31 +0000 (19:27 -0700)]
Add mdb_cursor_txn() and mdb_cursor_dbi() for querying the cursor

13 years agoAdd MDB_RESERVE mode
Howard Chu [Sun, 2 Oct 2011 17:02:30 +0000 (10:02 -0700)]
Add MDB_RESERVE mode

When putting a record, just make space for the data, don't copy it.
(Not compatible with MDB_DUPSORT, since the actual data is needed
to determine the insert location.)

13 years agoTweak cursor adjustment code
Howard Chu [Sat, 1 Oct 2011 05:15:05 +0000 (22:15 -0700)]
Tweak cursor adjustment code

Skip the original cursor that made the change

13 years agoMake sure mdb_open actually got a sub-db record
Howard Chu [Fri, 30 Sep 2011 04:07:07 +0000 (21:07 -0700)]
Make sure mdb_open actually got a sub-db record

13 years agoDoc for the MDB_NOSUBDIR env option
Howard Chu [Fri, 23 Sep 2011 04:46:12 +0000 (21:46 -0700)]
Doc for the MDB_NOSUBDIR env option

13 years agoAdd MDB_NOSUBDIR option
Howard Chu [Fri, 23 Sep 2011 01:05:06 +0000 (18:05 -0700)]
Add MDB_NOSUBDIR option

Create the data file using exactly the given pathname, and
the lock file using a suffix on the data file name.

13 years agoReader table notes
Howard Chu [Thu, 22 Sep 2011 11:34:40 +0000 (04:34 -0700)]
Reader table notes

13 years agoassert cleanup
Howard Chu [Thu, 22 Sep 2011 00:21:48 +0000 (17:21 -0700)]
assert cleanup

13 years agotxn_abort/commit free all their cursors now.
Howard Chu [Wed, 21 Sep 2011 23:37:29 +0000 (16:37 -0700)]
txn_abort/commit free all their cursors now.

13 years agoOnly free malloc'd cursors
Howard Chu [Wed, 21 Sep 2011 23:06:52 +0000 (16:06 -0700)]
Only free malloc'd cursors

13 years agoTrack changes to all cursors.
Howard Chu [Wed, 21 Sep 2011 21:14:11 +0000 (14:14 -0700)]
Track changes to all cursors.

For any change to a page or node, update all other cursors pointing
at the same page (or node). Cursors are now stored in a linked list
off their owning transaction. Cursors are all closed when the transaction
ends. Cursors in parent transactions are updated when their child
transaction commits.

13 years agoAdd support for nested transactions.
Howard Chu [Tue, 20 Sep 2011 19:57:05 +0000 (12:57 -0700)]
Add support for nested transactions.

13 years agolibmdb IDL cleanup.
Hallvard Furuseth [Tue, 13 Sep 2011 07:39:28 +0000 (09:39 +0200)]
libmdb IDL cleanup.

Microoptimize IDL search.
Use RANGE_<FIRST/LAST> when IDL is known to be a range.

13 years agoAdditional fix for prev commit
Howard Chu [Mon, 19 Sep 2011 01:26:54 +0000 (18:26 -0700)]
Additional fix for prev commit