ekexium
6cbd7e4f97
feat: check max_execution_time for pessimistic lock requests ( #1731 )
...
ref pingcap/tidb#62960
Signed-off-by: ekexium <eke@fastmail.com>
2025-09-17 11:13:08 +00:00
you06
e0e4cda310
txn: check constraints for all keys in nextgen build ( #1753 )
...
ref tikv/tikv#11187
Signed-off-by: you06 <you1474600@gmail.com>
2025-09-11 06:28:27 +00:00
山岚
1a0daf3ee7
txn: Set "CommitRequest.UseAsyncCommit" for async commit ( #1730 )
...
Signed-off-by: Ping Yu <yuping@pingcap.com>
Signed-off-by: Juncen Yu <yujuncen@pingcap.com>
Co-authored-by: Ping Yu <yuping@pingcap.com>
2025-08-01 15:12:33 +00:00
zyguan
b7e019d315
txnkv: prevent some actions from being interrupted by kill ( #1665 )
...
fix pingcap/tidb#61454
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-06-27 07:41:09 +00:00
王超
1880726302
txn: fix the implemention of undetermined error ( #1644 )
...
close tikv/client-go#1641
Signed-off-by: Chao Wang <cclcwangchao@hotmail.com>
2025-05-20 11:30:40 +00:00
王超
d1ec4b4f67
txn: handle undetermined error in client go ( #1642 )
...
close tikv/client-go#1641
Signed-off-by: Chao Wang <cclcwangchao@hotmail.com>
2025-05-20 07:00:04 +00:00
王超
3150e385e3
txn: provide more information in commit RPC / log mvcc debug info when commit failed for `TxnLockNotFound` ( #1640 )
...
ref tikv/client-go#1631
Signed-off-by: Chao Wang <cclcwangchao@hotmail.com>
2025-05-12 11:19:20 +00:00
JT
a65bf61bbe
Add txn write conflict metrics ( #1551 )
...
close tikv/client-go#1550
Signed-off-by: sujuntao <juntao.su@foxmail.com>
Co-authored-by: sujuntao <juntao.su@foxmail.com>
2025-04-29 09:08:46 +00:00
you06
183817ac81
memdb: introduce snapshot interface ( #1623 )
...
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: ekexium <eke@fastmail.com>
2025-04-15 14:17:37 +00:00
tangenta
e53096d518
support redact key in logs ( #1612 )
...
ref pingcap/tidb#59279
Signed-off-by: tangenta <tangenta@126.com>
Co-authored-by: you06 <you1474600@gmail.com>
2025-04-01 07:17:12 +00:00
yibin
1906b778d7
Refine pessimistic lock related metrics and stats ( #1620 )
...
Signed-off-by: yibin87 <huyibin@pingcap.com>
2025-03-27 03:05:28 +00:00
ekexium
ddec8237fd
memdb: prevent iterator invalidation ( #1563 )
...
ref pingcap/tidb#59153
Signed-off-by: ekexium <eke@fastmail.com>
2025-02-19 08:02:06 +00:00
you06
075b19f935
p-dml: resolve locks concurrently ( #1584 )
...
close tikv/client-go#1577
Signed-off-by: you06 <you1474600@gmail.com>
2025-02-19 01:46:31 +00:00
ekexium
405d444558
Allow setting concurrency for pipelined flush and resolveLocks ( #1494 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2025-01-16 07:40:52 +00:00
Shirly
d22ee9141d
txnkv/transaction/prewrite: tiny refactor HandleSingleBatch ( #1529 )
...
Signed-off-by: AndreMouche <AndreMouche@126.com>
2025-01-15 12:23:16 +00:00
ekexium
743aec19e4
Allow configuring the policy when prewrite encounters lock ( #1501 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2025-01-02 05:53:15 +00:00
MyonKeminta
8e0275cc8d
Fix the problem that ttlManager may stop working if no need to lock after retry aggressive locking ( #1522 )
...
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2024-12-17 09:14:33 +00:00
MyonKeminta
06d7f4b923
Try to validate read ts for all RPC requests ( #1513 )
...
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2024-12-09 09:49:30 +00:00
Bin Zhang
89643b0e8c
Export commitTS of KVTxn ( #1489 )
...
Signed-off-by: Bin Zhang <b6g2021@gmail.com>
2024-11-27 07:15:26 +00:00
you06
8b0547ae39
clean up locks when p-dml is failed ( #1486 )
...
Signed-off-by: you06 <you1474600@gmail.com>
2024-11-18 07:21:14 +00:00
ekexium
983d7ff3d3
Fix the async broadcast & resolveFlushedLocks ( #1493 )
...
close pingcap/tidb#57213
Signed-off-by: ekexium <eke@fastmail.com>
2024-11-18 02:31:11 +00:00
ekexium
bce97bbb3e
Do not broadcast txn status when heartbeat fail ( #1471 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-10-10 05:27:19 +00:00
ekexium
527f80a186
feat: Broadcast min_commit_ts for pipelined transactions ( #1458 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-09-25 01:34:14 +00:00
YangKeao
f0ea917499
transaction: add hook for async commit to track the life cycle of the async-commit goroutine and secondary lock cleanup goroutine ( #1432 )
...
Signed-off-by: Yang Keao <yangkeao@chunibyo.icu>
2024-09-04 09:21:32 +00:00
you06
41d133b6b6
membuffer: refactor the memdb to support multi implementations ( #1426 )
...
ref pingcap/tidb#55287
Signed-off-by: you06 <you1474600@gmail.com>
2024-08-23 03:46:43 +00:00
ekexium
aa8b33873f
Let memdb cache last traversed node ( #1389 )
...
* opt: let memdb cache last traversed node
Signed-off-by: ekexium <eke@fastmail.com>
* add a switch
Signed-off-by: ekexium <eke@fastmail.com>
* use atomic pointer
Signed-off-by: ekexium <eke@fastmail.com>
* fix: invalidate cache if the node is deleted
Signed-off-by: ekexium <eke@fastmail.com>
* feat: log flush_wait_duration (#1391 )
Signed-off-by: ekexium <eke@fastmail.com>
* feat: add cache metrics
Signed-off-by: ekexium <eke@fastmail.com>
* opt: parent node tracking in traverse
Signed-off-by: ekexium <eke@fastmail.com>
* opt: isNull
Signed-off-by: ekexium <eke@fastmail.com>
* log: silence verbose failpoint log
Signed-off-by: ekexium <eke@fastmail.com>
* metrics: track traverse duration
Signed-off-by: ekexium <eke@fastmail.com>
* Revert "metrics: track traverse duration"
This reverts commit 05fc82bad51711c5f0fadf7936e118ed2c4990ab.
Signed-off-by: ekexium <eke@fastmail.com>
* fix: flush wait
Signed-off-by: ekexium <eke@fastmail.com>
* fix: duration logs
Signed-off-by: ekexium <eke@fastmail.com>
* refine log message
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-08-08 17:20:52 +08:00
ekexium
3ac46e8171
fix: duration logs ( #1405 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-07-31 13:12:27 +08:00
ekexium
88ce38492f
feat: log flush_wait_duration ( #1391 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-07-23 09:16:43 +08:00
ekexium
ac8fa1d73a
feat: introduce a new method MemHookSet ( #1362 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-06-14 14:44:55 +08:00
MyonKeminta
a6335a5aaf
Fix the problem that statement being oom-killed within DoneAggressiveLocking causing the transaction still in aggressive locking state ( #1355 )
...
* Quick fix the problem that statement being oom-killed within DoneAggressiveLocking causing the transaction still in aggressive locking state
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
* Add comments to explain the change
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
---------
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
Co-authored-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2024-05-30 16:20:09 +08:00
ekexium
c40432e3ab
feat: record flush_wait_ms in TxnInfo ( #1342 )
...
* feat: record flush_wait_ms in TxnInfo
Signed-off-by: ekexium <eke@fastmail.com>
* refactor: change FlushWaitDuration() to GetFlushMetrics()
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
2024-05-15 11:13:15 +08:00
you06
6cb0704fce
fail pipelined dml when max ttl exceeded ( #1329 )
...
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: ekexium <eke@fastmail.com>
2024-04-30 22:52:41 +08:00
ekexium
8635acc840
feat: return error if commit ts expired is returned for a non-primary key ( #1316 )
...
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-04-24 19:16:26 +08:00
you06
edba2544d5
txn: abort pipelined dml when pk rollback ( #1317 )
...
* fail p-dml when ttl manager is closed
Signed-off-by: you06 <you1474600@gmail.com>
* close ttl manager when pk is rollbcked
Signed-off-by: you06 <you1474600@gmail.com>
* stablize test
Signed-off-by: you06 <you1474600@gmail.com>
* add test
Signed-off-by: you06 <you1474600@gmail.com>
* fix race
Signed-off-by: you06 <you1474600@gmail.com>
* fix leak in test
Signed-off-by: you06 <you1474600@gmail.com>
* remote testlog
Signed-off-by: you06 <you1474600@gmail.com>
* check error message
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: you06 <you1474600@gmail.com>
2024-04-23 17:36:44 +08:00
ekexium
e02b025475
log: only log the first lock in every flush or prewrite response ( #1295 )
...
* log: only log the first lock in every flush or prewrite response
Signed-off-by: ekexium <eke@fastmail.com>
* log each conflicting txn at most once
Signed-off-by: ekexium <eke@fastmail.com>
* log: ttlManager
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
2024-04-18 16:47:21 +08:00
ekexium
5b3e266723
log: log the resolve progress of pipelined-dml every 30s ( #1291 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-04-18 15:51:40 +08:00
ekexium
47891a931f
feat: stop flush when first error is met, like for prewrite ( #1296 )
...
Signed-off-by: ekexium <eke@fastmail.com>
2024-04-18 15:40:37 +08:00
ekexium
a23f6cac0c
log: silence schema check log ( #1290 )
...
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-04-15 15:08:02 +08:00
you06
714958ccd4
implement rollback for pipelined dml ( #1235 )
...
* impl rollback for p-dml
Signed-off-by: you06 <you1474600@gmail.com>
* add test to ensure the rollback locks cannot be read
Signed-off-by: you06 <you1474600@gmail.com>
* remove TODO comment
Signed-off-by: you06 <you1474600@gmail.com>
* address comment
Signed-off-by: you06 <you1474600@gmail.com>
address comment
Signed-off-by: you06 <you1474600@gmail.com>
* resolve conflict
Signed-off-by: you06 <you1474600@gmail.com>
* lint
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
Co-authored-by: ekexium <eke@fastmail.com>
2024-04-09 10:27:18 +08:00
ekexium
f800b05581
Distinguish identifier and name in task runner ( #1271 )
...
* refactor: distinguish identifier and name in task runner, to avoid messy metrics
Signed-off-by: ekexium <eke@fastmail.com>
* keep the original interface to avoid breaking compatibility
Signed-off-by: ekexium <eke@fastmail.com>
* log: use ctx logger
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
2024-04-08 19:35:52 +08:00
ekexium
7c70c54016
Allow setting session id of KVTxn ( #1270 )
...
* allow setting session id
Signed-off-by: ekexium <eke@fastmail.com>
* comment: explain usage
Signed-off-by: ekexium <eke@fastmail.com>
* try using ctx logger as much as possible
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-04-08 16:03:59 +08:00
ekexium
356eb45c5d
log: more items for diagnosing pipelined dml ( #1252 )
...
* log: more items for diagnosing pipelined dml
Signed-off-by: ekexium <eke@fastmail.com>
* log: flush duration
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-04-01 10:16:58 +08:00
ekexium
87a984a72d
feat: introduce GetLocal() and BatchGet cache for PipelinedMemDB ( #1212 )
...
* feat: introduce GetLocal() for MemBuffer
Signed-off-by: ekexium <eke@fastmail.com>
* downgrade tools to 0.18.0
Signed-off-by: ekexium <eke@fastmail.com>
* fix: set flushingMemDB = nil when an error is returned from a flush
Signed-off-by: ekexium <eke@fastmail.com>
* impl BatchGet for MemBuffer
Signed-off-by: you06 <you1474600@gmail.com>
test membuffer batch get
Signed-off-by: you06 <you1474600@gmail.com>
* add Prefetch & GetPrefetchCache
Signed-off-by: you06 <you1474600@gmail.com>
* cache multi Prefetch call
Signed-off-by: you06 <you1474600@gmail.com>
* add tests
Signed-off-by: you06 <you1474600@gmail.com>
* workaround for golang ci lint failure
Signed-off-by: you06 <you1474600@gmail.com>
* replace assert with require
Signed-off-by: you06 <you1474600@gmail.com>
* workaround golangci lint
Signed-off-by: you06 <you1474600@gmail.com>
* lint
Signed-off-by: you06 <you1474600@gmail.com>
* remove prefetch interface, pipelined memdb will cache batch get result
Signed-off-by: you06 <you1474600@gmail.com>
* update tidb
Signed-off-by: you06 <you1474600@gmail.com>
* fix batch get cache when membuffer is empty
Signed-off-by: you06 <you1474600@gmail.com>
* fix returned delete value
Signed-off-by: you06 <you1474600@gmail.com>
* fix: handle resourceGroupTag of Flush
Signed-off-by: ekexium <eke@fastmail.com>
* fix: set resource group tag for committer if it's pipelined
Signed-off-by: ekexium <eke@fastmail.com>
* Update internal/unionstore/pipelined_memdb.go
Co-authored-by: ekexium <eke@fastmail.com>
* remove prefetch interface
Signed-off-by: you06 <you1474600@gmail.com>
* release mutex
Signed-off-by: you06 <you1474600@gmail.com>
* flush wait to avoid race
Signed-off-by: you06 <you1474600@gmail.com>
* fix unstopped test
Signed-off-by: you06 <you1474600@gmail.com>
* set resource group tags for committer
Signed-off-by: ekexium <eke@fastmail.com>
* skip test due to tikv image not updated yet
Signed-off-by: you06 <you1474600@gmail.com>
* skip more test
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: you06 <you1474600@gmail.com>
2024-03-16 11:36:05 +08:00
ekexium
280cb0852e
feat: add pipeliend field in TxnInfo ( #1228 )
...
Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-03-15 12:45:02 +08:00
ekexium
d7000ea557
feat: pipelined dml has its own max-txn-ttl of 24 hours ( #1224 )
...
* feat: pipelined dml has its own max-txn-ttl of 24 hours
Signed-off-by: ekexium <eke@fastmail.com>
* fix gh actions
Signed-off-by: ekexium <eke@fastmail.com>
* style: fix lint
Signed-off-by: ekexium <eke@fastmail.com>
---------
Signed-off-by: ekexium <eke@fastmail.com>
2024-03-14 10:54:19 +08:00
you06
88fbc938cd
p-dml: fix unstopped resolve ( #1210 )
...
* fix unstopped resolve when the txn cross regions
Signed-off-by: you06 <you1474600@gmail.com>
* cancel context when flush done or abort
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: ekexium <eke@fastmail.com>
2024-03-11 21:20:38 +08:00
you06
af4f9a9b6e
fix data race when collapsing ResolveLockRequest ( #1209 )
...
* fix data race when collapsing ResolveLockRequest
Signed-off-by: you06 <you1474600@gmail.com>
* comment
Signed-off-by: you06 <you1474600@gmail.com>
* sleep to wait goroutine finish
Signed-off-by: you06 <you1474600@gmail.com>
* update comment
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: you06 <you1474600@gmail.com>
2024-03-08 13:24:15 +08:00
cfzjywxk
83ec5f2f33
add ts information in the pre split path ( #1206 )
...
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
2024-03-06 14:46:42 +08:00
you06
8d28d3cd3a
txn: introduce pipelined memdb, Flush and BufferBatchGet for pipelined DML ( #1114 )
...
* Support pipelined memdb.
Signed-off-by: you06 <you1474600@gmail.com>
* fix mutex for pipelined memdb
Signed-off-by: you06 <you1474600@gmail.com>
---------
Signed-off-by: you06 <you1474600@gmail.com>
2024-02-23 10:24:44 +08:00
cfzjywxk
11cb7985f0
txn: enable pessimistic region rollback ( #1149 )
...
* enable pessimistic region rollback
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
* add key range parameters
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
* change interface to use start and end keys
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
---------
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
2024-02-05 15:11:26 +08:00