tsdb/cache: invalidate cached schema
This commit is contained in:
parent
cf3e84e79d
commit
e364d5aa66
|
@ -222,6 +222,7 @@ int32_t tsdbCacheNewSTableColumn(STsdb* pTsdb, SArray* uids, int16_t cid, int8_t
|
|||
int32_t tsdbCacheDropSTableColumn(STsdb* pTsdb, SArray* uids, int16_t cid, bool hasPrimayKey);
|
||||
int32_t tsdbCacheNewNTableColumn(STsdb* pTsdb, int64_t uid, int16_t cid, int8_t col_type);
|
||||
int32_t tsdbCacheDropNTableColumn(STsdb* pTsdb, int64_t uid, int16_t cid, bool hasPrimayKey);
|
||||
void tsdbCacheInvalidateSchema(STsdb* pTsdb, tb_uid_t suid, tb_uid_t uid);
|
||||
int tsdbScanAndConvertSubmitMsg(STsdb* pTsdb, SSubmitReq2* pMsg);
|
||||
int tsdbInsertData(STsdb* pTsdb, int64_t version, SSubmitReq2* pMsg, SSubmitRsp2* pRsp);
|
||||
int32_t tsdbInsertTableData(STsdb* pTsdb, int64_t version, SSubmitTbData* pSubmitTbData, int32_t* affectedRows);
|
||||
|
|
|
@ -620,6 +620,8 @@ int metaAlterSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
|
|||
}
|
||||
}
|
||||
if (uids) taosArrayDestroy(uids);
|
||||
|
||||
tsdbCacheInvalidateSchema(pTsdb, pReq->suid, -1);
|
||||
}
|
||||
|
||||
metaWLock(pMeta);
|
||||
|
@ -1945,6 +1947,10 @@ static int metaAlterTableColumn(SMeta *pMeta, int64_t version, SVAlterTbReq *pAl
|
|||
break;
|
||||
}
|
||||
|
||||
if (!TSDB_CACHE_NO(pMeta->pVnode->config)) {
|
||||
tsdbCacheInvalidateSchema(pMeta->pVnode->pTsdb, 0, entry.uid);
|
||||
}
|
||||
|
||||
entry.version = version;
|
||||
|
||||
// do actual write
|
||||
|
|
|
@ -493,7 +493,7 @@ int tsdbCacheFlushDirty(const void *key, size_t klen, void *value, void *ud) {
|
|||
int32_t tsdbCacheCommit(STsdb *pTsdb) {
|
||||
int32_t code = 0;
|
||||
char *err = NULL;
|
||||
|
||||
/*
|
||||
SLRUCache *pCache = pTsdb->lruCache;
|
||||
rocksdb_writebatch_t *wb = pTsdb->rCache.writebatch;
|
||||
|
||||
|
@ -511,7 +511,7 @@ int32_t tsdbCacheCommit(STsdb *pTsdb) {
|
|||
rocksdb_free(err);
|
||||
code = TSDB_CODE_FAILED;
|
||||
}
|
||||
|
||||
*/
|
||||
TAOS_RETURN(code);
|
||||
}
|
||||
|
||||
|
@ -1304,6 +1304,16 @@ _exit:
|
|||
TAOS_RETURN(code);
|
||||
}
|
||||
|
||||
void tsdbCacheInvalidateSchema(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid) {
|
||||
if (suid) {
|
||||
if (pTsdb->rCache.suid == suid) {
|
||||
pTsdb->rCache.suid = -1;
|
||||
}
|
||||
} else if (pTsdb->rCache.uid == uid) {
|
||||
pTsdb->rCache.uid = -1;
|
||||
}
|
||||
}
|
||||
|
||||
static int32_t tsdbUpdateSkm(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid) {
|
||||
if (suid) {
|
||||
if (pTsdb->rCache.suid == suid) {
|
||||
|
|
Loading…
Reference in New Issue