]> git.sur5r.net Git - openldap/log
openldap
12 years agoSkip unneeded calls to mdb_page_get in mdb_page_search
Howard Chu [Mon, 23 Jul 2012 11:23:49 +0000 (04:23 -0700)]
Skip unneeded calls to mdb_page_get in mdb_page_search

12 years agoLeave extra space when creating a fake page
Howard Chu [Mon, 23 Jul 2012 00:42:36 +0000 (17:42 -0700)]
Leave extra space when creating a fake page

Minimizes the number of memcpy's if additional dups are stored.

12 years agoAppend mode still needs to detect duplicates
Howard Chu [Mon, 23 Jul 2012 00:41:58 +0000 (17:41 -0700)]
Append mode still needs to detect duplicates

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.