Skip to content

Conversation

@maochongxin
Copy link
Contributor

Summary

This merge request introduces enhancements to the client to support partition splitting effectively. The key changes include:

  1. Retry Mechanism Enhancement:
  • Improved the retry handling for scenarios where the server undergoes partition splitting. This includes batch operations, LSOP, and both synchronous and asynchronous queries.
  1. Proactive Routing Information Refresh:
  • Implemented a feature to refresh routing information based on partition dimensions. This optimization addresses the issue of client blocking caused by refreshing routes in environments with a large number of partitions.

Solution Description

@maochongxin maochongxin force-pushed the retry_batchops_merge_master branch from 75b9135 to 73ef9aa Compare October 18, 2024 07:26
@maochongxin maochongxin merged commit e5e8687 into master Oct 25, 2024
maochongxin added a commit that referenced this pull request Dec 4, 2024
Enhance Client Support for Partition Splitting
maochongxin added a commit that referenced this pull request Dec 10, 2024
Enhance Client Support for Partition Splitting
maochongxin added a commit that referenced this pull request Jan 3, 2025
Enhance Client Support for Partition Splitting
shenyunlong added a commit that referenced this pull request Jan 3, 2025
* Optimize SQL for refreshing table location information

* partical refresh

* Fix infinite loop caused by removed reference

* fix lsop retry fail

* Remove unnecessary comments and format code

* Fix frequent refresh lock failures due to short refresh interval

* Fix frequent refresh lock failures due to short refresh interval

* add result code -4723

* fix review

* add -4138

* fix review: add ut for byteutil

* fix lsop refresh location

* Merge pull request #204 from oceanbase/retry_batchops_merge_master

Enhance Client Support for Partition Splitting

* feature: Optimize partial refresh and add retry for executeMutation/query (#213)

* remove lock in refreshTableLocationByTabletId

* fix refresh sql

* fix refresh interval

* add retry logic for common query

* add retry logic for executeMutation

* add retry logic for executeMutation

* add retry logic for ObTableQueryAndMutateRequest

* fix: correct ineffective retry logic

* retry logic for ObTableClient execute

* fix

* fix

* fix 3.x null exception (#214)

* fix

* fix regress

* [fix] add threshold for refresh table entry with location (#220)

* add threshold for refresh table entry with location

* [Fix] remove TABLE_ENTRY_LOCATION_REFRESH_THRESHOLD in Property

* [Fix] fix compile error

---------

Co-authored-by: shenyunlong.syl <shenyunlong.syl@oceanbase.com>

* [fix] 3.x compatible (#223)

* fix

* fix

* [fix] test case stuck in await (#227)

* fix

* fix

* refine

* Fix global route refresh wrong (#231)

* fix global index route refresh wrong when route need refresh

* fix global index route wrong

* revert unused commit

* fix global index route wrong when need partial route refresh (#232)

* fix global index route wrong when need partial route refresh

* Ensure PartitionInfo is Exposed Only After Leader is Found During Single Shard Refresh

---------

Co-authored-by: maochongxin <maochongxin@gmail.com>

* fix PartitionNumOneTest routed to the wrong server

* add error code 5627

* fix extendType parse object to comparable

* fix refresh location param

* fix log; add retry interval for executeWithRetries

* Add quick path: return quickly if recently refreshed

* add log for batchOpsImpl

* fix

* fix table.entry.refresh.interval.wait

* fix global index route error

* fix

* TABLE_ENTRY_LOCATION_REFRESH_THRESHOLD -> 0

* add retry code =4242

* fix getPartitionLocation nullptr && resolve conflict error

* fix resolve conflict error

* fix getLs nullptr

* fix dr nullptr

* fix global index nullptr

* fix unexpected addr expired

* fix unexpected addr expired

* Reduce log printing and optimize log output content;

* fix update lsId if location exists

* fix log

* fix lsop -5200 with table_group

* fix rpc.execute.timeout

* fix log

* fix log && fix getPartitionReplica return wrong part id

---------

Co-authored-by: miyuan-ljr <884244693@qq.com>
Co-authored-by: shenyunlong.syl <shenyunlong.syl@oceanbase.com>
Co-authored-by: GroundWu <1175416256@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants