Commit Graph

68 Commits

Author SHA1 Message Date
you06 295094e5b5
add retry info to request source (#953)
* add retry info to request source

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

* handle upper layer retry

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

* stabilize test

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

* retry in 3 dimension

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

* record and restore req.ReadType

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

---------

Signed-off-by: you06 <you1474600@gmail.com>
2023-08-29 08:28:46 +08:00
cfzjywxk fc88757771
log: group replica selector logging and split not leader errors (#929)
* group replica selector logging and split not leader errors

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

* use atomic to read epoch

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

---------

Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2023-08-24 16:00:22 +08:00
buffer ff39b4af09
error: handle bucket version not match (#918) 2023-08-22 03:25:20 -06:00
you06 1ea3d66418
use leader read when `tryFollower` is fallback from `accessKnownLeader` (#952)
* fix tryFollower

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

* address comment

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

---------

Signed-off-by: you06 <you1474600@gmail.com>
2023-08-22 14:45:13 +08:00
you06 a0ac170698
handle mismatch peer id (#935)
Signed-off-by: you06 <you1474600@gmail.com>
2023-08-14 15:27:20 +08:00
you06 44f5025f5a
fallback to follower when leader is busy (#916) (#923)
* fallback to follower when leader is busy

Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: cfzjywxk <cfzjywxk@gmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2023-08-11 21:36:47 +08:00
crazycs 8a214402da
use tidb_kv_read_timeout as first kv request timeout (#919)
* support tidb_kv_read_timeout as first round kv request timeout

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

* fix ci

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

* fix ci

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

* fix ci

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

* fix ci

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

* fix ci

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

* update comment

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

* refine test

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-08-11 11:37:10 +08:00
cfzjywxk a47e1c2537
Resume max retry time check for stale read retry with leader option(#903) (#911)
* Resume max retry time check for stale read retry with leader option

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

* add cancel

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

---------

Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2023-08-07 14:41:06 +08:00
crazycs 719e6456f7
use context logger as much as possible (#908)
* use context logger as much as possible

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

* refine

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-07-31 11:23:49 +08:00
crazycs 9f94221c2d
add more log for diagnose (#915)
* add more log for diagnose

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

* fix

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

* add more log for diagnose

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

* add more log

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

* address comment

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-07-28 20:35:05 +08:00
crazycs d880eca9e1
fix unexpected slow query during GC running after stop 1 tikv-server (#899) (#909)
* fix unexpected slow query during GC running after stop 1 tikv-server

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

* fix test

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-07-26 13:57:33 +08:00
you06 85fc8f3375
reload region cache when store is resolved from invalid status (#843)
Signed-off-by: you06 <you1474600@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2023-07-14 13:27:14 +08:00
crazycs 4ec212d5f2
*: fix stale read ops metric (#878) (#889)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2023-07-14 11:03:10 +08:00
crazycs fbec023060
*: refine non-global stale-read request retry logic (#863)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-07-03 12:12:02 +08:00
you06 c946782286
Fallback to leader read when replica read meets flashback-in-progress error (#796)
* handle flashback error when follower read

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

* add test

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

* trigger CI

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

* fix panic

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

* trigger CI

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

* trigger CI

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

---------

Signed-off-by: you06 <you1474600@gmail.com>
2023-05-11 13:49:08 +08:00
you06 c619a50474
add metrics for stale-read traffic (#776)
Signed-off-by: you06 <you1474600@gmail.com>
2023-04-27 14:55:46 +08:00
MyonKeminta 2be71b35ee
Add afterSendReqToRegion failpoint (#780)
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
Co-authored-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2023-04-26 15:50:11 +08:00
Artem Danilov 415713766f
avoid dataIsNotReady error while retrying stale read on the leader (#765)
* avoid dataIsNotReady error while retrying stale read on the leader

Signed-off-by: artem_danilov <artem_danilov@airbnb.com>

* move StaleRead flag reset to retry section

Signed-off-by: artem_danilov <artem_danilov@airbnb.com>

* move all logic to #next and allow retry on the leader

Signed-off-by: artem_danilov <artem_danilov@airbnb.com>

---------

Signed-off-by: artem_danilov <artem_danilov@airbnb.com>
Co-authored-by: artem_danilov <artem_danilov@airbnb.com>
2023-04-19 10:48:52 +08:00
ekexium f3e87039d8
Finer `is_retry_request` settings (#763)
* set is_retry_request only for requests that is possible to have undetermined errors

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

* rename tryTimes to retryTimes

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

---------

Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2023-04-10 10:39:43 +08:00
Daniël van Eeden f7e35b25be
Log request info for label warning (#744)
Signed-off-by: Daniël van Eeden <git@myname.nl>
Co-authored-by: disksing <i@disksing.com>
2023-03-27 14:51:16 +08:00
you06 884a634378
compatible batch copr with load-based replica read (#739)
* compatible batch copr with load-based replica read

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

* handle batch cop when server is busy

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

debug

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

debug

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

debug

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

remove debug

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

* address comment

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

* ci

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

* ci

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

---------

Signed-off-by: you06 <you1474600@gmail.com>
2023-03-17 11:26:22 +08:00
Lucas a7e3df4ab1
[Metrics] Supply extra metrics to monitor the flows under `prefer-leader` mode. (#716)
Signed-off-by: Lucasliang <nkcs_lykx@hotmail.com>
2023-03-13 18:08:39 +08:00
guo-shaoge bd24a9e443
Merge branch 'master' into support_engine_role 2023-03-07 15:47:49 +08:00
cfzjywxk bdd41058aa
metrics: seperate metrics with source scope for txn command (#723)
* seperate metrics with source scope

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

* fix async pessimistic rollback

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

* fix missing definition

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

---------

Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2023-03-06 22:12:45 +08:00
guo-shaoge 0d003d077b region_cache: support <engine_role, write> for disaggregated tiflash
Signed-off-by: guo-shaoge <shaoge1994@163.com>
2023-03-06 17:53:57 +08:00
Yongbo Jiang 3f7860f109
region_request: handle resource group error before Backoff (#719)
Signed-off-by: Cabinfever_B <cabinfeveroier@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2023-03-02 13:40:57 +08:00
Yilin Chen a27994e5aa
Support load-based replica read (#675)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2023-02-22 15:35:43 +08:00
iosmanthus e0e6019f8a
attach keyspace_id to tikv/tiflash requests (#682) 2023-02-20 13:10:03 +08:00
JmPotato bdcfab8928
Consider the number of replicas when calculating RU (#684)
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2023-02-08 22:56:14 +08:00
Lucas bce56a5831
ReadMode: introduce AutoFollowerRead mechanism by adding a new `ReadMode == PreferLeader` (#671)
Signed-off-by: lucasliang <nkcs_lykx@hotmail.com>
2023-02-07 16:42:52 +08:00
Hangjie Mo 56c521f109
internal: update `FlashbackInProgress` error msg (#692)
Signed-off-by: Hangjie Mo <mohangjie1995@gmail.com>
2023-02-06 17:34:59 +08:00
Yang Zhang 1b1a805e61
Support learner replica read (#643)
Signed-off-by: Yang Zhang <yang.zhang@pingcap.com>
2023-01-11 14:37:06 +08:00
Lucas c59833429b
Bug fix: fix the Round-Robin algorithm when "ReadMode == ReplicaReadMixed". (#663)
Signed-off-by: Lucasliang <nkcs_lykx@hotmail.com>
2023-01-11 14:15:36 +08:00
David f313ddf58d
reformat codec and add keyspace support (#649)
Signed-off-by: David <8039876+AmoebaProtozoa@users.noreply.github.com>
2023-01-10 15:15:33 +08:00
Zwb c20405f345
support witness peers (#633)
Signed-off-by: Wenbo Zhang <ethercflow@gmail.com>
2023-01-09 20:53:19 +08:00
guo-shaoge ffc2788663 region_cache: refine GetTiFlashComputeRPCContextByConsistentHash(for detect alive)
Signed-off-by: guo-shaoge <shaoge1994@163.com>
2022-12-17 16:41:11 +08:00
MyonKeminta 5dc09b15e7
Add aggressive-locking mechanism and support locking with conflict (#528)
Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2022-12-01 11:03:39 +08:00
JmPotato 91be9c6ce6
Introduce the FlashbackNotPrepared error (#606)
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2022-10-17 17:26:35 +08:00
guo-shaoge e76cd3e240
region_cache: only load UP tiflash_mpp store (#598)
Signed-off-by: guo-shaoge <shaoge1994@163.com>
2022-10-13 14:54:37 +08:00
JmPotato e425355a10
*: introduce the non-retryable error FlashbackInProgress (#579)
Signed-off-by: JmPotato <ghzpotato@gmail.com>
2022-09-06 14:28:21 +08:00
iosmanthus 68cd1bc6c1
Introduce API v2 (#494)
* introduce raw.Client with api v2

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* migrate rawkv test to api v2

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* git fire: refactoring the interface SplitRegion of CodecClientV2

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* go mod tidy

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix split region issue in CodecClientV2

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* rearrange imports

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* add version info for RegionCache

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* delay request encoding to RPCClient

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* prevent multiple encoding

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* wip: debugging retry logic

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix EpochNotMatch region decoding

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* remove txn request branch

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* copy request before encoding it

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* add gRPCDialOptions for rawkv.Client

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix api breaking change of raw.NewClient

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* address menglong's comments

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* go mod tidy

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* address comments and fix linter

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix api_test

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix TestScan

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix TestScan

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

* fix compatibility

Signed-off-by: iosmanthus <myosmanthustree@gmail.com>

Co-authored-by: Xiaoguang Sun <sunxiaoguang@users.noreply.github.com>
2022-07-09 14:49:46 +08:00
Yilin Chen be31f33ba0
Avoid sending requests to unhealthy leader (#503)
Signed-off-by: Yilin Chen <sticnarf@gmail.com>
2022-06-13 19:27:34 +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
guo-shaoge 700cbe60d2
support find stores with tiflash_mpp label (#481)
Signed-off-by: guo-shaoge <shaoge1994@163.com>
Co-authored-by: Yilin Chen <sticnarf@gmail.com>
2022-05-23 11:22:53 +08:00
Connor a38ac96984
Add backoff for error recovery in progress (#485)
* add backoff for error recovery in progress

Signed-off-by: Connor1996 <zbk602423539@gmail.com>
2022-05-09 11:50:19 +08:00
cfzjywxk 7f6daad88a
print original error if the recv failure is injected (#474)
Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2022-04-20 13:49:05 +08:00
Lei Zhao 5b4040a95c
reconnect when meets store-not-match errors (#456)
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
2022-03-24 17:30:51 +08:00
cfzjywxk f4eae62b7e
copy the needed fields for backoffer type (#453)
Signed-off-by: cfzjywxk <lsswxrxr@163.com>
2022-03-21 20:35:29 +08:00
Lei Zhao f43cc3acc0
region_cache: more comments and minor refactor (#427)
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
2022-02-23 16:53:24 +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