Commit Graph

69 Commits

Author SHA1 Message Date
Yilin Chen 57c12f7c64
Handle more detailed statistics from TiKV (#536)
* support more detailed statistics returned from TiKV

Signed-off-by: Yilin Chen <sticnarf@gmail.com>

* fix log formatting

Signed-off-by: Yilin Chen <sticnarf@gmail.com>

* add to test

Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2022-07-13 16:56:47 +08:00
glorv 114ba4082e
add replica read adjuster function in KVSnapshot (#540)
Signed-off-by: glorv <glorvs@163.com>
2022-07-07 17:12:24 +08:00
zyguan 97c41742ea
txn: also record get-latest-ts time in commit details (#538)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2022-07-07 11:11:16 +08:00
ekexium 79a0fc59e4
Add a callback when MemDB grows (#520)
* implement the footprint chagne hook

Signed-off-by: ekexium <ekexium@fastmail.com>

* simplify the signature

Signed-off-by: ekexium <ekexium@fastmail.com>

* also call the callback when arena shrinks

Signed-off-by: ekexium <ekexium@fastmail.com>

* also callback on reset

Signed-off-by: ekexium <ekexium@fastmail.com>

Co-authored-by: disksing <i@disksing.com>
2022-06-30 15:19:23 +08:00
you06 bb026bdad8
client: support requests with source label (#506)
* support request scope and source.

Signed-off-by: you06 <you1474600@gmail.com>

* update

Signed-off-by: you06 <you1474600@gmail.com>

* use counter for requests with too-many source

Signed-off-by: you06 <you1474600@gmail.com>

* refine resolve lock

Signed-off-by: you06 <you1474600@gmail.com>

* remove request source from resolve details

Signed-off-by: you06 <you1474600@gmail.com>

* address comment

Signed-off-by: you06 <you1474600@gmail.com>
2022-06-24 18:17:09 +08:00
Jack Yu 98a4e2776e
transaction: update undetermined error log (#531)
* update undetermined error log

Signed-off-by: Jack Yu <jackysp@gmail.com>

* tiny change

Signed-off-by: Jack Yu <jackysp@gmail.com>
2022-06-20 10:56:30 +08:00
ekexium e69cd80e58
Preserve is_retry_request flag for prewrite when retrying with region errors (#513)
* add a test to verify the incorrect setting of is_retry_request

Signed-off-by: ekexium <ekexium@gmail.com>

* preserve the retry flag for prewrite

Signed-off-by: ekexium <ekexium@gmail.com>

* fix test

Signed-off-by: ekexium <ekexium@gmail.com>

* add more explanations

Signed-off-by: ekexium <ekexium@gmail.com>
2022-05-31 16:04:28 +08:00
Yilin Chen de7ca289ac
Fix incorrect clear of resolving array (#507)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2022-05-19 00:25:27 +08:00
龙方淞 7ba562bc68
txn: record resolving locks (#473)
* record resolving locks

Signed-off-by: longfangsong <longfangsong@icloud.com>

* rename to ResolvingLock

Signed-off-by: longfangsong <longfangsong@icloud.com>

* Add test probe for resolving

Signed-off-by: longfangsong <longfangsong@icloud.com>

* refactor according to comments

Signed-off-by: longfangsong <longfangsong@icloud.com>

* Add  ResolveLocksDone for other call of ResolveLocks

Signed-off-by: longfangsong <longfangsong@icloud.com>

* Update txnkv/txnlock/lock_resolver.go

Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com>
Signed-off-by: longfangsong <longfangsong@icloud.com>

* Update to new design

Signed-off-by: longfangsong <longfangsong@icloud.com>

Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com>
Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2022-05-17 11:13:16 +08:00
Ziqian Qin 190a4d190c
fix the vulnerability of atomicity in async commit (#492)
* fix the vulnerability of atomicity in async commit

Signed-off-by: ekexium <ekexium@gmail.com>

Revert "fix the vulnerability of atomicity in async commit"

This reverts commit b0b34c56168ba288e1619e66e626321365cb0921.

tidy up

Signed-off-by: ekexium <ekexium@gmail.com>

* add test

Signed-off-by: ekexium <ekexium@gmail.com>

* shorten the time of the test

Signed-off-by: ekexium <ekexium@gmail.com>

* fix test

Signed-off-by: ekexium <ekexium@gmail.com>

Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2022-05-13 17:09:52 +08:00
Weizhen Wang ff5e35ac28
*: fix data race on the SetResourceGroupTagger (#491)
* *: fix data race on the SetResourceGroupTagger

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

* *: fix data race on the SetResourceGroupTagger

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

* *: fix data race on the SetResourceGroupTagger

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>
2022-05-10 11:22:38 +08:00
Weizhen Wang 038b03552a
atomic PrewriteMaxBackoff (#488)
* atomic PrewriteMaxBackoff

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

* PrewriteMaxBackoff use uint64

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2022-05-10 10:24:53 +08:00
Weizhen Wang cfe691debb
fix data race on the KVSnapshot.interceptor (#489)
Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2022-05-09 17:23:19 +08:00
Ziqian Qin e31ba21ae0
add a failpoint for sleep (#460)
Signed-off-by: ekexium <ekexium@gmail.com>

Co-authored-by: Yilin Chen <sticnarf@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2022-04-11 21:34:25 +08:00
Jack Yu 6bf6951325
use global variable instead of config (#458)
Signed-off-by: Jack Yu <jackysp@gmail.com>
2022-03-29 17:20:50 +08:00
Jack Yu 8489c3e8c3
config,txnkv: make txnCommitBatchSize adjustable by config (#457)
Signed-off-by: Jack Yu <jackysp@gmail.com>
2022-03-28 16:37:38 +08:00
MyonKeminta 5042c6f2aa
Return assertion failed error less prior to other kinds of errors (#448)
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2022-03-11 12:36:19 +08:00
龙方淞 cd7e7681c2
Update lock ttl when retry to pessimistic lock keys (#417)
Signed-off-by: longfangsong <longfangsong@icloud.com>
2022-03-10 16:10:47 +08:00
cfzjywxk 079e2dce4e
txn: support read-consistency read with tso checking (#447)
Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2022-03-08 10:31:03 +08:00
disksing e5f932ae27
txnkv: fix the issue that deleteRange cannot use nil as endkey (#429)
Signed-off-by: disksing <i@disksing.com>
2022-02-24 15:51:38 +08:00
disksing b7a3ace8e6
txnkv: add shortcut to get global timestamp (#395)
Signed-off-by: disksing <i@disksing.com>
2022-02-11 12:40:35 +08:00
MyonKeminta b5eb031edd
Support setting assertions and receiving assertion errors for Prewrite requests (#311)
* support set assertion in 2pc mutation

Signed-off-by: lysu <sulifx@gmail.com>
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Receive assertion fail errors from TiKV

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add test log

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Remove verbose log

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* update kvproto

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add metrics counter for assertions

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Address some comments

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Try to optimize assertion for pessimistic transactions

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix panic on optimistic transactions

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add InitCheckExistence method for LockCtx

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Support assertion level

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Check assertion level before doing assertion on client side

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Test bitoperations of menBUfferMutations.Push

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add test for assertion in tikv

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Support run assertion test with unistore

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix test

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix license

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix test

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* export DeleteKey

Signed-off-by: ekexium <ekexium@gmail.com>

* Renaming DeleteKey

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* fix build

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Address comments

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Avoid panic when running with old version of TiKV; Add schema check on fast assertion

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add test for fast assertion

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add test for pessimistic lock check existence

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Test assertion takes no effect if amending is enabled

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add HasAssertUnknown function

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add comments

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Cleanup locks after assertion fail

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* update tidb dependency

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix panic in TestIllegalTSO

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Address comments

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Add comments

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Update dependency to tidb

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

* Fix test

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

Co-authored-by: lysu <sulifx@gmail.com>
Co-authored-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
Co-authored-by: ekexium <ekexium@gmail.com>
2022-02-10 15:31:32 +08:00
you06 62d6b4a2e8
txnkv: set TiKV RC for weak-consistency transactions (#407)
* add tikv-rc support

Signed-off-by: you06 <you1474600@gmail.com>

* add test

Signed-off-by: you06 <you1474600@gmail.com>

* format code

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>

* update tidb && address comment

Signed-off-by: you06 <you1474600@gmail.com>

* update test log

Signed-off-by: you06 <you1474600@gmail.com>
2021-12-29 13:16:14 +08:00
Weizhen Wang 300275dee6
fix data race and panic when exiting (#396)
* fix the data race when exiting

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

* remove error and change log level

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

* add warn log

Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>

Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2021-12-23 14:21:59 +08:00
cfzjywxk e9de5625c4
txn: change IsUnnecessaryKeyValue interface to report error for unexpected paths (#390)
* change IsUnnecessaryKeyValue interface to report error for unexpected situations

Signed-off-by: cfzjywxk <lsswxrxr@163.com>

* update integrated tests go mod

Signed-off-by: cfzjywxk <lsswxrxr@163.com>

Co-authored-by: disksing <i@disksing.com>
2021-12-20 20:12:11 -08:00
Yexiang Zhang 6165dbaa95
introduce RPC interceptor mechanism (#389)
* Add interceptor mechanism for tikv RPC

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Rename comment

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Modify comments

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix ineffectual assignment

Signed-off-by: mornyx <mornyx.z@gmail.com>

* add AddInterceptor for KVTxn and KVSnapshot

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Separate intercepor package

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add comments

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add order test

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix integration tests

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix integration tests

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Move interceptor call from client to client_collapse

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add comments

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix comment

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add client_interceptor

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Modify comment

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add ut

Signed-off-by: mornyx <mornyx.z@gmail.com>
2021-12-18 13:03:06 +08:00
tiancaiamao 605f49d3ba
txnkv/transaction: add a kv option for cached table lock lease (#392)
Signed-off-by: tiancaiamao <tiancaiamao@gmail.com>
2021-12-14 01:37:15 -08:00
disksing 87c1c58064
move tikv.NewTxnClient to txnkv.NewClient (#391)
Signed-off-by: disksing <i@disksing.com>
2021-12-09 21:38:38 -08:00
Lei Zhao c0e8766154
txnkv: decrease some max and base backoff time (#388)
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
2021-12-06 15:29:23 +08:00
Lei Zhao 3a7675742e
txnkv: read through locks (#380)
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
2021-12-01 16:35:10 +08:00
Yexiang Zhang b11da6307c
txnkv: add ResourceGroupTagger for PessimisticLockRequest (#381)
* Add ResourceGroupTagger for PessimisticLockRequest

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix circular dependency

Signed-off-by: mornyx <mornyx.z@gmail.com>
2021-11-18 23:41:39 +08:00
cfzjywxk e0bf24b24d
add newly inserted flag to optimize delete your write (#378)
Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2021-11-15 21:23:32 -08:00
Yexiang Zhang 3b9f591c3f
txnkv: add callback for setting ResourceGroupTag (#368)
* Replace resourceGroupTag with resourceGroupTagFactory(firstKey)

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix npe

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Abstract ResourceGroupFactory

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Optimized as ResourceGroupTagger

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Add test for resource group tagger

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix unexpected request failed in mock store

Signed-off-by: mornyx <mornyx.z@gmail.com>

* Fix integration tests

Signed-off-by: mornyx <mornyx.z@gmail.com>

Co-authored-by: Wenxuan <breezewish@pingcap.com>
2021-11-14 19:11:14 -08:00
Yilin Chen 6ac6a8daf2
Abort if the mismatching lock is from the current transaction when resolving locks (#367)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2021-11-10 10:15:56 +08:00
disksing 9ec50224be
*: replace pingcap/errors with pkg/errors (#357)
Signed-off-by: disksing <i@disksing.com>
2021-11-01 11:59:52 +08:00
disksing 70c69a3fac
txnkv/txnsnapshot: remove errors.Trace usages (#345)
close #344

Signed-off-by: disksing <i@disksing.com>
2021-10-27 08:41:49 +00:00
disksing 5c06d9b19a
txnkv/rangetask: remove errors.Trace usages (#349)
close #346

Signed-off-by: disksing <i@disksing.com>
2021-10-27 08:36:00 +00:00
disksing 2d145163d0
txnkv/transaction: remove use of errors.Trace (#351)
Signed-off-by: disksing <i@disksing.com>
2021-10-27 10:13:37 +08:00
disksing a5250aa7c4
txnkv/txnlock: remove errors.Trace usages (#350)
close #347

Signed-off-by: disksing <i@disksing.com>
2021-10-25 17:44:03 +08:00
disksing 49c8dd23f1
error: remove use of terror.ErrResultUndetermined (#323)
Signed-off-by: disksing <i@disksing.com>
2021-10-11 16:31:57 +08:00
Alkaid 128ccbde43
Add read throughput metric for SLI (#321)
Signed-off-by: jyz0309 <45495947@qq.com>
2021-10-11 11:46:20 +08:00
Song Gao a8fa8acd44
rename txnScope as readReplicaScope (#305)
Signed-off-by: yisaer <disxiaofei@163.com>
2021-09-13 17:49:25 +08:00
lysu 4fc565e203
config: move resolve-lock-lite-threshold to tikv-client segment (#297) 2021-09-02 14:23:07 +08:00
lysu eb7e4884a8
config: support config resolve lock lite threshold (#291)
Signed-off-by: lysu <sulifx@gmail.com>
2021-09-02 05:31:00 +00:00
Yilin Chen 16d902a3c7
reduce write backoffs but don't count busy errors (#271)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2021-08-24 09:05:36 +00:00
lysu 0c8381cbc2
txnkv: fix delete temp table issue request to kv-server (#281)
Signed-off-by: lysu <sulifx@gmail.com>
2021-08-23 19:56:59 +08:00
MyonKeminta ff94d0c9ac
txnkv: Fix a bug that OnDeadlock callback is called before setting `IsRetryable` field (#274)
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>

Co-authored-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2021-08-20 13:16:08 +08:00
disksing 288c649636
fix license (#267)
Signed-off-by: disksing <i@disksing.com>
2021-08-15 01:48:01 +08:00
tier-cap 14892a598e
*: allow to custom disk_full_opt for transactions (#256)
Signed-off-by: tier-cap <zhengxiaojin@pingcap.com>
2021-08-06 16:56:16 +08:00
Yilin Chen 6f33dd97af
Start heartbeat immediately after locking the primary key (#261)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2021-08-06 11:14:25 +08:00