tree c451e60da53c4a4b5ea91aaee761ab650e968162
parent fc40ee6b88b732f3e1dee55cc6966b3e8a38b983
author Yonny(Yu) Hao <popduke@gmail.com> 1760667256 +0800
committer GitHub <noreply@github.com> 1760667256 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJo8aZ4CRC1aQ7uu5UhlAAAW1EQACSby2LDPmYOqyptPuJ/I5IQ
 sV8trZaft9P6ZKca+YB3T1pKSlwE/qYr7/N2UfoqVgjgUb5gwRI6Qyds6Vp5ekfl
 j1MnGhRVF3+5cz9mxXj//+MqFi2Y0y1Pe0IYkUzjkZ6JoKxb1ktH2am2pEn6AGZZ
 Ie9XdS/gWqS3dDNwy3xAopWE/2WEubGaGAwzg8BisO2itXgxqllgkprNpemco9Je
 +SNHD1/OF4yFVm2cU1Nq0vfLzYcCyaSt7w/h6qNDOv52BFDRsZ77QtENH9UTvw1I
 SyyuLGDEehp2q4CSge1kb2kq066Epfp4qFIZu+OIMasurxmVlrLJRyf0hp6IvTAZ
 VQNyMbsnQqcYdlD4FXv5HzVc0jopo78tWOHuOElHM5nFDYVLz7XJVjGM3VJTRqsN
 bM2Lb1UNtt2YcYH/WStH5TpF0kP0wtAGkGK5TRUZlpeW8AcsfjvIYFxH+xW4MBFb
 eVe89e330BfKX9Y/LnV7l791swk21fxioccOyUrmEWY/NFf81zfLyppG3LtHrqMX
 2O5KmFHqoEzgW0rWFASWCB8EtfM5ofs25xdS+GQVtzw+/JofcFIEuZCZuVHz2plx
 N8w3XJyXOhqlsB10jA/635gh3o1/FScx7K38BPYzYLSvr1VPdkQha+yCBlBFzDjk
 6iiPCuZzx06TQ0Mh98VM
 =G/6j
 -----END PGP SIGNATURE-----
 

Performance/memory optimizations, stability/bug fixes, and small enhancements (#183)

* Reduce query stuttering effect during range topology change
* Simplify client range router patching mechanism
* Refactor BatchPubCall and related classes to improve fan-out handling and reduce memory overhead
* Don't report redundant ServerBusy event
* Reduce loading time by making DistWorkerCoProc/InboxStoreCoProc reset process async
* Reduce memory overhead by doing contract to root after remove
* Refactor base-kv to support report leader change to CoProc
* Only report tenant metrics from leader co-proc
* Optimize retry logic for pushing qos1/2 messages and adjust related events
* New event for matching retained messages successfully and related tests
* Add createdAt field to InboxMetadata and implement drop event reporting on delete
* Add an api to retrieve inbox state
* Reduce memory overhead during resetting
* fixed the bug causing DistWorkerCleaner stop running
* Adjust default values of gc params
* Conditional clear batch call state during reset to avoid task leaking
* Prevent concurrent update non-thread safe result proto builder
* Improved child removal logic and add benchmarking for performance evaluation
* Add set session type to ClientInfo before making attach request
* Enhance DistWorkerCleaner with heuristic interval and step
* Implemented dynamic sending window for confirmable messages
* Improve gossiping:
* Do not early confirm when single node
* Reduce message complexity
* Optimize child branch detachment and compression logic in TopicLevelTrie
* Enhance TopicIndex to support custom value equality strategy
* Fix potential consistency issue in TenantRouteCache and TopicIndex
* Update tenant stats on inbox clearance and add integration test for session deletion
* Refactor InboxMetaCache to reduce refresh/seek operation
* Correct range lookup key for InboxCheckSubScheduler
* Ensure strict fifo order for check permission call
* Try drain staging buffer immediately after buffering message
* Schedule an on-demand hint/confirm timeout to ensure fetch loop non-stop
* Add @JsonMerge annotation to service configuration classes to reduce config file complexity further
* Reduce IO overhead for InboxStoreCoProc