* init
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add ReplicaSelector interface
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add replica_selector_v2, todo: fix test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix all test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test in another way to compatible with old version about stale-read request
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* tiny refactor
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refactor to remove duplicate code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine onServerIsBusy region error handing logic
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* support forwarding by proxy
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* support busyThreshold and tiny reractor code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add config
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix proxy bug
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test and tiny refactor
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add some test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* tidy refine
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* address comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test in v1
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add backoff-cnt check and timeout test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add benchmark test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* make test stale
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix golangci
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test and refine code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix race test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more comprehensive enumeration testing
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix accessFollower with label retry bug
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test and fix some bug
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix test and add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine onNotLeader logic when new leader is not available
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine calculateScore logic, if the replica already tried, decrease the score
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine logic: replica-read request with mixed strategy and with label, should be able to retry all remain replicas
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* prefer-leader for mixed read with label for non stale-read req
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test case
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* resolve conflict
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* remove some duplicate test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refactor test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add busy_threshold test and fix bug
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix proxy bug and add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code and add test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add learner test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* remove old test and refine test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* move test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* address comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* use new score calculation by flag bit
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* make test stable
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine comment,license and fix lint
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix race test timeout
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add flagNotAttemp in score
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* address comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
---------
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* attach cluster id in kv requests
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
* update go mod in integration test
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
---------
Signed-off-by: cfzjywxk <cfzjywxk@gmail.com>
* replica-read request with mixed strategy and with label, should be able to retry all remain replicas
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* address comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
---------
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* don't retry same replica twice in a round, but for stale read, we can retry DataIsNotReady replica by replica-read
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* remove duplicate test case
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* remove old duplicate test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
---------
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine onNotLeader logic when new leader is not available #1169
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine logic and add test
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add more test case for ReplicaReadLeader with kv_read_timeout
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* add comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* fix leader has deadlineErr and retry it again issue, and add test for it
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* refine code and comment
Signed-off-by: crazycs520 <crazycs520@gmail.com>
---------
Signed-off-by: crazycs520 <crazycs520@gmail.com>
* region_cache: restrict access to store related fields
Signed-off-by: zyguan <zhongyangguan@gmail.com>
* fix a typo
Signed-off-by: zyguan <zhongyangguan@gmail.com>
* resolve a todo
Signed-off-by: zyguan <zhongyangguan@gmail.com>
* resolve an another todo
Signed-off-by: zyguan <zhongyangguan@gmail.com>
* limit the use of store api
Signed-off-by: zyguan <zhongyangguan@gmail.com>
---------
Signed-off-by: zyguan <zhongyangguan@gmail.com>
Co-authored-by: cfzjywxk <lsswxrxr@163.com>
* Fix the issue that leader change with nea leader info cause invalidStore
state and lead to unnecessary backoff
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>