added createMetadataDb to IStorageFactory + implementations
Former-commit-id: a2acf75484d2af93aad9d03a20bd402893044860
This commit is contained in:
parent
d443babbea
commit
aa048e2b2f
@ -9,6 +9,7 @@ public:
|
|||||||
|
|
||||||
virtual ~IStorageFactory() {}
|
virtual ~IStorageFactory() {}
|
||||||
virtual class IStorage *create(int db, key_load_iterator itr, void *privdata) = 0;
|
virtual class IStorage *create(int db, key_load_iterator itr, void *privdata) = 0;
|
||||||
|
virtual class IStorage *createMetadataDb() = 0;
|
||||||
virtual const char *name() const = 0;
|
virtual const char *name() const = 0;
|
||||||
virtual size_t totalDiskspaceUsed() const = 0;
|
virtual size_t totalDiskspaceUsed() const = 0;
|
||||||
virtual bool FSlow() const = 0;
|
virtual bool FSlow() const = 0;
|
||||||
|
@ -3984,6 +3984,10 @@ void initServer(void) {
|
|||||||
slowlogInit();
|
slowlogInit();
|
||||||
latencyMonitorInit();
|
latencyMonitorInit();
|
||||||
|
|
||||||
|
if (g_pserver->m_pstorageFactory) {
|
||||||
|
g_pserver->metadataDb = g_pserver->m_pstorageFactory->createMetadataDb();
|
||||||
|
}
|
||||||
|
|
||||||
/* We have to initialize storage providers after the cluster has been initialized */
|
/* We have to initialize storage providers after the cluster has been initialized */
|
||||||
for (int idb = 0; idb < cserver.dbnum; ++idb)
|
for (int idb = 0; idb < cserver.dbnum; ++idb)
|
||||||
{
|
{
|
||||||
|
@ -2170,6 +2170,7 @@ struct redisServer {
|
|||||||
mode_t umask; /* The umask value of the process on startup */
|
mode_t umask; /* The umask value of the process on startup */
|
||||||
std::atomic<int> hz; /* serverCron() calls frequency in hertz */
|
std::atomic<int> hz; /* serverCron() calls frequency in hertz */
|
||||||
int in_fork_child; /* indication that this is a fork child */
|
int in_fork_child; /* indication that this is a fork child */
|
||||||
|
IStorage *metadataDb = nullptr;
|
||||||
redisDb **db = nullptr;
|
redisDb **db = nullptr;
|
||||||
dict *commands; /* Command table */
|
dict *commands; /* Command table */
|
||||||
dict *orig_commands; /* Command table before command renaming. */
|
dict *orig_commands; /* Command table before command renaming. */
|
||||||
|
@ -14,6 +14,7 @@ public:
|
|||||||
~RocksDBStorageFactory();
|
~RocksDBStorageFactory();
|
||||||
|
|
||||||
virtual IStorage *create(int db, key_load_iterator iter, void *privdata) override;
|
virtual IStorage *create(int db, key_load_iterator iter, void *privdata) override;
|
||||||
|
virtual IStorage *createMetadataDb() override;
|
||||||
virtual const char *name() const override;
|
virtual const char *name() const override;
|
||||||
|
|
||||||
virtual size_t totalDiskspaceUsed() const override;
|
virtual size_t totalDiskspaceUsed() const override;
|
||||||
|
@ -6,6 +6,11 @@ IStorage *TestStorageFactory::create(int, key_load_iterator, void *)
|
|||||||
return new (MALLOC_LOCAL) TestStorageProvider();
|
return new (MALLOC_LOCAL) TestStorageProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IStorage *TestStorageFactory::createMetadataDb()
|
||||||
|
{
|
||||||
|
return new (MALLOC_LOCAL) TestStorageProvider();
|
||||||
|
}
|
||||||
|
|
||||||
const char *TestStorageFactory::name() const
|
const char *TestStorageFactory::name() const
|
||||||
{
|
{
|
||||||
return "TEST Storage Provider";
|
return "TEST Storage Provider";
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
class TestStorageFactory : public IStorageFactory
|
class TestStorageFactory : public IStorageFactory
|
||||||
{
|
{
|
||||||
virtual class IStorage *create(int db, key_load_iterator itr, void *privdata) override;
|
virtual class IStorage *create(int db, key_load_iterator itr, void *privdata) override;
|
||||||
|
virtual class IStorage *createMetadataDb() override;
|
||||||
virtual const char *name() const override;
|
virtual const char *name() const override;
|
||||||
virtual size_t totalDiskspaceUsed() const override { return 0; }
|
virtual size_t totalDiskspaceUsed() const override { return 0; }
|
||||||
virtual bool FSlow() const { return false; }
|
virtual bool FSlow() const { return false; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user