Initial standup of RocksDB dependency
Former-commit-id: 19bb40ffdc794cf9cafa9f4132a0facf1e074101
This commit is contained in:
parent
68ab27e758
commit
0f5d2ccfe5
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "deps/rocksdb"]
|
||||||
|
path = deps/rocksdb
|
||||||
|
url = https://github.com/facebook/rocksdb.git
|
7
deps/Makefile
vendored
7
deps/Makefile
vendored
@ -37,6 +37,7 @@ distclean:
|
|||||||
-(cd linenoise && $(MAKE) clean) > /dev/null || true
|
-(cd linenoise && $(MAKE) clean) > /dev/null || true
|
||||||
-(cd lua && $(MAKE) clean) > /dev/null || true
|
-(cd lua && $(MAKE) clean) > /dev/null || true
|
||||||
-(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
|
-(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
|
||||||
|
-(cd rocksdb && $(MAKE) clean) > /dev/null || true
|
||||||
-(rm -f .make-*)
|
-(rm -f .make-*)
|
||||||
|
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
@ -86,3 +87,9 @@ jemalloc: .make-prerequisites
|
|||||||
cd jemalloc && $(MAKE) CFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)" lib/libjemalloc.a
|
cd jemalloc && $(MAKE) CFLAGS="$(JEMALLOC_CFLAGS)" LDFLAGS="$(JEMALLOC_LDFLAGS)" lib/libjemalloc.a
|
||||||
|
|
||||||
.PHONY: jemalloc
|
.PHONY: jemalloc
|
||||||
|
|
||||||
|
rocksdb: .make-prerequisites
|
||||||
|
@printf '%b %b\n' $(MAKECOLOR)MAKE$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR)
|
||||||
|
cd rocksdb && $(MAKE) shared_lib
|
||||||
|
|
||||||
|
.PHONY: rocksdb
|
||||||
|
1
deps/rocksdb
vendored
Submodule
1
deps/rocksdb
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit e3169e3ea8762d2f34880742106858a23c8dc8b7
|
18
src/Makefile
18
src/Makefile
@ -16,7 +16,7 @@ release_hdr := $(shell sh -c './mkreleasehdr.sh')
|
|||||||
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
||||||
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
|
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
|
||||||
OPTIMIZATION?=-O2
|
OPTIMIZATION?=-O2
|
||||||
DEPENDENCY_TARGETS=hiredis linenoise lua
|
DEPENDENCY_TARGETS=hiredis linenoise lua rocksdb
|
||||||
NODEPS:=clean distclean
|
NODEPS:=clean distclean
|
||||||
|
|
||||||
# Default settings
|
# Default settings
|
||||||
@ -158,7 +158,7 @@ endif
|
|||||||
endif
|
endif
|
||||||
# Include paths to dependencies
|
# Include paths to dependencies
|
||||||
FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
|
FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
|
||||||
FINAL_CXXFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
|
FINAL_CXXFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -I../deps/rocksdb/include/
|
||||||
|
|
||||||
ifeq ($(MALLOC),tcmalloc)
|
ifeq ($(MALLOC),tcmalloc)
|
||||||
FINAL_CFLAGS+= -DUSE_TCMALLOC
|
FINAL_CFLAGS+= -DUSE_TCMALLOC
|
||||||
@ -201,13 +201,14 @@ ENDCOLOR="\033[0m"
|
|||||||
|
|
||||||
ifndef V
|
ifndef V
|
||||||
QUIET_CC = @printf ' %b %b\n' $(CCCOLOR)CC$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
|
QUIET_CC = @printf ' %b %b\n' $(CCCOLOR)CC$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
|
||||||
|
QUIET_CP = @printf ' %b %b\n' $(CCCOLOR)COPY$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
|
||||||
QUIET_LINK = @printf ' %b %b\n' $(LINKCOLOR)LINK$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
|
QUIET_LINK = @printf ' %b %b\n' $(LINKCOLOR)LINK$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
|
||||||
QUIET_INSTALL = @printf ' %b %b\n' $(LINKCOLOR)INSTALL$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
|
QUIET_INSTALL = @printf ' %b %b\n' $(LINKCOLOR)INSTALL$(ENDCOLOR) $(BINCOLOR)$@$(ENDCOLOR) 1>&2;
|
||||||
endif
|
endif
|
||||||
|
|
||||||
REDIS_SERVER_NAME=keydb-server
|
REDIS_SERVER_NAME=keydb-server
|
||||||
REDIS_SENTINEL_NAME=keydb-sentinel
|
REDIS_SENTINEL_NAME=keydb-sentinel
|
||||||
REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o acl.o storage.o rdb-s3.o fastlock.o new.o tracking.o AsyncWorkQueue.o snapshot.o $(ASM_OBJ)
|
REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o acl.o storage.o rdb-s3.o fastlock.o new.o tracking.o AsyncWorkQueue.o snapshot.o storage/rocksdb.o $(ASM_OBJ)
|
||||||
REDIS_CLI_NAME=keydb-cli
|
REDIS_CLI_NAME=keydb-cli
|
||||||
REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o redis-cli-cpphelper.o zmalloc.o release.o anet.o ae.o crc64.o siphash.o crc16.o storage-lite.o fastlock.o new.o $(ASM_OBJ)
|
REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o redis-cli-cpphelper.o zmalloc.o release.o anet.o ae.o crc64.o siphash.o crc16.o storage-lite.o fastlock.o new.o $(ASM_OBJ)
|
||||||
REDIS_BENCHMARK_NAME=keydb-benchmark
|
REDIS_BENCHMARK_NAME=keydb-benchmark
|
||||||
@ -257,8 +258,8 @@ endif
|
|||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
# keydb-server
|
# keydb-server
|
||||||
$(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
|
$(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ) librocksdb.so
|
||||||
$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
|
$(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a librocksdb.so -Wl,-rpath . $(FINAL_LIBS)
|
||||||
|
|
||||||
# keydb-sentinel
|
# keydb-sentinel
|
||||||
$(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
|
$(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
|
||||||
@ -290,19 +291,24 @@ dict-benchmark: dict.cpp zmalloc.cpp sds.c siphash.c
|
|||||||
$(REDIS_CC) -c $<
|
$(REDIS_CC) -c $<
|
||||||
|
|
||||||
%.o: %.cpp .make-prerequisites
|
%.o: %.cpp .make-prerequisites
|
||||||
$(REDIS_CXX) -c $<
|
$(REDIS_CXX) -o $@ -c $<
|
||||||
|
|
||||||
%.o: %.asm .make-prerequisites
|
%.o: %.asm .make-prerequisites
|
||||||
$(KEYDB_AS) $< -o $@
|
$(KEYDB_AS) $< -o $@
|
||||||
|
|
||||||
|
librocksdb.so: .make-prerequisites
|
||||||
|
$(QUIET_CP)cp --preserve=mode ../deps/rocksdb/librocksdb.so* ./
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME) *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
|
rm -rf $(REDIS_SERVER_NAME) $(REDIS_SENTINEL_NAME) $(REDIS_CLI_NAME) $(REDIS_BENCHMARK_NAME) $(REDIS_CHECK_RDB_NAME) $(REDIS_CHECK_AOF_NAME) *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
|
||||||
|
rm -rf librocksdb.so*
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
-(cd ../deps && $(MAKE) distclean)
|
-(cd ../deps && $(MAKE) distclean)
|
||||||
-(cd modules && $(MAKE) clean)
|
-(cd modules && $(MAKE) clean)
|
||||||
|
-(cd modules && $(MAKE) clean)
|
||||||
-(rm -f .make-*)
|
-(rm -f .make-*)
|
||||||
|
|
||||||
.PHONY: distclean
|
.PHONY: distclean
|
||||||
|
14
src/storage/rocksdb.cpp
Normal file
14
src/storage/rocksdb.cpp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include "../IStorage.h"
|
||||||
|
#include <rocksdb/db.h>
|
||||||
|
|
||||||
|
class RocksDBStorageProvider : public IStorage
|
||||||
|
{
|
||||||
|
std::unique_ptr<rocksdb::DB> m_spdb;
|
||||||
|
|
||||||
|
public:
|
||||||
|
~RocksDBStorageProvider();
|
||||||
|
};
|
||||||
|
|
||||||
|
RocksDBStorageProvider::~RocksDBStorageProvider()
|
||||||
|
{
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user