From 247d3ac7ee928df80379bf7a9024560bb65138ce Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Fri, 30 Jun 2023 12:05:05 +0000 Subject: [PATCH] vnode snapshot read --- source/libs/stream/src/streamBackendRocksdb.c | 17 +++++++++++++++++ source/libs/stream/src/streamMeta.c | 1 + 2 files changed, 18 insertions(+) diff --git a/source/libs/stream/src/streamBackendRocksdb.c b/source/libs/stream/src/streamBackendRocksdb.c index d20eb558ee..97be6b981e 100644 --- a/source/libs/stream/src/streamBackendRocksdb.c +++ b/source/libs/stream/src/streamBackendRocksdb.c @@ -201,6 +201,23 @@ void streamBackendCleanup(void* arg) { * checkpointInUse: |--cp2--|--cp4--|, checkpointDir in checkpointInUse do replicate trans, cannot del until * replication is finished */ +int32_t getLatestCheckpoint(void* arg, int64_t* checkpoint) { + SStreamMeta* pMeta = arg; + taosWLockLatch(&pMeta->checkpointDirLock); + int64_t tc = 0; + int32_t sz = taosArrayGetSize(pMeta->checkpointSaved); + if (sz <= 0) { + return -1; + } else { + tc = *(int64_t*)taosArrayGetLast(pMeta->checkpointSaved); + } + + taosArrayPush(pMeta->checkpointInUse, &tc); + + *checkpoint = tc; + taosWUnLockLatch(&pMeta->checkpointDirLock); + return 0; +} int32_t delObsoleteCheckpoint(void* arg, const char* path) { SStreamMeta* pMeta = arg; diff --git a/source/libs/stream/src/streamMeta.c b/source/libs/stream/src/streamMeta.c index 8e5ffc2cf6..09936143e4 100644 --- a/source/libs/stream/src/streamMeta.c +++ b/source/libs/stream/src/streamMeta.c @@ -146,6 +146,7 @@ void streamMetaClose(SStreamMeta* pMeta) { taosArrayDestroy(pMeta->checkpointSaved); taosArrayDestroy(pMeta->checkpointInUse); + taosMemoryFree(pMeta); }