Howard Chu
5f2ddb5532
Minor cleanup
2012-10-22 16:13:42 -07:00
Howard Chu
5c1ee7f7ba
Fix MDB_PREV
...
Could return 1 garbage record before actual data, if starting from EOF
2012-10-22 16:02:30 -07:00
Howard Chu
617769bce5
Tweak output, add free page info
2012-10-16 17:01:16 -07:00
Howard Chu
754cd88819
Add mdb_env_info() to retrieve interesting env params
2012-10-16 16:22:21 -07:00
Howard Chu
7f0771a3ed
Merge mdb_stata into mdb_stat
2012-10-16 15:37:29 -07:00
Howard Chu
65d40eb5d2
Make sure increases of mapsize are persisted
2012-10-16 14:53:25 -07:00
Hallvard Furuseth
94965307c8
ITS#7377 Errorcheck Windows calls and thread keys.
2012-10-15 17:04:48 +02:00
Hallvard Furuseth
88b7bb4639
Explicitly unlock the MDB lockfile on Windows.
2012-10-15 17:04:43 +02:00
Hallvard Furuseth
e9d87866c4
mdb_env_open(): Keep mdb_env_set_flags() flags.
2012-10-15 17:04:11 +02:00
Hallvard Furuseth
092f9a5c66
More for mdb_env_copy().
...
Fix #define _GNU_SOURCE = 1 to match any command line -D_GNU_SOURCE.
.gitignore += mdb_copy.
2012-10-15 17:03:46 +02:00
Hallvard Furuseth
462d9dfd10
Fix last commit.
...
Add flag MDB_ENV_ACTIVE instead of using the state of me_lfd.
Require MDB_RDONLY for MDB_ROFS. Swap reader/writer mutex lock.
2012-10-15 17:03:33 +02:00
Howard Chu
e40713b631
Support read access on read-only media
2012-10-13 04:05:00 -07:00
Howard Chu
f037dd2d19
Silence warning in prev commit
2012-10-11 16:47:56 -07:00
Howard Chu
ebb6859ea5
Add mdb_copy for backing up a DB environment
2012-10-11 12:24:01 -07:00
Hallvard Furuseth
756ce8e10c
Tweak MDB restrictions
2012-10-03 21:13:21 +02:00
Hallvard Furuseth
a3f33dd20e
Fix mdb_open() off-by-one error in maxdbs check
2012-10-03 18:08:56 +02:00
Hallvard Furuseth
38fb8e6eb1
ITS#7377 Wrap fcntl F_SETLK in EINTR loop too.
...
This can happen even on local filesystems.
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
ab3fea51dc
ITS#7377 Catch ftruncate() error
2012-10-03 18:06:29 +02:00
Hallvard Furuseth
2b960613e0
ITS#7377 Document caveats/troubeshooting.
2012-10-03 18:04:07 +02:00
Howard Chu
7333b6bdc9
Fix prev commit
...
It only worked if the freelist was already non-empty
2012-09-30 10:01:57 -07:00
Howard Chu
cd228b4722
Fix mdb_drop
...
if it was the only operation in a txn, it would be ignored.
2012-09-30 07:49:30 -07:00
Howard Chu
0c4c6fe72a
ITS#7385, check further for bad splits
...
More for 48ef27b6f5
Our definition of "large" data item needs to be smaller to
handle more cases where a bad split is possible
2012-09-27 05:06:23 -07:00
Howard Chu
ba6c3281a1
Add MDB_GET_CURRENT
...
return whatever the cursor is currently pointing at
2012-09-19 06:15:09 -07:00
Howard Chu
d13ca0de4f
ITS#7394 ignore WRITEMAP if RDONLY
2012-09-18 12:36:54 -07:00
Howard Chu
0a359fb629
More for 48ef27b6f5
...
page_split with newindex > split_indx
2012-09-17 07:02:41 -07:00
Howard Chu
5ef56b437e
More for ab04c50a32
...
Use explicit MDB_RDONLY flag
2012-09-17 07:01:28 -07:00
Hallvard Furuseth
c67ea9c060
ITS#7377 Catch MDB user errors.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c0f3d9b9a8
ITS#7377 Catch MDB setup errors and clean up.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
fe1b3794de
ITS#7364 Limit mdb lock upgrade before sem_unlink.
...
Do not try shared lock when closing or after error. Track file lock
state to decide. Change meaning of *excl to reflect file lock state.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
c760e536ec
ITS#7364 Always sem_unlink() in mdb_env_open().
...
Drop the sem_unlink() error checks, which could prevent the 2nd
unlink. Instead use O_EXCL in sem_open().
This makes "open+close the database" the API for trying to clean
away the old semaphores, if they were left behind by a previous run.
2012-09-17 15:42:15 +02:00
Hallvard Furuseth
31be24896b
ITS#7377 Wrap sem_wait & file locks in EINTR loops
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
a35f9b2a53
Remove mdb data races. Use (txnid_t)-1 as "no ID".
...
Avoid race between numreaders++ and reading numreaders at cleanup. Make
the un-mutexed reset of reader table entry, atomic: Reset mr_pid only.
Instead check mr_pid != 0 in mdb_page_alloc()'s scan for readers.
(txnid_t)-1 as "no ID"-mark avoids a check for mr_txnid != 0.
The scan can stop when seeing an old reader.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
38cc1e96b4
Save pid in MDB_env instead of repeating getpid().
...
An open MDB environment does not survive or catch fork(),
so repeating getpid() was pointless.
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
20a216fcc9
MDB_WRITEMAP needs no DSYNC descriptor (me_mfd)
2012-09-17 15:42:14 +02:00
Hallvard Furuseth
588a84a5ae
ITS#7363 Preprocessor namespace cleanup.
...
Rename USE_POSIX_SEM to MDB_USE_POSIX_SEM.
Separate MDB_FDATASYNC from MDB_USE_POSIX_SEM.
2012-09-17 15:42:14 +02:00
Howard Chu
8bb10add24
More for ab04c50a32
...
Fix typos, error code ranges
2012-09-17 06:35:03 -07:00
Howard Chu
acbff5b1ea
Add mdb_cursor_renew()
...
Allow cursors on read-only txns to be reused with later txns.
2012-09-17 04:41:13 -07:00
Howard Chu
076b2b36a9
Shared lib should depend on pthread
2012-09-17 03:48:54 -07:00
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