Go to file
Andrew Kryczka 5aca977be8 env_basic_test library for testing new Envs [pluggable Env part 3]
Summary:
- Provide env_test as a static library. We will build it for future releases so internal Envs can use env_test by linking against this library.
- Add tests for CustomEnv, which is configurable via ENV_TEST_URI environment variable. It uses the URI-based Env lookup (depends on D58449).
- Refactor env_basic_test cases to use a unique/configurable directory for test files.

Test Plan:
built a test binary against librocksdb_env_test.a. It registered the
default Env with URI prefix "a://".

- verify runs all CustomEnv tests when URI with correct prefix is provided

```
$ ENV_TEST_URI="a://ok" ./tmp --gtest_filter="CustomEnv/*"
...
[  PASSED  ] 12 tests.
```

- verify runs no CustomEnv tests when URI with non-matching prefix is provided

```
$ ENV_TEST_URI="b://ok" ./tmp --gtest_filter="CustomEnv/*"
...
[  PASSED  ] 0 tests.
```

Reviewers: ldemailly, IslamAbdelRahman, lightmark, sdong

Reviewed By: sdong

Subscribers: andrewkr, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D58485
2016-06-03 18:44:22 -07:00
arcanist_util
build_tools
coverage
db Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
doc
examples
hdfs
include/rocksdb Adding support for sharing throttler between multiple backup and restores 2016-06-03 17:02:07 -07:00
java Java API - Bugfix for native linking of Compaction Filter (#1099) 2016-06-03 10:24:03 -07:00
memtable
port
table Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
third-party
tools
util env_basic_test library for testing new Envs [pluggable Env part 3] 2016-06-03 18:44:22 -07:00
utilities Adding support for sharing throttler between multiple backup and restores 2016-06-03 17:02:07 -07:00
.arcconfig
.clang-format
.gitignore
.travis.yml
AUTHORS
CMakeLists.txt Create env_basic_test [pluggable Env part 2] 2016-06-03 15:13:03 -07:00
CONTRIBUTING.md
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE
Makefile env_basic_test library for testing new Envs [pluggable Env part 3] 2016-06-03 18:44:22 -07:00
PATENTS
README.md
ROCKSDB_LITE.md
USERS.md
Vagrantfile
WINDOWS_PORT.md
appveyor.yml
src.mk Create env_basic_test [pluggable Env part 2] 2016-06-03 15:13:03 -07:00
thirdparty.inc

README.md

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

Build Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)

This code is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it specially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/master/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Design discussions are conducted in https://www.facebook.com/groups/rocksdb.dev/