Commit Graph

309 Commits

Author SHA1 Message Date
Howard Chu
c542442c9f Add MDB_SET_KEY cursor op
Overwrites the passed in key with the DB's key
2012-09-17 02:17:25 -07:00
Howard Chu
ab04c50a32 ITS#7383 More explicit error codes 2012-09-14 06:51:31 -07:00
Howard Chu
48ef27b6f5 ITS#7385 fix mdb_page_split (again)
More for d793594173 ITS#7229
2012-09-12 10:45:51 -07:00
Howard Chu
de77882898 Update comments, bump version
Note read-write vs read-only mmap tradeoffs.
2012-09-07 13:40:07 -07:00
Howard Chu
2e677bcb99 msync should default to fully synchronous 2012-09-06 11:17:25 -07:00
Howard Chu
1c733bdc4e Add msync support for WRITEMAP option 2012-09-05 08:40:17 -07:00
Howard Chu
d8a89464cd Add MDB_WRITEMAP to use a writable mmap 2012-09-05 08:39:46 -07:00
Howard Chu
14a08f877f More for 57b5fbea49
Fix abort of child txn
2012-09-04 06:02:26 -07:00
Hallvard Furuseth
4608cd9552 libmdb: Fix P_INVALID when pgno_t != unsigned long 2012-08-29 06:43:35 +02:00
Hallvard Furuseth
3e3c785034 libmdb: Check sem_open() against SEM_FAILED. 2012-08-29 06:42:52 +02:00
Howard Chu
4bc18a5dd3 In mdb_audit, change assert to fprintf 2012-08-27 14:45:16 -07:00
Howard Chu
85ae5011e7 Fix mdb_audit()
due to a0993354a6
2012-08-26 11:05:45 -07:00
Ondrej Kuznik
bd92b570a8 ITS#7369 mdb_stat: cleanup in case something went wrong. 2012-08-24 05:33:46 -07:00
Howard Chu
a2d1b42e39 ITS#7369 abort txn before exiting 2012-08-24 05:23:55 -07:00
Howard Chu
916995236e ITS#7364 also close the mutexes as needed
Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)
2012-08-22 23:01:19 -07:00
Chris Mikkelson
46cf442700 ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment. 2012-08-22 22:55:01 -07:00
Chris Mikkelson
9f983b7999 ITS#7363 Use posix semaphores on apple and bsd systems. 2012-08-22 14:09:08 -07:00
Howard Chu
f114fec545 Loop thru all DBs and show their stats
This is quick and dirty, should be integrated into mdb_stat.
2012-08-16 10:25:40 -07:00
Howard Chu
d53644f682 Minor cleanup 2012-08-02 16:03:10 -07:00
Howard Chu
d1120fbccc Write optimization: avoid copying unused portions of pages. 2012-07-31 16:03:48 -07:00
Howard Chu
234cd9dfb5 Fix txn_commit error check 2012-07-26 08:42:41 -07:00
Howard Chu
23219ed32a Fix 205bb17793
Ignore current cursor pos if it's out of bounds.
2012-07-26 07:22:52 -07:00
Howard Chu
d1a7fa267b Update sub-DBs before updating free list 2012-07-26 06:25:31 -07:00
Howard Chu
d3990eb2f8 Append mode should also detect keys that are too small 2012-07-25 12:31:08 -07:00
Howard Chu
5da67968af Fix root split check in mdb_page_split 2012-07-24 08:50:42 -07:00
Howard Chu
205bb17793 Skip unneeded calls to mdb_page_get in mdb_page_search 2012-07-23 04:23:49 -07:00
Howard Chu
ccc4d23e74 Leave extra space when creating a fake page
Minimizes the number of memcpy's if additional dups are stored.
2012-07-22 17:45:50 -07:00
Howard Chu
05ec98d119 Append mode still needs to detect duplicates 2012-07-22 17:45:50 -07:00
Howard Chu
14fb1f59c7 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.
2012-07-21 06:19:09 -07:00
Howard Chu
7e9a6134fd Make sure cursor's DB is init'd if STALE. 2012-07-17 04:04:52 -07:00
Howard Chu
a0993354a6 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.
2012-07-13 15:48:26 -07:00
Howard Chu
0ea56294f1 Fix darwin sem_open() names
Must begin with '/'
2012-07-13 14:14:36 -07:00
Howard Chu
1a9775dc5a Fix ID -> MDB_ID due to 20baad4a20 2012-07-13 14:14:36 -07:00
Howard Chu
248fd1c7b8 Windows thread callback support 2012-07-13 14:14:36 -07:00
Howard Chu
e562f53e10 Drop me_toggle, unused 2012-07-08 18:43:45 -07:00
Howard Chu
179c44e7da Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
This reverts commit 4a0b30499c.
2012-07-08 18:18:12 -07:00
Howard Chu
433105f09b Fix: avoid direct reference to meta pages
Relevant info should be copied during txn_begin only.
2012-07-06 17:38:03 -07:00
Howard Chu
df7ddb6bf4 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.
2012-07-05 18:11:18 -07:00
Howard Chu
38560c2517 Tweak b802bcf704
Clarify prev commit, fix Doxygen comments broken by earlier changes
2012-07-05 17:43:29 -07:00
Howard Chu
b802bcf704 Partial revert of 13c663f666
Don't re-use free pages so soon; that leaves us vulnerable to
DB corruption if data syncs successfully but meta doesn't.
2012-07-05 16:52:13 -07:00
Howard Chu
a334257800 Tweak prev commit, use first unused slot 2012-06-02 05:26:31 -07:00
Howard Chu
4cabb24b83 Fix mdb_open, re-use closed dbi slots 2012-06-02 05:24:47 -07:00
Howard Chu
eeec509150 ITS#7266 fix rebalance for LEAF2 pages 2012-05-09 11:24:25 -07:00
Howard Chu
a540597dd6 More freelist tweaks, avoid referencing freed page 2012-05-08 22:17:17 -07:00
Howard Chu
fadf75a9cb Further clarification of mdb_open() 2012-05-05 19:41:45 -07:00
Howard Chu
fbf9c23304 ITS#7251 fix Apple/Windows shared mutex naming 2012-04-18 15:59:54 -07:00
Hallvard Furuseth
20baad4a20 libmdb: midl.h namespace cleanup.
Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.
2012-04-12 08:24:36 +02:00
Hallvard Furuseth
0a4aa88927 libmdb: Simplify pick_meta() from read_meta().
Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
dce5bb2fee libmdb: Simplify mdb_default_cmp. No real change. 2012-04-12 08:15:33 +02:00
Hallvard Furuseth
729a8a2819 libmdb: signed meets unsigned warning cleanup 2012-04-12 08:15:33 +02:00