Hallvard Furuseth [Sat, 4 Jul 2015 11:48:04 +0000 (13:48 +0200)]
Simpler mdb_txn_commit().
mt_env is always set.
Commit(mt_child) resets mt_child, so parent need not.
Hallvard Furuseth [Sat, 4 Jul 2015 11:48:03 +0000 (13:48 +0200)]
mdb_txn_begin() cleanup
Hallvard Furuseth [Sat, 4 Jul 2015 11:48:02 +0000 (13:48 +0200)]
mdb_drop0(): Omit scanning DUPSORT sub-DB leaves
Hallvard Furuseth [Sat, 4 Jul 2015 11:48:01 +0000 (13:48 +0200)]
Use mdb_cmp_long() for FREE_DBI
Hallvard Furuseth [Sat, 4 Jul 2015 11:42:41 +0000 (13:42 +0200)]
mdb_env_get_flags(): Hide internal flags
Hallvard Furuseth [Fri, 3 Jul 2015 20:38:50 +0000 (22:38 +0200)]
ITS#7969 Wrap unportable __sync_synchronize in #if
Hallvard Furuseth [Thu, 2 Jul 2015 19:14:56 +0000 (21:14 +0200)]
Restore support for Posix semaphores
Hallvard Furuseth [Thu, 2 Jul 2015 19:06:35 +0000 (21:06 +0200)]
Fix mdb_mutex_t, add mdb_mutexref_t, drop MDB_MUTEX().
Fixes the types of Windows HANDLEs, they became HANDLE*.
MDB_MUTEX() took a magic r/w arg which it's nice to get rid of.
Hallvard Furuseth [Thu, 2 Jul 2015 19:06:27 +0000 (21:06 +0200)]
Add MDB_USE_POSIX_MUTEX.
So far just to help aligning mdb.master and mdb.RE.
We'll make it an option later.
Howard Chu [Thu, 2 Jul 2015 17:03:36 +0000 (18:03 +0100)]
CHANGES only belongs in mdb.RE
Howard Chu [Fri, 19 Jun 2015 13:13:43 +0000 (14:13 +0100)]
Bump version to 0.9.15
(not really, since this is the dev/non-release branch)
Hallvard Furuseth [Tue, 2 Jun 2015 18:51:03 +0000 (20:51 +0200)]
Use ftok() for semget(), and only lower mode bits
Hallvard Furuseth [Tue, 2 Jun 2015 18:49:33 +0000 (20:49 +0200)]
Clarify mdb_env_open() doc of 'mode' param
Hallvard Furuseth [Thu, 28 May 2015 18:51:24 +0000 (20:51 +0200)]
ITS#8156 Fix MDB_MAXKEYSIZE doc
Hallvard Furuseth [Wed, 27 May 2015 20:26:54 +0000 (22:26 +0200)]
ITS#8157 mdb_txn_renew0(): init after error checks
Hallvard Furuseth [Wed, 27 May 2015 20:23:50 +0000 (22:23 +0200)]
mdb_txn_renew(): Drop pointless diff from mdb.RE.
Makes the code friendlier to "git cherry-pick".
Hallvard Furuseth [Wed, 20 May 2015 02:04:38 +0000 (04:04 +0200)]
Set/clear mp_pad, md_pad (MDB_DUPFIXED data size).
mdb_xcursor_init1(): md_pad is only used when MDB_DUPFIXED.
mdb_page_split(): Copy mp_pad too. Used by mdb_page_list().
Hallvard Furuseth [Wed, 20 May 2015 01:17:47 +0000 (03:17 +0200)]
mtest*.c: Fix MDB_NOOVERWRITE, plug cursor leak
Hallvard Furuseth [Tue, 19 May 2015 18:33:35 +0000 (20:33 +0200)]
ITS#8117 Fix MDB_INTEGERDUP keysize doc + md_dcmp
Howard Chu [Sun, 3 May 2015 06:52:47 +0000 (07:52 +0100)]
ITS#8117 better fix
Don't change mc_dbx because we would need to undo the change if
the txn aborts. Make the fix (for get) match existing code for put.
Howard Chu [Sun, 3 May 2015 06:43:11 +0000 (07:43 +0100)]
Revert "ITS#8117 cleanup prev commit"
This reverts commit
ce7ba0ceb69fd2cd56d557c1a877d046ec9f246c.
Revert "ITS#8117 fix INTEGERDUP compare"
This reverts commit
ed13d4aa59cf06a1bb6b096fe19af63fc6f8737a.
Howard Chu [Wed, 29 Apr 2015 16:28:21 +0000 (17:28 +0100)]
ITS#8117 cleanup prev commit
Howard Chu [Wed, 29 Apr 2015 16:12:40 +0000 (17:12 +0100)]
ITS#8117 fix INTEGERDUP compare
Howard Chu [Thu, 23 Apr 2015 04:49:56 +0000 (05:49 +0100)]
ITS#8109 fix mdb_cursor_del0 on empty DB
Howard Chu [Fri, 17 Apr 2015 17:32:54 +0000 (18:32 +0100)]
ITS#8106 retry writes on EINTR
Howard Chu [Wed, 15 Apr 2015 23:19:40 +0000 (00:19 +0100)]
ITS#8062 also handle subcursors
Howard Chu [Wed, 15 Apr 2015 22:20:55 +0000 (23:20 +0100)]
ITS#8062 fix rebalance
(Probably fixes the ITS, definitely fixes a bug) when collapsing
the root page, fixups of other cursors was incomplete.
Hallvard Furuseth [Tue, 14 Apr 2015 18:25:51 +0000 (20:25 +0200)]
Cleanup mtest* and sample-*.
Fix mdb_txn_begin(&read-only txn) calls. Test mdb_env_set_maxreaders().
Rename DBI open/close functions. Move mdb_dbi_close() out of txn.
Hallvard Furuseth [Tue, 14 Apr 2015 18:24:30 +0000 (20:24 +0200)]
Reformat mdb_dbi_open() doc for clarity
Hallvard Furuseth [Wed, 8 Apr 2015 19:52:05 +0000 (21:52 +0200)]
Cleanup MDB_env.me_txn0.
More fallout from
4d02c741b120786df1b87ee9ed49c1d3f9bc7522.
Hallvard Furuseth [Wed, 8 Apr 2015 19:51:50 +0000 (21:51 +0200)]
Fix per-txn MDB_NOMETASYNC, MDB_NOSYNC.
Fallout from
4d02c741b120786df1b87ee9ed49c1d3f9bc7522. The flags
were ignored: mdb_txn_renew0/begin cleared and/or did not set them.
Hallvard Furuseth [Wed, 8 Apr 2015 19:51:16 +0000 (21:51 +0200)]
Renumber MDB_TXN_* flags, simplify flag code
Hallvard Furuseth [Wed, 8 Apr 2015 19:47:24 +0000 (21:47 +0200)]
mdb_txn_renew(): Clear error from previous txn
Howard Chu [Wed, 18 Mar 2015 19:26:21 +0000 (19:26 +0000)]
ITS#8062 fix uninit'd cursor index
Howard Chu [Thu, 26 Feb 2015 21:36:04 +0000 (21:36 +0000)]
ITS#8066 fix mdb_load with large values
Quanah Gibson-Mount [Thu, 12 Feb 2015 17:17:59 +0000 (11:17 -0600)]
Happy New Year
Quanah Gibson-Mount [Thu, 12 Feb 2015 16:46:33 +0000 (10:46 -0600)]
Happy New Year
Howard Chu [Mon, 2 Feb 2015 10:33:41 +0000 (10:33 +0000)]
Also support NOMETASYNC on txn_begin
Howard Chu [Fri, 30 Jan 2015 09:21:05 +0000 (09:21 +0000)]
Support MDB_NOSYNC on mdb_txn_begin()
Hallvard Furuseth [Tue, 27 Jan 2015 05:10:57 +0000 (06:10 +0100)]
Fix EACCES description
Hallvard Furuseth [Sat, 17 Jan 2015 05:32:12 +0000 (06:32 +0100)]
ITS#7971 Fix reader allocation and me_numreaders
Hallvard Furuseth [Wed, 14 Jan 2015 07:12:50 +0000 (08:12 +0100)]
mdb_env_set_flags(): Reject CHANGELESS flags.
Reverts part of
a2ac10107e2fb845c4a38a339239063ec4407d84.
MDB_ROBUST needed to be accepted, but that flag is gone.
Howard Chu [Tue, 13 Jan 2015 18:47:18 +0000 (18:47 +0000)]
Fix potential null deref (coverity)
Hallvard Furuseth [Mon, 12 Jan 2015 20:02:29 +0000 (21:02 +0100)]
Whitespace (align with mdb.RE)
Hallvard Furuseth [Mon, 12 Jan 2015 20:02:29 +0000 (21:02 +0100)]
Make SysV semaphores robust. Cleanup MDB_ROBUST.
Hallvard Furuseth [Mon, 12 Jan 2015 11:19:51 +0000 (12:19 +0100)]
ITS#8021 doc: Don't mix MDB_WRITEMAP + non-WRITEMAP
Howard Chu [Mon, 12 Jan 2015 10:38:14 +0000 (10:38 +0000)]
More cleanup for fdatasync hack
Howard Chu [Sun, 11 Jan 2015 11:37:37 +0000 (11:37 +0000)]
Tweak conditionals for fdatasync hack
Howard Chu [Fri, 9 Jan 2015 11:25:07 +0000 (11:25 +0000)]
ITS#8021 env_sync is invalid in RDONLY env
Howard Chu [Thu, 8 Jan 2015 12:54:14 +0000 (12:54 +0000)]
fdatasync hack, again
Check for ext3/ext4 fs, then check kernel version.
Howard Chu [Thu, 8 Jan 2015 12:17:29 +0000 (12:17 +0000)]
Revert "Note MDB_SAFE_FDATASYNC"
This reverts commit
293d6bb47f7f0d54a45d57ce2be3a9595e806dc0.
Revert "Simpler fdatasync hack"
This reverts commit
9585c012335b2a28fbfdd267bcdeeeea91dc0f08.
Howard Chu [Thu, 8 Jan 2015 11:43:57 +0000 (11:43 +0000)]
Note MDB_SAFE_FDATASYNC
Howard Chu [Thu, 8 Jan 2015 11:42:08 +0000 (11:42 +0000)]
Simpler fdatasync hack
Howard Chu [Thu, 8 Jan 2015 11:28:33 +0000 (11:28 +0000)]
Revert "Fix prev commit for env_sync0"
This reverts commit
985bbbbdd5d64e57f55249ffdeb7c08035b240b2.
Revert "Hack for potential ext3/ext4 corruption issue"
This reverts commit
0018eeb2c3b2239c30def9d47c9d194a4ebf35fe.
Howard Chu [Sun, 21 Dec 2014 00:13:50 +0000 (00:13 +0000)]
Fix prev commit for env_sync0
Howard Chu [Thu, 18 Dec 2014 04:38:53 +0000 (04:38 +0000)]
Hack for potential ext3/ext4 corruption issue
Use regular fsync() if we think this commit grew the DB file.
Howard Chu [Mon, 15 Dec 2014 20:40:59 +0000 (20:40 +0000)]
Fix MDB_APPEND doc
We actually compare the new key against the last key, to prevent
corruption.
Hallvard Furuseth [Sat, 13 Dec 2014 19:35:08 +0000 (20:35 +0100)]
make clean: remove *.lo
Hallvard Furuseth [Mon, 8 Dec 2014 08:56:36 +0000 (09:56 +0100)]
Try to avoid an invalid datafile after failed init
Howard Chu [Mon, 8 Dec 2014 03:21:09 +0000 (03:21 +0000)]
Clarify mdb_dbi_open doc
The concurrency restriction is on threads within a single process.
Multiple processes can use mdb_dbi_open without affecting each other.
Hallvard Furuseth [Fri, 5 Dec 2014 20:00:21 +0000 (21:00 +0100)]
C90-compatible code for SysV semaphores
Leo Yuriev [Fri, 5 Dec 2014 19:30:31 +0000 (19:30 +0000)]
ITS#7987 fix excessive space for single write txn
Howard Chu [Fri, 5 Dec 2014 19:15:41 +0000 (19:15 +0000)]
ITS#7994 fix prev commit
Strip docs promising behaviors that we don't promise to hold.
Strip MDB_txnid_t typedef.
David Barbour [Fri, 5 Dec 2014 17:18:30 +0000 (11:18 -0600)]
ITS#7994 Access to current transaction ID.
I, David Barbour, hereby place the following modifications to OpenLDAP
Software (and only these modifications) into the public domain. Hence,
these modifications may be freely used and/or redistributed for any
purpose with or without attribution and/or other notice.
Hallvard Furuseth [Fri, 5 Dec 2014 17:18:53 +0000 (18:18 +0100)]
Fix SysV semaphores - repair mti_txnid.
Similar to
443a7e40c4280cfd07cbf80c5de62ea072b136e3.
Hallvard Furuseth [Wed, 3 Dec 2014 11:37:55 +0000 (12:37 +0100)]
For ITS#7789: Ensure mapsize >= pages in use.
Check new mapsizes against mm_last_pg. Move
mdb_env_init_meta0() so it can set mm_last_pg earlier.
Hallvard Furuseth [Wed, 3 Dec 2014 11:27:53 +0000 (12:27 +0100)]
Fix WIN32 -> _WIN32
Hallvard Furuseth [Mon, 1 Dec 2014 07:59:29 +0000 (08:59 +0100)]
mdb_strerror: Silence warning @ Windows
Hallvard Furuseth [Mon, 1 Dec 2014 07:59:29 +0000 (08:59 +0100)]
Fix comments
Hallvard Furuseth [Mon, 1 Dec 2014 07:59:29 +0000 (08:59 +0100)]
Clean up SysV semaphore code.
Change MDB_LOCK_FORMAT to differ from Posix semaphores/mutexes.
Do not use array/member length 0 for MDB_txninfo.mt2.
Hallvard Furuseth [Mon, 1 Dec 2014 07:59:29 +0000 (08:59 +0100)]
Fix robust mutexes - repair mti_txnid.
Broken by
e3b6c359a935283c21e1fd7d03b790d87d53b933, if
commit() crashes in write_meta before setting mti_txnid.
Hallvard Furuseth [Mon, 1 Dec 2014 07:59:29 +0000 (08:59 +0100)]
Simplify recent changes a bit.
Hallvard Furuseth [Sat, 22 Nov 2014 21:56:31 +0000 (22:56 +0100)]
ITS#7961,#7987 Re-fix txn init.
More fallout from
4d02c741b120786df1b87ee9ed49c1d3f9bc7522:
Don't modify another thread's write txn. Reinit me_txn0 fully.
leo@yuriev.ru [Fri, 17 Oct 2014 22:46:53 +0000 (22:46 +0000)]
ITS#7971 LMDB: clarification in mdb_txn_renew0().
leo@yuriev.ru [Fri, 17 Oct 2014 22:35:41 +0000 (22:35 +0000)]
ITS#7970 LMDB: Critical Heisenbug
Inconsistent reading & SIGSEGV due to the race condition.
leo@yuriev.ru [Fri, 17 Oct 2014 22:22:39 +0000 (22:22 +0000)]
ITS#7969 LMDB: volatile & __synchronize().
Globally shared fields of meta-data are not 'volatile'.
Howard Chu [Wed, 8 Oct 2014 18:25:27 +0000 (19:25 +0100)]
ITS#7959 fix prev commit
fstat returns -1, not an errno. Move code into its own function
for reuse.
Howard Chu [Sat, 4 Oct 2014 20:48:49 +0000 (21:48 +0100)]
ITS#7961 fix txn init
More fallout from
4d02c741b120786df1b87ee9ed49c1d3f9bc7522
Jean-Christophe DUBOIS [Fri, 3 Oct 2014 18:24:25 +0000 (20:24 +0200)]
ITS#7959 Check fstat return value
Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>
Leo Yuriev [Thu, 4 Sep 2014 20:19:16 +0000 (00:19 +0400)]
ITS#7841 trivial cleanup
TRIVIA - lmdb: clean testdb-dir while "make test".
Howard Chu [Thu, 2 Oct 2014 21:11:43 +0000 (22:11 +0100)]
ITS#7956 fix compact of empty env
Howard Chu [Thu, 2 Oct 2014 20:58:20 +0000 (21:58 +0100)]
ITS#7955, #7671 fix MDB_PREV_DUP
Howard Chu [Thu, 2 Oct 2014 20:35:15 +0000 (21:35 +0100)]
ITS#7953 .gitignore *.lo
Howard Chu [Thu, 2 Oct 2014 20:33:35 +0000 (21:33 +0100)]
ITS#7952 .gitignore mdb_dump/load
Howard Chu [Wed, 1 Oct 2014 20:00:03 +0000 (21:00 +0100)]
Don't use -fPIC for static lib
Howard Chu [Wed, 1 Oct 2014 19:58:15 +0000 (20:58 +0100)]
Use robust mutexes by default
Making it optional on pthreads just complicates things;
they're always robust on other implementations
Howard Chu [Sun, 20 Jul 2014 18:08:55 +0000 (11:08 -0700)]
Use SysV semaphores instead of POSIX
Since they can cleanup after themselves on process exit
Howard Chu [Sun, 20 Jul 2014 15:10:34 +0000 (08:10 -0700)]
Must do dlist_free before releasing Wmutex
Hallvard Furuseth [Sun, 20 Jul 2014 14:42:04 +0000 (16:42 +0200)]
MDB_ROBUST: Use MDB_PID_T. Drop a wmutex variable.
Howard Chu [Wed, 16 Jul 2014 16:24:45 +0000 (09:24 -0700)]
Free write mutex earlier in txn_reset0
Hallvard Furuseth [Wed, 16 Jul 2014 14:15:58 +0000 (07:15 -0700)]
Add MDB_ROBUST
Howard Chu [Thu, 25 Sep 2014 18:25:56 +0000 (19:25 +0100)]
Android also only has memalign
Howard Chu [Sat, 20 Sep 2014 06:24:32 +0000 (07:24 +0100)]
new date
Howard Chu [Fri, 19 Sep 2014 00:45:43 +0000 (01:45 +0100)]
ITS#7943 reinit txn flags
When reusing the main write txn
Howard Chu [Thu, 18 Sep 2014 00:22:02 +0000 (01:22 +0100)]
Plug leak in
4d02c741b120786df1b87ee9ed49c1d3f9bc7522
Free writer txn on env_close
Howard Chu [Tue, 16 Sep 2014 20:54:07 +0000 (21:54 +0100)]
Silence some clang warnings
Howard Chu [Mon, 15 Sep 2014 18:48:32 +0000 (19:48 +0100)]
Release 0.9.14
Quanah Gibson-Mount [Sat, 13 Sep 2014 21:21:17 +0000 (16:21 -0500)]
Change retry to num times 60. Testing shows that on a known dataset, this has the same growth behavior as 2.4.39, while num times 20 resulted in significant growth.
Howard Chu [Tue, 9 Sep 2014 18:44:23 +0000 (19:44 +0100)]
More for me_pgoldest
Leave it in main env struct, it doesn't need to be rolled back
with nested txns.
Howard Chu [Tue, 9 Sep 2014 18:40:05 +0000 (19:40 +0100)]
Remember oldest reader txnid
Don't walk the readers table unless we really need to.