提交 358b5641 编写于 作者: H Hongze Cheng

more tkv

上级 51509110
...@@ -30,7 +30,8 @@ int tdmOpen(SDiskMgr **ppDiskMgr, const char *fname, uint16_t pgsize); ...@@ -30,7 +30,8 @@ int tdmOpen(SDiskMgr **ppDiskMgr, const char *fname, uint16_t pgsize);
int tdmClose(SDiskMgr *pDiskMgr); int tdmClose(SDiskMgr *pDiskMgr);
int tdmReadPage(SDiskMgr *pDiskMgr, pgid_t pgid, void *pData); int tdmReadPage(SDiskMgr *pDiskMgr, pgid_t pgid, void *pData);
int tdmWritePage(SDiskMgr *pDiskMgr, pgid_t pgid, const void *pData); int tdmWritePage(SDiskMgr *pDiskMgr, pgid_t pgid, const void *pData);
int32_t tdmAllocPage(SDiskMgr *pDiskMgr); int tdmFlush(SDiskMgr *pDiskMgr);
pgid_t tdmAllocPage(SDiskMgr *pDiskMgr);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -16,49 +16,17 @@ ...@@ -16,49 +16,17 @@
#ifndef _TD_TKV_H_ #ifndef _TD_TKV_H_
#define _TD_TKV_H_ #define _TD_TKV_H_
#if 0
#include "os.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// Types exported // SKey
typedef struct STkvDb STkvDb; typedef struct SKey {
typedef struct STkvOpts STkvOpts; void *bdata;
typedef struct STkvCache STkvCache; } SKey, SValue;
typedef struct STkvReadOpts STkvReadOpts;
typedef struct STkvWriteOpts STkvWriteOpts;
// DB operations
STkvDb *tkvOpen(const STkvOpts *options, const char *path);
void tkvClose(STkvDb *db);
void tkvPut(STkvDb *db, const STkvWriteOpts *, const char *key, size_t keylen, const char *val, size_t vallen);
char * tkvGet(STkvDb *db, const STkvReadOpts *, const char *key, size_t keylen, size_t *vallen);
void tkvCommit(STkvDb *db);
// DB options
STkvOpts *tkvOptsCreate();
void tkvOptsDestroy(STkvOpts *);
void tkvOptionsSetCache(STkvOpts *, STkvCache *);
void tkvOptsSetCreateIfMissing(STkvOpts *, unsigned char);
// DB cache
typedef enum { TKV_LRU_CACHE = 0, TKV_LFU_CACHE = 1 } ETkvCacheType;
STkvCache *tkvCacheCreate(size_t capacity, ETkvCacheType type);
void tkvCacheDestroy(STkvCache *);
// STkvReadOpts
STkvReadOpts *tkvReadOptsCreate();
void tkvReadOptsDestroy(STkvReadOpts *);
// STkvWriteOpts
STkvWriteOpts *tkvWriteOptsCreate();
void tkvWriteOptsDestroy(STkvWriteOpts *);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif
#endif /*_TD_TKV_H_*/ #endif /*_TD_TKV_H_*/
\ No newline at end of file
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
#include "tDiskMgr.h" #include "tDiskMgr.h"
struct SDiskMgr { struct SDiskMgr {
const char *fname; char * fname;
uint16_t pgsize; uint16_t pgsize;
FileFd fd; FileFd fd;
int32_t npgid; pgid_t npgid;
}; };
#define PAGE_OFFSET(PGID, PGSIZE) ((PGID) * (PGSIZE)) #define PAGE_OFFSET(PGID, PGSIZE) ((PGID) * (PGSIZE))
...@@ -69,4 +69,6 @@ int tdmWritePage(SDiskMgr *pDiskMgr, pgid_t pgid, const void *pData) { ...@@ -69,4 +69,6 @@ int tdmWritePage(SDiskMgr *pDiskMgr, pgid_t pgid, const void *pData) {
return 0; return 0;
} }
int tdmFlush(SDiskMgr *pDiskMgr) { return taosFsyncFile(pDiskMgr->fd); }
int32_t tdmAllocPage(SDiskMgr *pDiskMgr) { return pDiskMgr->npgid++; } int32_t tdmAllocPage(SDiskMgr *pDiskMgr) { return pDiskMgr->npgid++; }
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册