From e91147f8cf23bc6f8fc8c91237168da873ac1501 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Thu, 3 Mar 2022 06:35:52 +0000 Subject: [PATCH] refact --- source/libs/tdb/src/db/tdbBtree.c | 9 --------- source/libs/tdb/src/db/tdbEnv.c | 2 +- source/libs/tdb/src/db/tdbPCache.c | 1 - source/libs/tdb/src/db/tdbPager.c | 3 ++- source/libs/tdb/src/inc/tdbInt.h | 5 +++-- source/libs/tdb/src/inc/tdbPCache.h | 20 -------------------- source/libs/tdb/src/inc/tdbPage.h | 22 ++++++++++++++++++---- 7 files changed, 24 insertions(+), 38 deletions(-) diff --git a/source/libs/tdb/src/db/tdbBtree.c b/source/libs/tdb/src/db/tdbBtree.c index 59e92c6044..a59a1b90f5 100644 --- a/source/libs/tdb/src/db/tdbBtree.c +++ b/source/libs/tdb/src/db/tdbBtree.c @@ -268,13 +268,4 @@ static int tdbDefaultKeyCmprFn(const void *pKey1, int keyLen1, const void *pKey2 } } return cret; -} - -static void tdbBtreeZeroPage(SMemPage *pPage, int flags) { - // TODO -} - -static int tdbBtreeInitPage(SMemPage *pPage) { - // TODO - return 0; } \ No newline at end of file diff --git a/source/libs/tdb/src/db/tdbEnv.c b/source/libs/tdb/src/db/tdbEnv.c index e85956b82d..0b27796790 100644 --- a/source/libs/tdb/src/db/tdbEnv.c +++ b/source/libs/tdb/src/db/tdbEnv.c @@ -48,7 +48,7 @@ int tdbEnvOpen(const char *rootDir, int pageSize, int cacheSize, STEnv **ppEnv) pEnv->jfd = -1; - ret = tdbPCacheOpen(pageSize, cacheSize, sizeof(SMemPage), &(pEnv->pCache)); + ret = tdbPCacheOpen(pageSize, cacheSize, 0, &(pEnv->pCache)); if (ret < 0) { return -1; } diff --git a/source/libs/tdb/src/db/tdbPCache.c b/source/libs/tdb/src/db/tdbPCache.c index cd7888ae00..d86442a8d7 100644 --- a/source/libs/tdb/src/db/tdbPCache.c +++ b/source/libs/tdb/src/db/tdbPCache.c @@ -236,7 +236,6 @@ static int tdbPCacheOpenImpl(SPCache *pCache) { pPage = (SPage *)(&(pPtr[pCache->pageSize])); pPage->pData = (void *)pPtr; - pPage->pExtra = (void *)(&(pPage[1])); // pPage->pgid = 0; pPage->isAnchor = 0; pPage->isLocalPage = 1; diff --git a/source/libs/tdb/src/db/tdbPager.c b/source/libs/tdb/src/db/tdbPager.c index 22107e67c3..cbbaef3e20 100644 --- a/source/libs/tdb/src/db/tdbPager.c +++ b/source/libs/tdb/src/db/tdbPager.c @@ -114,7 +114,8 @@ int tdbPagerOpenDB(SPager *pPager, SPgno *ppgno, bool toCreate) { return -1; } - // tdbpPagerZeroPage(pPage); + // TODO: Need to zero the page + ret = tdbPagerWrite(pPager, pPage); if (ret < 0) { return -1; diff --git a/source/libs/tdb/src/inc/tdbInt.h b/source/libs/tdb/src/inc/tdbInt.h index 9b6dec8d44..f3b5967295 100644 --- a/source/libs/tdb/src/inc/tdbInt.h +++ b/source/libs/tdb/src/inc/tdbInt.h @@ -128,12 +128,13 @@ typedef int (*FKeyComparator)(const void *pKey1, int kLen1, const void *pKey2, i #define BTREE_MAX_DEPTH 20 +typedef struct SPager SPager; +typedef struct SPCache SPCache; + #include "tdbUtil.h" #include "tdbPage.h" -typedef struct SPager SPager; - #include "tdbPCache.h" #include "tdbPager.h" diff --git a/source/libs/tdb/src/inc/tdbPCache.h b/source/libs/tdb/src/inc/tdbPCache.h index ba07b8cb5d..0470c65c00 100644 --- a/source/libs/tdb/src/inc/tdbPCache.h +++ b/source/libs/tdb/src/inc/tdbPCache.h @@ -20,26 +20,6 @@ extern "C" { #endif -typedef struct SPCache SPCache; -typedef struct SPage SPage; - -struct SPage { - void * pData; - void * pExtra; - SPgid pgid; - u8 isAnchor; - u8 isLocalPage; - u8 isDirty; - i32 nRef; - SPCache *pCache; - SPage * pFreeNext; - SPage * pHashNext; - SPage * pLruNext; - SPage * pLruPrev; - SPage * pDirtyNext; - SPager * pPager; -}; - int tdbPCacheOpen(int pageSize, int cacheSize, int extraSize, SPCache **ppCache); int tdbPCacheClose(SPCache *pCache); SPage *tdbPCacheFetch(SPCache *pCache, const SPgid *pPgid, bool alcNewPage); diff --git a/source/libs/tdb/src/inc/tdbPage.h b/source/libs/tdb/src/inc/tdbPage.h index 164d1c8812..5c3e7cdd40 100644 --- a/source/libs/tdb/src/inc/tdbPage.h +++ b/source/libs/tdb/src/inc/tdbPage.h @@ -28,16 +28,30 @@ typedef struct __attribute__((__packed__)) { u16 nFree; } SPageHdr; -typedef struct { - void * pData; +typedef struct SPage SPage; +struct SPage { + // Fields below used by page cache + void * pData; + SPgid pgid; + u8 isAnchor; + u8 isLocalPage; + u8 isDirty; + i32 nRef; + SPCache *pCache; + SPage * pFreeNext; + SPage * pHashNext; + SPage * pLruNext; + SPage * pLruPrev; + SPage * pDirtyNext; + SPager * pPager; + // Fields below used by pager and am SPageHdr *pPageHdr; - void * pAMHdr; u16 * aCellIdx; int kLen; int vLen; int maxLocal; int minLocal; -} SMemPage; +}; #ifdef __cplusplus } -- GitLab