From d1208196ee26ffd667a1ce278688ebc917193a9f Mon Sep 17 00:00:00 2001 From: John Sully Date: Sun, 7 Jun 2020 16:40:03 -0400 Subject: [PATCH] Report flash disk usage Former-commit-id: 8e4a71ccd31e3c643a6f7b5154d8f2a65d2de76f --- src/IStorage.h | 1 + src/Makefile | 1 + src/server.cpp | 9 +++++++++ src/storage/teststorageprovider.h | 1 + 4 files changed, 12 insertions(+) diff --git a/src/IStorage.h b/src/IStorage.h index 16526e80d..087a0b1dd 100644 --- a/src/IStorage.h +++ b/src/IStorage.h @@ -9,6 +9,7 @@ public: virtual ~IStorageFactory() {} virtual class IStorage *create(int db, key_load_iterator itr) = 0; virtual const char *name() const = 0; + virtual size_t totalDiskspaceUsed() const = 0; }; class IStorage diff --git a/src/Makefile b/src/Makefile index 5735da009..81ccece77 100644 --- a/src/Makefile +++ b/src/Makefile @@ -376,6 +376,7 @@ DEP = $(REDIS_SERVER_OBJ:%.o=%.d) $(REDIS_CLI_OBJ:%.o=%.d) $(REDIS_BENCHMARK_OBJ 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 storage/*.o + rm -rf keydb-server rm -f $(DEP) .PHONY: clean diff --git a/src/server.cpp b/src/server.cpp index c8399ed27..f5f2a93bd 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -4682,6 +4682,15 @@ sds genRedisInfoString(const char *section) { g_pserver->m_pstorageFactory ? g_pserver->m_pstorageFactory->name() : "none" ); freeMemoryOverheadData(mh); + + if (g_pserver->m_pstorageFactory) + { + info = sdscatprintf(info, + "%s_memory:%zu\r\n", + g_pserver->m_pstorageFactory->name(), + g_pserver->m_pstorageFactory->totalDiskspaceUsed() + ); + } } /* Persistence */ diff --git a/src/storage/teststorageprovider.h b/src/storage/teststorageprovider.h index c39095acf..f719577e9 100644 --- a/src/storage/teststorageprovider.h +++ b/src/storage/teststorageprovider.h @@ -6,6 +6,7 @@ class TestStorageFactory : public IStorageFactory { virtual class IStorage *create(int db, key_load_iterator itr) override; virtual const char *name() const override; + virtual size_t totalDiskspaceUsed() const override { return 0; } }; class TestStorageProvider final : public IStorage