Commit Graph

112 Commits

Author SHA1 Message Date
zyguan 0fdd25559b
metrics: clean up metrics when a store is removed from the cluster (#1751)
fix pingcap/tidb#63245

Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-09-24 03:36:49 +00:00
zyguan 2d0237392a
client: fix the bug of attach-context in async api (#1747)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-08-28 06:52:01 +00:00
zyguan c0b6188ffd
client: support interceptor in SendRequestAsync (#1735)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-08-22 07:58:38 +00:00
Lynn e60fec1b25
client: split large files and rename unclear fields (#1700)
Signed-off-by: Lynn <zimu_xia@126.com>
2025-07-10 04:19:15 +00:00
zyguan 4fd3c42d69
client: make TestSendRequestAsyncTimeout/CanceledOnHandle stable (#1711)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-07-09 12:23:24 +00:00
zyguan 557a4986e4
client: merge ClientAsync into Client (#1664)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-07-08 03:13:06 +00:00
zyguan fdedc9c488
metrics: observe tail latencies of batch send/recv (#1651)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-07-07 09:16:21 +00:00
you06 924198a868
Fix stale read metrics (#1649)
close tikv/client-go#1648

Signed-off-by: you06 <you1474600@gmail.com>
2025-06-14 02:02:13 +00:00
zyguan 70e1ca6d5c
client: implement SendRequestAsync for RPCClient (#1604)
ref tikv/client-go#1586

Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-03-20 15:22:29 +00:00
zyguan e85edd4206
client: refactor batch client send loop (#1564)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-01-24 06:43:32 +00:00
zyguan 61e09c6539
metrics: optimize rpc latency related metrics (#1556)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-01-17 03:49:19 +00:00
zyguan 20764920b4
*: reduce overhead of codec client (#1555)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-01-17 03:47:01 +00:00
zyguan e9d868c0a1
client: refactor intercepted client (#1557)
Signed-off-by: zyguan <zhongyangguan@gmail.com>
2025-01-16 09:20:58 +00:00
ShuNing 0e4728cfaa
*: add the traffic statistic (#1505)
ref pingcap/tidb#57543

Signed-off-by: nolouch <nolouch@gmail.com>
2024-12-16 06:58:54 +00:00
ShuNing 70049ae310
mod: update pd client (#1490)
Signed-off-by: nolouch <nolouch@gmail.com>
2024-11-11 09:02:27 +00:00
crazycs e7894a7b27
config: change grpc-keepalive-timeout from uint to float64, for support millisecond timeout (#1461)
Signed-off-by: crazycs520 <crazycs520@gmail.com>

Co-authored-by: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com>
2024-09-11 04:15:06 +00:00
zyguan 4c6b2171b2
improve batch efficiency for high throughput workloads (#1411)
* improve batch efficiency by multiple attempts

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* add support for aggressive batching

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* add some metrics for batch client

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* fetch more requests according to recent wait head durs

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* add experimental batch options

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* optimize and refactor

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* some minor updates

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* fix the metric of head arrival interval

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* a minor update

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* some minor fixes

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* update according to the spec

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* fix the ut

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* fix batch condition

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* add some doc comments

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* address https://github.com/tikv/client-go/pull/1411#discussion_r1714086744

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* rename some vars according to the comments

Signed-off-by: zyguan <zhongyangguan@gmail.com>

* add more comments

Signed-off-by: zyguan <zhongyangguan@gmail.com>

---------

Signed-off-by: zyguan <zhongyangguan@gmail.com>
2024-08-13 12:55:44 +08:00
yibin d4f0f4cf12
Revert "upgrade grpc 1.64 (#1346)" (#1369)
This reverts commit 1c06c5cbf5.

Signed-off-by: yibin <huyibin@pingcap.com>
2024-06-21 17:03:19 +08:00
crazycs cb580bc4ea
fix rpc client panic cause by concurrent close (#1359)
* fix rpc client panic cause by concurrent close

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

* address comment

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

* refine

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2024-05-31 18:21:21 +08:00
MyonKeminta 31a8ddab19
Support actively requesting update health feedback information by calling RPC to TiKV (#1287)
* Support actively requesting update health feedback information by calling RPC to TiKV

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

* Update kvproto; follow the protocol change; and add more comments

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

* Fix build

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

* Add integration tests

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

* tune the frequency of active updating

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

* Update kvproto

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

* Fix test

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

* Revert changes to examples

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

* Remove unnecessary empty line

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-27 14:36:27 +08:00
Weizhen Wang 1c06c5cbf5
upgrade grpc 1.64 (#1346)
Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>
2024-05-17 12:20:15 +08:00
crazycs e1ca512cca
refine error msg (#1338)
* refine error msg

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

* refine

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

* fix test

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2024-05-13 21:49:13 +08:00
crazycs c82e921992
fix issue of doesn't fast fail request when no available connections (#1339)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
2024-05-13 19:07:04 +08:00
crazycs 125a140034
fix data race that may cause panic and concurrency request limit bug (#1219)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
2024-04-02 11:26:21 +08:00
Smilencer ddf00f1572
Delete duplicate files (#1197)
Signed-off-by: Smityz <smityz@qq.com>
Co-authored-by: ekexium <eke@fastmail.com>
Co-authored-by: disksing <i@disksing.com>
2024-03-21 14:25:00 +08:00
Liqi Geng 44b2944b64
Add grpc window size config and change the default value
Signed-off-by: gengliqi <gengliqiii@gmail.com>
2024-03-19 23:01:50 +08:00
crazycs 98a7df8f41
fix issue read req timeout bug cause by pr#1223 (#1232)
* fix issue read req timeout bug cause by pr#1223

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

* add test

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

* fix test

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

* implement Cause

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

* fix race test

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
Co-authored-by: you06 <you1474600@gmail.com>
2024-03-16 19:58:42 +09:00
crazycs 5b6625f167
fix issue that no available connections cause by concurrency request limit bug (#1226)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
2024-03-15 14:19:38 +08:00
Ping Yu 7bce6ea4df
Pick connection handling improvements from tidb-cse-7.5 (#1223)
* close on canceled (#1121)

Signed-off-by: Ping Yu <yuping@pingcap.com>

* Fix wait recvloop timeout (#1134)

* wip

Signed-off-by: Ping Yu <yuping@pingcap.com>

* CloseAddr with ver

Signed-off-by: Ping Yu <yuping@pingcap.com>

* fix ErrConn

Signed-off-by: Ping Yu <yuping@pingcap.com>

* fix ut

Signed-off-by: Ping Yu <yuping@pingcap.com>

* cleanup

Signed-off-by: Ping Yu <yuping@pingcap.com>

---------

Signed-off-by: Ping Yu <yuping@pingcap.com>

* Use correct address for CloseAddr (#1140)

* wip

Signed-off-by: Ping Yu <yuping@pingcap.com>

* CloseAddr with ver

Signed-off-by: Ping Yu <yuping@pingcap.com>

* fix ErrConn

Signed-off-by: Ping Yu <yuping@pingcap.com>

* fix ut

Signed-off-by: Ping Yu <yuping@pingcap.com>

* polish

Signed-off-by: Ping Yu <yuping@pingcap.com>

* polish

Signed-off-by: Ping Yu <yuping@pingcap.com>

* polish

Signed-off-by: Ping Yu <yuping@pingcap.com>

---------

Signed-off-by: Ping Yu <yuping@pingcap.com>

* rebase

Signed-off-by: Ping Yu <yuping@pingcap.com>

---------

Signed-off-by: Ping Yu <yuping@pingcap.com>
Co-authored-by: iosmanthus <dengliming@pingcap.com>
2024-03-14 16:30:36 +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
MyonKeminta 03bbadb277
Support receving health feedback (#1153)
* Register health feedback handler in batch client

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

* update protocol

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

* Collect the health status and record to the stores

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

* Remove the filter which looks not necessary

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

* Add metrics

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

* Fix checkAndUpdateStoreHealthStatus panicking

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

* Add logs

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

* Merge SetHealthFeedbackHandler to Client

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

* Try another pattern: separated callback registry

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

* Try region cache eventListener pattern

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

* Add tests

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

* Test receiving froim callback

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

* Add tests to region cache

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

* Remove unnecessary debug log

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

* Add comments

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

* remove replace of tidb repo

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

* fix build

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

* Update comments; fix lint

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

* Add the isSlow method of Store back

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

* remove unused method for now to make lint happy

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

* Address comments

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-02-28 19:10:32 +08:00
tongjian 824302acd0
client: Cache tikv request in tidb client side (#1098)
* impl priority queue

Signed-off-by: bufferflies <1045931706@qq.com>

* replace priority queue

Signed-off-by: bufferflies <1045931706@qq.com>

* cache request in tidb side

Signed-off-by: bufferflies <1045931706@qq.com>

* fix gosimple

Signed-off-by: bufferflies <1045931706@qq.com>

* impl priority

Signed-off-by: bufferflies <1045931706@qq.com>

* pass ut

Signed-off-by: bufferflies <1045931706@qq.com>

* add

Signed-off-by: bufferflies <1045931706@qq.com>

* remove request if the request has been canceled

Signed-off-by: bufferflies <1045931706@qq.com>

* remove request if it has been canceled

Signed-off-by: bufferflies <1045931706@qq.com>

* add comment for cancel

Signed-off-by: bufferflies <1045931706@qq.com>

* not make the loop is busy

Signed-off-by: bufferflies <1045931706@qq.com>

* lint

Signed-off-by: bufferflies <1045931706@qq.com>

* revert busy loop

Signed-off-by: bufferflies <1045931706@qq.com>

* add unit test

Signed-off-by: bufferflies <1045931706@qq.com>

* not limit ehigh prioirty test

Signed-off-by: bufferflies <1045931706@qq.com>

* pass lint

Signed-off-by: bufferflies <1045931706@qq.com>

* support all

Signed-off-by: bufferflies <1045931706@qq.com>

* add comment

Signed-off-by: bufferflies <1045931706@qq.com>

* squash

Signed-off-by: bufferflies <1045931706@qq.com>

* revert all to All

Signed-off-by: bufferflies <1045931706@qq.com>

* remove index from entry

Signed-off-by: bufferflies <1045931706@qq.com>

* make fail reasons more clear

Signed-off-by: bufferflies <1045931706@qq.com>

---------

Signed-off-by: bufferflies <1045931706@qq.com>
2024-02-21 14:54:33 +08:00
ekexium 70c148e84e
ErrQueryInterrupted with parameters (#1124)
* feat: ErrQueryInterrupted with parameters

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

* Revert "Revert "fix: check kill signal against 0 (#1102)" (#1129)"

This reverts commit 3480b5ed7c.

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

---------

Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-02-02 10:26:02 +08:00
Weizhen Wang f90605363e
support grpc's shard buffer pool (#1132)
Signed-off-by: Weizhen Wang <wangweizhen@pingcap.com>
2024-01-24 17:57:47 +08:00
MyonKeminta 3480b5ed7c
Revert "fix: check kill signal against 0 (#1102)" (#1129)
This reverts commit 057c479dd8.

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
Co-authored-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
2024-01-23 13:54:05 +08:00
ekexium 057c479dd8
fix: check kill signal against 0 (#1102)
* fix: check kill signal against 0, so that all kill signals will not be ignored.

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

* refactor: extract method checkKilled()

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

---------

Signed-off-by: ekexium <eke@fastmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
2024-01-10 15:48:27 +08:00
tongjian c7d29aafa7
client: replace array by priority queue to support cache queue (#1095)
* impl priority queue

Signed-off-by: bufferflies <1045931706@qq.com>

* replace priority queue

Signed-off-by: bufferflies <1045931706@qq.com>

* fix gosimple

Signed-off-by: bufferflies <1045931706@qq.com>

* remove chinese comment

Signed-off-by: bufferflies <1045931706@qq.com>

---------

Signed-off-by: bufferflies <1045931706@qq.com>
2024-01-03 15:32:51 +08:00
glorv e80e9ca1fe
resource_control: add ru details in ExecDetails (#1070)
* collecting the RU information by pasing point through context.Value (#1032)

Signed-off-by: zzm <zhouzemin@pingcap.com>

* add ruWaitDuration to RUDetails and update pd-client

Signed-off-by: glorv <glorvs@163.com>

---------

Signed-off-by: zzm <zhouzemin@pingcap.com>
Signed-off-by: glorv <glorvs@163.com>
Co-authored-by: zzm <zhouzemin@pingcap.com>
2023-12-04 15:40:48 +08:00
Hu# 812a791ab3
ci: make golangci happy (#1066)
Signed-off-by: husharp <jinhao.hu@pingcap.com>
2023-11-21 15:05:35 +08:00
glorv 1c2351c281
resource_control: set override_priority with resource group priority by default (#1060)
* set override_priority with resource group priority

Signed-off-by: glorv <glorvs@163.com>

* update go.mod

Signed-off-by: glorv <glorvs@163.com>

* fix typo

Signed-off-by: glorv <glorvs@163.com>

* fix

Signed-off-by: glorv <glorvs@163.com>

---------

Signed-off-by: glorv <glorvs@163.com>
2023-11-16 13:17:30 +08:00
Smilencer 6ba909c4ad
config: enable user configuration for retry strategy. (#1055)
Signed-off-by: Smityz <smityz@qq.com>
Co-authored-by: disksing <i@disksing.com>
2023-11-14 14:54:10 +08:00
crazycs 1362f1e875
Revert "*: add metrics for batch client (#996)" (#1046)
This reverts commit 1a44252779.

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-10-30 20:08:15 +08:00
crazycs 2eaf68e0cd
Fix batch client batchSendLoop panic (#1021)
* init

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

* add test

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

* refine test

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

* try to fix

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

* fix test

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

* fix

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

* refine

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

* address comment

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

* address comment

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-10-17 15:44:06 +08:00
crazycs 1a44252779
*: add metrics for batch client (#996)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2023-10-07 11:46:05 +08:00
crazycs be2b4c78a9
Revert "*: fix batch-client wait too long and add some metrics (#973)" (#984)
This reverts commit adb7db13c3.

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-09-19 11:15:11 +08:00
crazycs adb7db13c3
*: fix batch-client wait too long and add some metrics (#973)
Signed-off-by: crazycs520 <crazycs520@gmail.com>
Co-authored-by: disksing <i@disksing.com>
2023-09-18 11:39:42 +08:00
crazycs 342301689f
*: fix issue of configure kv timeout not work when disable batch client (#980)
* *: fix issue of configure kv timeout not work when disable batch client

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

* refine test

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

* address comment

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

---------

Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-09-15 23:49:42 +08:00
bufferflies 62a297ae74
add log
Signed-off-by: bufferflies <1045931706@qq.com>
2023-09-12 12:21:15 +08:00
crazycs520 ba3de39920 *: fix panic log
Signed-off-by: crazycs520 <crazycs520@gmail.com>
2023-09-11 14:38:07 +08:00
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