Commit Graph

812 Commits

Author SHA1 Message Date
Howard Chu
d5371347e8 ITS#7825 more
Set read txn's dbiseqs to env's. Set child txn's dbiseqs to parent's.
Simplify DBI_CHANGED test, no need to check md_name. No-op dbi_close
of already closed handle.
2014-07-09 05:55:30 -07:00
Howard Chu
e0273020bd Updates #7789, #7825 2014-07-08 21:40:11 -07:00
Howard Chu
276aa55969 ITS#7825 more
only update dbiseq in dbi_open on write txns
2014-07-08 21:31:48 -07:00
Howard Chu
04851e442f ITS#7825 tweak prev commit
dbiseqs are only checked in write txns so omit from read txns
2014-07-08 21:22:07 -07:00
Howard Chu
0401f2deed ITS#7825 add MDB_BAD_DBI error code
Use DBI sequence numbers to detect DBIs being closed while in use.
2014-07-08 21:02:40 -07:00
Howard Chu
d8e18551c3 ITS#7789 update RESIZED errmsg text 2014-07-08 20:05:31 -07:00
Howard Chu
5926e54bba ITS#7789 persist mapsize changes
Write decreases too, not just increases. Check for any size change
that was not requested by this process.
2014-07-08 19:18:02 -07:00
Howard Chu
604256ceff Update LMDB version date/info 2014-07-08 16:37:28 -07:00
Howard Chu
2f04728471 ITS#7892 Fix MacOSX section name 2014-07-08 16:27:03 -07:00
Hallvard Furuseth
e1a676eb18 ITS#7713 cleanups
'#ifdef MDB_DEVEL' -> '#if MDB_DEVEL'
Fix comments, use actual PAGEBASE macro as originally intended.
Actually enable 64K pages. Set MDB_DATA_VERSION for testing only.
2014-07-08 15:01:18 -07:00
Hallvard Furuseth
6ed295b256 Fixes for loose pages
mdb_txn_commit(child): Give loose pages to parent.
Use a pointer beyond the page header instead of mp_next, so
we will not need to save/restore mp_pgno. This avoids a crash
caused by references to mp_pgno.
2014-07-08 14:39:57 -07:00
Howard Chu
b3e8c71dc7 Re-fix cursor EOF
Fix in 534dcc7212 was in wrong place
2014-07-08 11:54:24 -07:00
Howard Chu
68e6faad5c ITS#7713 handle 65536 byte page size
Fix mp_lower/mp_upper to exclude PAGEHDRSZ, which means our
max mp_upper is now pagesize - PAGEHDRSZ and won't overflow.
Currently must define MDB_DEVEL to use. Will be default for
LMDB 1.0/OpenLDAP 2.5
2014-07-07 17:31:15 -07:00
Howard Chu
534dcc7212 Set xcursor EOF after deleting last entry 2014-07-07 17:13:51 -07:00
Howard Chu
1ac5147fc1 Compacting copy doesn't need to snapshot metas 2014-07-06 17:47:25 -07:00
Howard Chu
61f7ec9bfa Windows fixes 2014-07-06 07:49:38 -07:00
Howard Chu
7d996d7f3d Play games with object file layout
Use gcc section attribute to keep less frequently used functions
away from main code.
2014-07-05 08:48:47 -07:00
Howard Chu
3e98addbe2 Rationalize mdb_env_copy2 API 2014-07-05 07:49:10 -07:00
Howard Chu
059b357d1a More tweaks to copyfd2
Make sure the writer thread starts and stops when we expect it to.
2014-07-03 14:26:14 -07:00
Howard Chu
03f0ecb001 More copyfd2 tweaks 2014-07-03 10:49:05 -07:00
Howard Chu
6043103c13 Fix envinfo to return fixed map address 2014-07-03 08:31:57 -07:00
Howard Chu
64191264b8 Windows compat 2014-07-03 07:49:22 -07:00
Howard Chu
8836b78e94 Fix subDB/ovpage copying 2014-07-02 11:44:06 -07:00
Howard Chu
af3c340758 Larger WBUF still better on large DB 2014-07-02 08:07:11 -07:00
Howard Chu
342cd72f25 Don't check LEAF2 pages for subnodes 2014-07-02 07:45:12 -07:00
Howard Chu
4009c9ae65 Add mdb_env_copy2()
And mdb_env_copyfd2(). Perform compaction on the copy. Trims out
freed pages and renumbers data pages in sequential order. This is
more CPU-intensive since it copies and modifies data pages.
2014-07-01 21:45:43 -07:00
Howard Chu
4d65cf1326 dump/load need mapsize etc. 2014-07-01 18:53:47 -07:00
Howard Chu
c5be1292ac All diagnostics should go to stderr 2014-07-01 05:15:44 -07:00
Howard Chu
ee599c5250 More gcov setup tweaks 2014-06-30 04:42:41 -07:00
Howard Chu
b09e46904c ITS#7886 fix mdb_copy write size
Don't try to write past end of file
2014-06-30 04:41:50 -07:00
Hallvard Furuseth
91d8ad1d3c Fix mdb_page_loose() vs. mdb_page_flush().
Do not overwrite loose pages' mp_pgno with mp_next.
mdb_page_flush() will use mp_pgno to rebuild dirty_list.
2014-06-28 13:38:03 +02:00
Howard Chu
c73f087750 Trap signals
Try to exit cleanly to avoid leaving stale readers. Not
a critical issue since mdb_reader_check can take care of
them, but still cleaner.
2014-06-27 10:53:11 -07:00
Howard Chu
277526d0f0 Setup for gcov/coverage testing 2014-06-26 05:19:47 -07:00
Howard Chu
a3e5539505 More for mdb_page_loose
Require that the page is dirty in the current txn,
not a parent txn.
2014-06-24 11:43:13 -07:00
Howard Chu
7fe85f5c82 More MDB -> LMDB renames 2014-06-24 04:42:44 -07:00
Howard Chu
9a4ef8406e Doc updates
Rename MDB -> LMDB
Integrate tool manpages
2014-06-24 04:16:19 -07:00
Howard Chu
ca47c2af1f ITS#7879 Windows build compatibility
Just use srand/rand, we don't care about the quality
of the random numbers, we just want some data.
2014-06-23 07:39:06 -07:00
Howard Chu
225bcae3e7 Flesh out mdb_cmp_cint for BigEndians 2014-06-23 07:36:38 -07:00
Howard Chu
aa89ca31b3 More for page_loosen
Don't try this when working on the FreeDB. Again,
too much hassle to unkink the recursions...
2014-06-22 16:39:14 -07:00
Howard Chu
d9423e13f8 More cleanup for page_merge, page_loosen
Only loosen src page if it's actually dirty.
Refactor page refs in page_merge.
2014-06-21 15:53:41 -07:00
Howard Chu
cf331ccb3d Silence ptr arithmetic warnings 2014-06-21 08:34:45 -07:00
Howard Chu
7cab7b95e2 Handle loose pages
Pages that were dirtied and deleted in the same txn should be
reused, instead of consuming freeDB pages.
2014-06-21 03:30:34 -07:00
Howard Chu
eebbd22c2f Fix mdb_page_merge
Similar to prev commit for mdb_node_move, the call of
mdb_page_serch_lowest() was leaving csrc unusable.
2014-06-20 23:40:44 -07:00
Howard Chu
79e8462d74 Fix mdb_node_move
Was leaving stale info in dst cursor
2014-06-20 17:56:04 -07:00
Howard Chu
0d013609fe Fix lineno count 2014-06-20 09:03:41 -07:00
Howard Chu
c05f45b7dd Fix multiple subDBs 2014-06-20 09:00:33 -07:00
Howard Chu
1a72b19e26 Fix unhex 2014-06-20 08:56:52 -07:00
Howard Chu
21b51cb746 Add mdb_load 2014-06-20 08:49:59 -07:00
Howard Chu
3e83b5b27b Add mdb_dump, update copyrights 2014-06-20 06:36:30 -07:00
Howard Chu
59d30a49c3 Bump to 0.9.13 2014-06-18 14:25:46 -07:00