]>
git.sur5r.net Git - openldap/log
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 .
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.
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.
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
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.
Howard Chu [Sat, 2 Jun 2012 12:26:31 +0000 (05:26 -0700)]
Tweak prev commit, use first unused slot
Howard Chu [Sat, 2 Jun 2012 12:24:47 +0000 (05:24 -0700)]
Fix mdb_open, re-use closed dbi slots
Howard Chu [Wed, 9 May 2012 18:24:25 +0000 (11:24 -0700)]
ITS#7266 fix rebalance for LEAF2 pages
Howard Chu [Wed, 9 May 2012 05:17:17 +0000 (22:17 -0700)]
More freelist tweaks, avoid referencing freed page
Howard Chu [Sun, 6 May 2012 02:41:45 +0000 (19:41 -0700)]
Further clarification of mdb_open()
Howard Chu [Wed, 18 Apr 2012 22:59:54 +0000 (15:59 -0700)]
ITS#7251 fix Apple/Windows shared mutex naming
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.
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.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:14 +0000 (07:34 +0200)]
libmdb: Simplify mdb_default_cmp. No real change.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: signed meets unsigned warning 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().
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Add C++ 'extern "C" {}' to *.h
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.
Hallvard Furuseth [Thu, 12 Apr 2012 05:34:13 +0000 (07:34 +0200)]
libmdb: Set close-on-exec flag on lockfile
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.
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.
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
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.
Howard Chu [Mon, 9 Apr 2012 12:01:37 +0000 (05:01 -0700)]
ITS#7238 doc clarification
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...
Howard Chu [Mon, 9 Apr 2012 11:44:08 +0000 (04:44 -0700)]
ITS#7230 check and strip 0 length IDLs from freelist
Howard Chu [Sat, 7 Apr 2012 08:27:38 +0000 (01:27 -0700)]
ITS#7229 more mdb_page_split fixes
Howard Chu [Wed, 4 Apr 2012 12:22:26 +0000 (05:22 -0700)]
ITS#7219 fixup keysize in previous commit
Howard Chu [Tue, 3 Apr 2012 19:24:27 +0000 (12:24 -0700)]
ITS#7219 fix for odd-aligned keys in mdb_update_key()
Howard Chu [Fri, 30 Mar 2012 13:36:02 +0000 (06:36 -0700)]
ITS#7210 fix leak of overflow pages in freelist
Howard Chu [Wed, 28 Mar 2012 17:44:18 +0000 (10:44 -0700)]
Partial revert of prev commit
Sub-DBs were correct before
Howard Chu [Wed, 28 Mar 2012 17:34:35 +0000 (10:34 -0700)]
Fix entry counts in cursor_put
when replacing an existing item
Howard Chu [Wed, 28 Mar 2012 16:33:06 +0000 (09:33 -0700)]
Fix uninit'd xcursor index
Howard Chu [Wed, 28 Mar 2012 16:20:18 +0000 (09:20 -0700)]
Add mfree utility to show the freelist
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
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...)
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
Howard Chu [Wed, 21 Mar 2012 00:14:59 +0000 (17:14 -0700)]
Update overflow page count when freeing overflow page
Hallvard Furuseth [Fri, 9 Mar 2012 18:30:34 +0000 (19:30 +0100)]
Fix MDB_txninfo.mt2 padding on Windows/Apple
Hallvard Furuseth [Fri, 9 Mar 2012 18:25:44 +0000 (19:25 +0100)]
Tweak mdb comment with conflicting spec of 'ID'
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.
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.
Hallvard Furuseth [Fri, 9 Mar 2012 17:45:39 +0000 (18:45 +0100)]
ITS#7191 Align dirty MDB pages on the stack
Howard Chu [Fri, 9 Mar 2012 05:28:24 +0000 (21:28 -0800)]
ITS#7191 more alignment tweaks
Revealed when gcc optimization is enabled
Howard Chu [Wed, 7 Mar 2012 06:55:53 +0000 (22:55 -0800)]
Howard Chu [Wed, 7 Mar 2012 06:12:21 +0000 (22:12 -0800)]
ITS#7190 fix merging of branch pages in deletes
Hallvard Furuseth [Sun, 25 Sep 2011 21:36:49 +0000 (23:36 +0200)]
Fix libmdb comments
Hallvard Furuseth [Sat, 3 Mar 2012 08:52:33 +0000 (09:52 +0100)]
Remove development file libmdb/make.sh
Hallvard Furuseth [Sat, 3 Mar 2012 08:49:20 +0000 (09:49 +0100)]
ITS#7191 Fix mdb_xcursor_init1() unaligned access
Howard Chu [Sat, 3 Mar 2012 01:26:49 +0000 (17:26 -0800)]
ITS#7196 use IOV_MAX if it's defined and small
Howard Chu [Tue, 21 Feb 2012 19:52:01 +0000 (11:52 -0800)]
ITS#7160 get BYTE_ORDER def for HPUX (and Solaris)
Howard Chu [Sun, 22 Jan 2012 01:31:23 +0000 (17:31 -0800)]
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.
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.
Howard Chu [Sat, 21 Jan 2012 16:18:37 +0000 (08:18 -0800)]
ITS#7121 fix page splits when newindx == 0
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.
Howard Chu [Sat, 21 Jan 2012 16:07:56 +0000 (08:07 -0800)]
Happy New Year!
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
Kurt Zeilenga [Sun, 1 Jan 2012 15:07:45 +0000 (07:07 -0800)]
Happy New Year!
Howard Chu [Fri, 18 Nov 2011 23:43:55 +0000 (15:43 -0800)]
Add $(SOLIBS) macro for shared lib dependencies
Howard Chu [Tue, 15 Nov 2011 19:23:00 +0000 (11:23 -0800)]
More s/DEBUG/MDB_DEBUG/
Howard Chu [Tue, 15 Nov 2011 00:21:59 +0000 (16:21 -0800)]
Alignment fixes for debug msgs
Howard Chu [Mon, 14 Nov 2011 22:40:43 +0000 (14:40 -0800)]
s/DEBUG/MDB_DEBUG/
Howard Chu [Fri, 11 Nov 2011 20:49:11 +0000 (12:49 -0800)]
Add MDB_FDATASYNC to allow override to fsync if needed.
Howard Chu [Fri, 11 Nov 2011 18:59:27 +0000 (10:59 -0800)]
Use <inttypes.h> instead of <stdint.h>
Howard Chu [Thu, 10 Nov 2011 20:41:34 +0000 (12:41 -0800)]
Fix size check
Howard Chu [Wed, 9 Nov 2011 23:32:37 +0000 (15:32 -0800)]
More Solaris warning cleanup
Howard Chu [Wed, 9 Nov 2011 08:36:50 +0000 (00:36 -0800)]
More pgno alignment tweaks
Howard Chu [Wed, 9 Nov 2011 04:05:29 +0000 (20:05 -0800)]
Add dummy DKEY define
Howard Chu [Wed, 9 Nov 2011 03:04:39 +0000 (19:04 -0800)]
Add Solaris byte-order detection
Howard Chu [Wed, 9 Nov 2011 00:45:45 +0000 (16:45 -0800)]
Fix mdb_drop return
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
Howard Chu [Fri, 7 Oct 2011 01:53:07 +0000 (18:53 -0700)]
Fix page_split with MDB_RESERVE
Howard Chu [Thu, 6 Oct 2011 23:11:25 +0000 (16:11 -0700)]
Fix subcursor initialization
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...
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.
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.
Howard Chu [Mon, 3 Oct 2011 04:27:07 +0000 (21:27 -0700)]
Add MDB_APPEND to avoid splitting full pages
Howard Chu [Mon, 3 Oct 2011 02:52:12 +0000 (19:52 -0700)]
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
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.)
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
Howard Chu [Fri, 30 Sep 2011 04:07:07 +0000 (21:07 -0700)]
Make sure mdb_open actually got a sub-db record
Howard Chu [Fri, 23 Sep 2011 04:46:12 +0000 (21:46 -0700)]
Doc for the MDB_NOSUBDIR env 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.
Howard Chu [Thu, 22 Sep 2011 11:34:40 +0000 (04:34 -0700)]
Reader table notes
Howard Chu [Thu, 22 Sep 2011 00:21:48 +0000 (17:21 -0700)]
assert cleanup
Howard Chu [Wed, 21 Sep 2011 23:37:29 +0000 (16:37 -0700)]
txn_abort/commit free all their cursors now.
Howard Chu [Wed, 21 Sep 2011 23:06:52 +0000 (16:06 -0700)]
Only free malloc'd 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.
Howard Chu [Tue, 20 Sep 2011 19:57:05 +0000 (12:57 -0700)]
Add support for nested transactions.
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.
Howard Chu [Mon, 19 Sep 2011 01:26:54 +0000 (18:26 -0700)]
Additional fix for prev commit
Howard Chu [Mon, 19 Sep 2011 01:13:23 +0000 (18:13 -0700)]
Make sure 2 subpages fit in one real page
Howard Chu [Mon, 19 Sep 2011 00:07:47 +0000 (17:07 -0700)]
Fix last delete from a subpage
Howard Chu [Sun, 18 Sep 2011 23:39:18 +0000 (16:39 -0700)]
Fix
09006ccec7928c9cf53bca6abe741e8d4d466c98
Check for stale DBs was in the wrong place.
Howard Chu [Sun, 18 Sep 2011 21:18:27 +0000 (14:18 -0700)]
Fix mdb_drop() if not deleting the DB record
Howard Chu [Sun, 18 Sep 2011 20:28:08 +0000 (13:28 -0700)]
Fix typo, minor cleanup
Howard Chu [Sun, 18 Sep 2011 19:37:02 +0000 (12:37 -0700)]
Add mdb_drop() for deleting a DB
Allow MIDLs to grow arbitrarily, to allow unlimited number of
pages to be freed in one txn.
Howard Chu [Sun, 18 Sep 2011 17:38:08 +0000 (10:38 -0700)]
API change, consistency check
mdb_close() takes an env, not a txn.
Also, add check for stale DB records (in case some other process
wrote to the DB last).