Commit Graph

79 Commits

Author SHA1 Message Date
Keith Bostic
344a714c3d Upgrade copyright notices from 2015 to 2016. 2016-01-01 16:37:39 -05:00
Keith Bostic
1f9098871a Copyright notices: add MongoDB, update to 2015. 2015-01-04 14:07:56 -05:00
Keith Bostic
7590319f16 Rename WT_DEADLOCK to WT_ROLLBACK, reference #1204. 2014-10-17 07:46:30 -04:00
Michael Cahill
c7ddaaeef8 Fixes for the LevelDB JNI build. Make the fields of Slice public, rename the config file and only include the necessary defines. 2014-09-08 22:20:49 +10:00
Susan LoVerso
e45d3e32b3 Remove loop to walk replay iterator from LiveBackup. #1106 2014-09-02 12:04:30 -04:00
Susan LoVerso
a99330cea9 Fix __log_filesize to look for end in larger chunks.
Fix ReplayIterator::Valid() to retry if it's invalid. #1106
2014-08-26 14:27:17 -04:00
Susan LoVerso
dcedda0903 Add tests for ReplayIterator methods. 2014-08-13 15:46:56 -04:00
Susan LoVerso
5dde373e02 Fix valid operation check. 2014-08-13 15:37:24 -04:00
Susan LoVerso
d757114787 Add Replay phase to LiveBackup and add to test program. 2014-08-13 11:24:30 -04:00
Susan LoVerso
df0d6f8d46 Fix merge/conflict error. 2014-08-12 15:18:44 -04:00
Susan LoVerso
e432b716de Add LiveBackup code. 2014-08-12 14:20:27 -04:00
Susan LoVerso
c4133fd744 Comment about fileid assumptions. 2014-08-12 14:03:59 -04:00
Susan LoVerso
1ae4eada31 Rename SkipTo to SeekTo. Make SkipTo no-op. 2014-08-12 13:26:53 -04:00
Susan LoVerso
306099fc4a Add "all" and "now" support. Add macro for modification operation. 2014-08-11 15:41:21 -04:00
Susan LoVerso
8e6f946794 Add replay code to Hyperleveldb port. #1106 2014-08-07 14:27:20 -04:00
Michael Cahill
a580a89e85 Sanity check the LevelDB configuration at build time, not runtime. 2014-07-29 17:23:18 +10:00
Michael Cahill
c285f5484b Make the LevelDB API more resilient to invalid configurations. Also clean up after the test so that "make check" has a better chance of succeeding. 2014-07-29 16:53:42 +10:00
Michael Cahill
56a3dd47f5 Split out HyperLevelDB stubs into a separate file, with comments describing what the methods are supposed to do.
--HG--
rename : api/leveldb/dummy.cc => api/leveldb/hyper_wt.cc
2014-07-16 16:43:49 +10:00
Keith Bostic
5ab852221d Update the copyright checks to match the new LevelDB structure.
Add AUTHORS and LICENSE files for HyperLevelDB.
2014-07-15 09:24:10 -04:00
Michael Cahill
4f79426e31 Fix static linking of libraries with builtin extensions. 2014-07-15 17:39:37 +10:00
Michael Cahill
31eef3e5e0 Take Keith's suggestion: rearrange api/leveldb by copyright to simplify maintenance of the license information. Rename the "eleveldb" flavor to "basho" in the process, so the directory name matches the option. List the choices in the configure help, and check for invalid flavors.
--HG--
rename : api/leveldb/util/perf_count.cc => api/leveldb/basho/perf_count.cc
rename : api/leveldb/include/leveldb/perf_count.h => api/leveldb/basho/perf_count.h
rename : api/leveldb/include/leveldb/replay_iterator.h => api/leveldb/hyperleveldb/replay_iterator.h
rename : api/leveldb/AUTHORS => api/leveldb/leveldb/AUTHORS
rename : api/leveldb/LICENSE => api/leveldb/leveldb/LICENSE
rename : api/leveldb/db/dbformat.h => api/leveldb/leveldb/db/dbformat.h
rename : api/leveldb/db/skiplist.h => api/leveldb/leveldb/db/skiplist.h
rename : api/leveldb/db/write_batch.cc => api/leveldb/leveldb/db/write_batch.cc
rename : api/leveldb/db/write_batch_internal.h => api/leveldb/leveldb/db/write_batch_internal.h
rename : api/leveldb/include/leveldb/cache.h => api/leveldb/leveldb/include/leveldb/cache.h
rename : api/leveldb/include/leveldb/comparator.h => api/leveldb/leveldb/include/leveldb/comparator.h
rename : api/leveldb/include/leveldb/db.h => api/leveldb/leveldb/include/leveldb/db.h
rename : api/leveldb/include/leveldb/env.h => api/leveldb/leveldb/include/leveldb/env.h
rename : api/leveldb/include/leveldb/filter_policy.h => api/leveldb/leveldb/include/leveldb/filter_policy.h
rename : api/leveldb/include/leveldb/iterator.h => api/leveldb/leveldb/include/leveldb/iterator.h
rename : api/leveldb/include/leveldb/options.h => api/leveldb/leveldb/include/leveldb/options.h
rename : api/leveldb/include/leveldb/slice.h => api/leveldb/leveldb/include/leveldb/slice.h
rename : api/leveldb/include/leveldb/status.h => api/leveldb/leveldb/include/leveldb/status.h
rename : api/leveldb/include/leveldb/write_batch.h => api/leveldb/leveldb/include/leveldb/write_batch.h
rename : api/leveldb/port/port.h => api/leveldb/leveldb/port/port.h
rename : api/leveldb/util/arena.h => api/leveldb/leveldb/util/arena.h
rename : api/leveldb/util/coding.cc => api/leveldb/leveldb/util/coding.cc
rename : api/leveldb/util/coding.h => api/leveldb/leveldb/util/coding.h
rename : api/leveldb/util/comparator.cc => api/leveldb/leveldb/util/comparator.cc
rename : api/leveldb/util/env.cc => api/leveldb/leveldb/util/env.cc
rename : api/leveldb/util/env_posix.cc => api/leveldb/leveldb/util/env_posix.cc
rename : api/leveldb/util/logging.cc => api/leveldb/leveldb/util/logging.cc
rename : api/leveldb/util/logging.h => api/leveldb/leveldb/util/logging.h
rename : api/leveldb/util/options.cc => api/leveldb/leveldb/util/options.cc
rename : api/leveldb/util/posix_logger.h => api/leveldb/leveldb/util/posix_logger.h
rename : api/leveldb/util/random.h => api/leveldb/leveldb/util/random.h
rename : api/leveldb/util/status.cc => api/leveldb/leveldb/util/status.cc
2014-07-15 11:27:11 +10:00
Keith Bostic
4b862378fe Add the RocksDB license file. 2014-07-14 11:05:26 -04:00
Keith Bostic
56a4a35416 Replace magic byte strings with flat text. 2014-07-14 11:02:36 -04:00
Susan LoVerso
a1f1974afb Don't print error message for WT_NOTFOUND. 2014-07-14 10:41:12 -04:00
Michael Cahill
3842d5a653 Split out the RocksDB write batch code into a separate file to avoid copyright ambiguity. Update the docs to mention Facebook copyright.
--HG--
rename : api/leveldb/db/write_batch.cc => api/leveldb/rocksdb/write_batch.cc
2014-07-14 17:33:12 +10:00
Michael Cahill
846822379a Handle Deletes of nonexistent keys via the LevelDB API: that is OK. Also add resets to the RocksDB column family operations. 2014-07-09 17:18:40 +10:00
Michael Cahill
5e9075f7ba Add a fast path for write batches that are either empty or have a single entry. The problem is that begin/commit causes cursors to be reset, and in this workload there are quite a few cursors. Only do that if needed to execute the write batch correctly.
This optimization is currently only implemented in RocksDB -- stock LevelDB has no way to figure out the number of entries in a write batch.
2014-07-09 16:25:58 +10:00
Michael Cahill
b484697015 Fix Flush to construct a valid config string for compact. 2014-07-09 16:25:58 +10:00
Michael Cahill
4be7e2a867 Make sure the NewLRUCache function is in the leveldb namespace. 2014-07-09 11:38:23 +10:00
Michael Cahill
30af679e60 The RocksDB Flush operation should only apply to a single table. Fix it, and turn on periodic checkpoints by default so that log files can still be archived. 2014-07-09 10:03:15 +10:00
Michael Cahill
34c45cb6a3 Add support for zlib compression to the RocksDB API. 2014-07-09 10:03:14 +10:00
Michael Cahill
33692a6a3a Detect at build time whether we need to load the snappy compression extension. 2014-07-09 10:01:45 +10:00
Michael Cahill
44876cbc7c Some more LevelDB config tweaks: revert to defaults for Bloom filters, move constants into the header file. 2014-07-04 15:09:38 +10:00
Michael Cahill
7b9195c7f7 Configuration tweaks for the MongoDB sysbench workload. 2014-07-04 14:45:24 +10:00
Michael Cahill
6f852e4581 Used cached cursors for LevelDB Iterators. This gives a ~10x performance improvement in sysbench-mongodb tests. 2014-07-03 19:07:48 +10:00
Michael Cahill
55bbe6084a Check for errors when getting a cursor to avoid "maybe uninitialized" warning. 2014-07-03 14:51:01 +10:00
Michael Cahill
796e20daea Fix a bad cast, switch from reinterpret_cast to static_cast in an attempt to avoid this kind of thing in the future. 2014-07-03 14:44:30 +10:00
Michael Cahill
f7c912103b Eliminate warnings from LevelDB API with "g++ -Wall", debug a problem applying write batches to unknown column families. 2014-07-03 14:44:30 +10:00
Michael Cahill
dd24626579 Finish implementation of enough of the RocksDB API to allow MongoDB to run. 2014-07-02 22:39:14 +10:00
Michael Cahill
0fd1ee1345 Fix the installation of wrapper libraries (there was a problem with installation order). 2014-07-01 16:32:41 +10:00
Michael Cahill
8655a624b8 Simplify the context for operations in the LevelDB API: always open sessions for snapshots, and duplicate cursors for iterators, so there is no need to track whether the normal versions are in use.
While in the area, always reset cursors after Get operations: the data is copied out, so there is no need for the cursor to stay positioned.
2014-07-01 16:19:34 +10:00
Michael Cahill
4b029ff53b Implement most of the RocksDB-specific methods. 2014-07-01 12:06:40 +10:00
Michael Cahill
26304c0075 Create wrapper libraries for LevelDB/RocksDB/etc. to ease integration with application builds. 2014-07-01 12:06:40 +10:00
Michael Cahill
7b4f00fdf9 Add stubs for enough of the RocksDB API that MongoDB builds. 2014-06-27 18:38:41 +10:00
Michael Cahill
f2842ced64 Improve building and installing LevelDB variants: add wiredtiger_config.h to the LevelDB includes. 2014-06-27 14:18:11 +10:00
Michael Cahill
a721db22d5 Add support for Basho-specific features.
Note that this doesn't yet solve the problem of installed include files: to use this in its current state, you would need something like:

CPPFLAGS="-DHAVE_ELEVELDB -I/path/to/include/wiredtiger" ...
2014-06-27 14:18:11 +10:00
Michael Cahill
75916badfe Update LevelDB to the new transaction_sync config. 2014-06-25 17:24:33 +10:00
Michael Cahill
7d6e2dabd3 Fix a logic bug releasing cursors after DB::Get operations. 2014-06-25 17:18:51 +10:00
Keith Bostic
1b2f925935 Put the LevelDB API into the public domain, add a copyright notice to
leveldb_wt.h, it's simpler that way.
2014-06-24 11:04:39 -04:00
Keith Bostic
2ef3de771b Minor futzing with the LevelDB copyright checks, add a WiredTiger
copyright notice to the leveldb/port/ files (such as they are).

Move src/api/api_XXX into src/conn/XXX, there's no reason to have an api
directory in the lower level (and it's about 100 lines of code, anyway).
2014-06-24 10:06:07 -04:00