Compile MemEnv with standard RocksDB library
Summary: This was a feature request by osquery. See task t5617758 Test Plan: compiles and memenv_test runs Reviewers: yhchiang, rven, sdong Reviewed By: sdong Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D32115
This commit is contained in:
parent
173c52a97f
commit
2fd8f750ab
@ -11,6 +11,7 @@
|
|||||||
* Added BlockBasedTableOptions.format_version option, which allows user to specify which version of block based table he wants. As a general guidline, newer versions have more features, but might not be readable by older versions of RocksDB.
|
* Added BlockBasedTableOptions.format_version option, which allows user to specify which version of block based table he wants. As a general guidline, newer versions have more features, but might not be readable by older versions of RocksDB.
|
||||||
* Added new block based table format (version 2), which you can enable by setting BlockBasedTableOptions.format_version = 2. This format changes how we encode size information in compressed blocks and should help with memory allocations if you're using Zlib or BZip2 compressions.
|
* Added new block based table format (version 2), which you can enable by setting BlockBasedTableOptions.format_version = 2. This format changes how we encode size information in compressed blocks and should help with memory allocations if you're using Zlib or BZip2 compressions.
|
||||||
* GetThreadStatus() is now able to report compaction activity.
|
* GetThreadStatus() is now able to report compaction activity.
|
||||||
|
* MemEnv (env that stores data in memory) is now available in default library build. You can create it by calling NewMemEnv().
|
||||||
|
|
||||||
### Public API changes
|
### Public API changes
|
||||||
* Deprecated skip_log_error_on_recovery option
|
* Deprecated skip_log_error_on_recovery option
|
||||||
|
12
Makefile
12
Makefile
@ -99,7 +99,6 @@ CXXFLAGS += $(WARNING_FLAGS) -I. -I./include $(PLATFORM_CXXFLAGS) $(OPT) -Woverl
|
|||||||
LDFLAGS += $(PLATFORM_LDFLAGS)
|
LDFLAGS += $(PLATFORM_LDFLAGS)
|
||||||
|
|
||||||
LIBOBJECTS = $(SOURCES:.cc=.o)
|
LIBOBJECTS = $(SOURCES:.cc=.o)
|
||||||
MEMENVOBJECTS = $(MEMENV_SOURCES:.cc=.o)
|
|
||||||
MOCKOBJECTS = $(MOCK_SOURCES:.cc=.o)
|
MOCKOBJECTS = $(MOCK_SOURCES:.cc=.o)
|
||||||
|
|
||||||
TESTUTIL = ./util/testutil.o
|
TESTUTIL = ./util/testutil.o
|
||||||
@ -196,7 +195,6 @@ ifeq ($(LIBNAME),)
|
|||||||
LIBNAME=librocksdb
|
LIBNAME=librocksdb
|
||||||
endif
|
endif
|
||||||
LIBRARY = ${LIBNAME}.a
|
LIBRARY = ${LIBNAME}.a
|
||||||
MEMENVLIBRARY = libmemenv.a
|
|
||||||
|
|
||||||
ROCKSDB_MAJOR = $(shell egrep "ROCKSDB_MAJOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
|
ROCKSDB_MAJOR = $(shell egrep "ROCKSDB_MAJOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
|
||||||
ROCKSDB_MINOR = $(shell egrep "ROCKSDB_MINOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
|
ROCKSDB_MINOR = $(shell egrep "ROCKSDB_MINOR.[0-9]" include/rocksdb/version.h | cut -d ' ' -f 3)
|
||||||
@ -311,7 +309,7 @@ unity: unity.cc unity.o
|
|||||||
$(CXX) unity.o $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
$(CXX) unity.o $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f $(PROGRAMS) $(TESTS) $(LIBRARY) $(SHARED) $(MEMENVLIBRARY) make_config.mk unity.cc
|
-rm -f $(PROGRAMS) $(TESTS) $(LIBRARY) $(SHARED) make_config.mk unity.cc
|
||||||
-rm -rf ios-x86/* ios-arm/*
|
-rm -rf ios-x86/* ios-arm/*
|
||||||
-find . -name "*.[oda]" -exec rm {} \;
|
-find . -name "*.[oda]" -exec rm {} \;
|
||||||
-find . -type f -regex ".*\.\(\(gcda\)\|\(gcno\)\)" -exec rm {} \;
|
-find . -type f -regex ".*\.\(\(gcda\)\|\(gcno\)\)" -exec rm {} \;
|
||||||
@ -552,12 +550,8 @@ options_test: util/options_test.o util/options_helper.o $(LIBOBJECTS) $(TESTHARN
|
|||||||
sst_dump_test: util/sst_dump_test.o $(LIBOBJECTS) $(TESTHARNESS)
|
sst_dump_test: util/sst_dump_test.o $(LIBOBJECTS) $(TESTHARNESS)
|
||||||
$(CXX) util/sst_dump_test.o $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
$(CXX) util/sst_dump_test.o $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
||||||
|
|
||||||
$(MEMENVLIBRARY) : $(MEMENVOBJECTS)
|
memenv_test : util/memenv_test.o $(LIBOBJECTS) $(TESTHARNESS)
|
||||||
rm -f $@
|
$(CXX) util/memenv_test.o $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
||||||
$(AR) -rs $@ $(MEMENVOBJECTS)
|
|
||||||
|
|
||||||
memenv_test : helpers/memenv/memenv_test.o $(MEMENVOBJECTS) $(LIBOBJECTS) $(TESTHARNESS)
|
|
||||||
$(CXX) helpers/memenv/memenv_test.o $(MEMENVOBJECTS) $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
|
||||||
|
|
||||||
mock_env_test : util/mock_env_test.o $(LIBOBJECTS) $(TESTHARNESS)
|
mock_env_test : util/mock_env_test.o $(LIBOBJECTS) $(TESTHARNESS)
|
||||||
$(CXX) util/mock_env_test.o $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
$(CXX) util/mock_env_test.o $(LIBOBJECTS) $(TESTHARNESS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
|
||||||
|
@ -161,7 +161,7 @@ if test -z "$DO_NOT_RUN_BUILD_DETECT_VERSION"; then
|
|||||||
"$PWD/build_tools/build_detect_version"
|
"$PWD/build_tools/build_detect_version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# We want to make a list of all cc files within util, db, table, and helpers
|
# We want to make a list of all cc files within util, db and table
|
||||||
# except for the test and benchmark files. By default, find will output a list
|
# except for the test and benchmark files. By default, find will output a list
|
||||||
# of all files matching either rule, so we need to append -print to make the
|
# of all files matching either rule, so we need to append -print to make the
|
||||||
# prune take effect.
|
# prune take effect.
|
||||||
@ -179,7 +179,6 @@ set +f # re-enable globbing
|
|||||||
# file.
|
# file.
|
||||||
echo "SOURCES=$PORTABLE_FILES $GENERIC_PORT_FILES $PORT_FILES" >> "$OUTPUT"
|
echo "SOURCES=$PORTABLE_FILES $GENERIC_PORT_FILES $PORT_FILES" >> "$OUTPUT"
|
||||||
echo "MOCK_SOURCES=$MOCK_SOURCES" >> "$OUTPUT"
|
echo "MOCK_SOURCES=$MOCK_SOURCES" >> "$OUTPUT"
|
||||||
echo "MEMENV_SOURCES=helpers/memenv/memenv.cc" >> "$OUTPUT"
|
|
||||||
|
|
||||||
if [ "$CROSS_COMPILE" = "true" -o "$FBCODE_BUILD" = "true" ]; then
|
if [ "$CROSS_COMPILE" = "true" -o "$FBCODE_BUILD" = "true" ]; then
|
||||||
# Cross-compiling; do not try any compilation tests.
|
# Cross-compiling; do not try any compilation tests.
|
||||||
|
@ -54,7 +54,7 @@ case "$TARGET_OS" in
|
|||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# We want to make a list of all cc files within util, db, table, and helpers
|
# We want to make a list of all cc files within util, db and table
|
||||||
# except for the test and benchmark files. By default, find will output a list
|
# except for the test and benchmark files. By default, find will output a list
|
||||||
# of all files matching either rule, so we need to append -print to make the
|
# of all files matching either rule, so we need to append -print to make the
|
||||||
# prune take effect.
|
# prune take effect.
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
std::string NormalizeFileName(const std::string fname) {
|
std::string NormalizeFileName(const std::string fname) {
|
||||||
@ -420,4 +422,10 @@ Env* NewMemEnv(Env* base_env) {
|
|||||||
return new InMemoryEnv(base_env);
|
return new InMemoryEnv(base_env);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else // ROCKSDB_LITE
|
||||||
|
|
||||||
|
Env* NewMemEnv(Env* base_env) { return nullptr; }
|
||||||
|
|
||||||
|
#endif // !ROCKSDB_LITE
|
||||||
|
|
||||||
} // namespace rocksdb
|
} // namespace rocksdb
|
Loading…
Reference in New Issue
Block a user