問題:Doris insert into 正常執行成功,select 查詢也執行成功,但查不到該寫入數據
原因:由于有其他 insert commit 事務待提交且該任務處于鎖的狀態,導致不斷在回滾,進而造成其他的insert into 語句也執行成功,但是select不到寫入的數據。一是集群性能太差的緣故,二是寫入訪問過多,導致查詢tablet文件部分丟失,卻回滾事務異常,Doris FE webui Log WARN日志打印初步判定是此原因,情況出現很少。
Doris FE webui WARN-Log 或者搜ERROR:
WARN (replayer|98) [BDBJournalCursor.next():148] Catch an exception when get next JournalEntity. key:12925859com.sleepycat.je.LockTimeoutException: (JE 18.3.12) Lock expired. Locker 1399794957 -1_replayer_ReplicaThreadLocker: waited for lock on database=12924945 LockAddr:1044707672 LSN=0x389/0xa5b46 type=READ grant=WAIT_NEW timeoutMillis=5000 startTime=1717660685364 endTime=1717660690364Owners: [2024-06-06 16:09:17,902 WARN (mysql-nio-pool-13|355) [StmtExecutor.executeByLegacy():770] execute Exception. stmt[24765, 35fb3e655af74ffa-a62f0bbb830f6315]org.apache.doris.common.UserException: errCode = 2, detailMessage = (172.29.xxx.xx)[CANCELLED][INTERNAL_ERROR]failed to initialize storage reader. tablet=41483.2004477475.1d4d610d5642ea3b-9ac11667e188518b, res=[E-230]missed_versions is empty0. /root/src/doris-2.0/be/src/common/stack_trace.cpp:302: StackTrace::tryCapture() @ 0x000000000b86cf47 in /data/software/doris-1.2.4/be/lib/doris_be1. /root/src/doris-2.0/be/src/common/stack_trace.h:0: doris::get_stack_trace[abi:cxx11]() @ 0x000000000b86b5b5 in /data/software/doris-1.2.4/be/lib/doris_be2. /var/local/ldb-toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187: doris::Status doris::Status::Error
解決:
-- 會話窗執行變量配置,關閉 insert 事務
set enable_odbc_transcation = false;