提交 45de6cfe 编写于 作者: H Hongze Cheng

more

上级 330013c5
......@@ -16,7 +16,7 @@ option(
option(
BUILD_WITH_ROCKSDB
"If build with rocksdb"
OFF
ON
)
option(
......
......@@ -17,16 +17,18 @@
#define _TD_META_DB_H_
#include "meta.h"
#include "tkv.h"
// #include "tkv.h"
#include "rocksdb/c.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SMetaDB {
STkvDb * pDB;
STkvDb * pIdx;
STkvCache *pCache;
rocksdb_t * pDB;
rocksdb_t * pIdx;
rocksdb_cache_t *pCache;
} SMetaDB;
int metaOpenDB(SMeta *pMeta);
......
......@@ -17,35 +17,57 @@
#include "metaDef.h"
int metaOpenDB(SMeta *pMeta) {
/* TODO */
pMeta->metaDB.pDB = tkvOpen(NULL, "db");
if (pMeta->metaDB.pDB == NULL) {
// TODO
char * err = NULL;
rocksdb_options_t *pOpts;
pOpts = rocksdb_options_create();
if (pOpts == NULL) {
// TODO: handle error
return -1;
}
pMeta->metaDB.pIdx = tkvOpen(NULL, "index");
if (pMeta->metaDB.pIdx == NULL) {
/* TODO */
// Create LRU cache
if (pMeta->options.lruCacheSize) {
pMeta->metaDB.pCache = rocksdb_cache_create_lru(pMeta->options.lruCacheSize);
if (pMeta->metaDB.pCache == NULL) {
// TODO: handle error
return -1;
}
rocksdb_options_set_row_cache(pOpts, pMeta->metaDB.pCache);
}
// Open raw data DB
pMeta->metaDB.pDB = rocksdb_open(pOpts, "db", &err);
if (pMeta->metaDB.pDB == NULL) {
// TODO: handle error
return -1;
}
{ /* TODO: for cache*/
// Open index DB
pMeta->metaDB.pIdx = rocksdb_open(pOpts, "index", &err);
if (pMeta->metaDB.pIdx == NULL) {
// TODO: handle error
rocksdb_close(pMeta->metaDB.pDB);
return -1;
}
return 0;
}
void metaCloseDB(SMeta *pMeta) { /* TODO */
{
// TODO: clear cache
}
// Close index DB
if (pMeta->metaDB.pIdx) {
tkvClose(pMeta->metaDB.pIdx);
rocksdb_close(pMeta->metaDB.pIdx);
}
// Close raw data DB
if (pMeta->metaDB.pDB) {
tkvClose(pMeta->metaDB.pIdx);
rocksdb_close(pMeta->metaDB.pDB);
}
// Destroy cache
if (pMeta->metaDB.pCache) {
rocksdb_cache_destroy(pMeta->metaDB.pCache);
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册