Merge branch 'fix/long_query' of https://github.com/taosdata/TDengine into fix/long_query
This commit is contained in:
commit
bb2ed08afc
|
@ -208,13 +208,21 @@ static int32_t tsdbCacheQueryReseek(void* pQHandle) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SCacheRowsReader* pReader = pQHandle;
|
SCacheRowsReader* pReader = pQHandle;
|
||||||
|
|
||||||
taosThreadMutexLock(&pReader->readerMutex);
|
code = taosThreadMutexTryLock(&pReader->readerMutex);
|
||||||
|
if (code == 0) {
|
||||||
|
// pause current reader's state if not paused, save ts & version for resuming
|
||||||
|
// just wait for the big all tables' snapshot untaking for now
|
||||||
|
|
||||||
// pause current reader's state if not paused, save ts & version for resuming
|
code = TSDB_CODE_VND_QUERY_BUSY;
|
||||||
// just wait for the big all tables' snapshot untaking for now
|
|
||||||
|
|
||||||
taosThreadMutexUnlock(&pReader->readerMutex);
|
taosThreadMutexUnlock(&pReader->readerMutex);
|
||||||
return code;
|
|
||||||
|
return code;
|
||||||
|
} else if (code == EBUSY) {
|
||||||
|
return TSDB_CODE_VND_QUERY_BUSY;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32_t* slotIds, SArray* pTableUidList) {
|
int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32_t* slotIds, SArray* pTableUidList) {
|
||||||
|
|
|
@ -4068,18 +4068,23 @@ static int32_t tsdbSetQueryReseek(void* pQHandle) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
STsdbReader* pReader = pQHandle;
|
STsdbReader* pReader = pQHandle;
|
||||||
|
|
||||||
taosThreadMutexLock(&pReader->readerMutex);
|
code = taosThreadMutexTryLock(&pReader->readerMutex);
|
||||||
|
if (code == 0) {
|
||||||
|
if (pReader->suspended) {
|
||||||
|
taosThreadMutexUnlock(&pReader->readerMutex);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
tsdbReaderSuspend(pReader);
|
||||||
|
|
||||||
if (pReader->suspended) {
|
|
||||||
taosThreadMutexUnlock(&pReader->readerMutex);
|
taosThreadMutexUnlock(&pReader->readerMutex);
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
|
} else if (code == EBUSY) {
|
||||||
|
return TSDB_CODE_VND_QUERY_BUSY;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tsdbReaderSuspend(pReader);
|
|
||||||
|
|
||||||
taosThreadMutexUnlock(&pReader->readerMutex);
|
|
||||||
|
|
||||||
return code;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t tsdbReaderResume(STsdbReader* pReader) {
|
int32_t tsdbReaderResume(STsdbReader* pReader) {
|
||||||
|
|
Loading…
Reference in New Issue