Last active
May 5, 2026 05:59
-
-
Save komamitsu/bf2f36add2ad9b0f4fb0c96a0c72e28f to your computer and use it in GitHub Desktop.
wh-blog-chatgpt.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Wormhole4j v0.3.0: Adding Multi-threaded Concurrency | |
| ## 1. Introduction | |
| - Quick recap of Wormhole4j | |
| - What changed in v0.3.0 (real multi-thread support) | |
| - Why this matters | |
| --- | |
| ## 2. The Problem | |
| - Ordered index + concurrency is tricky | |
| - Structural changes (split/merge) make it harder | |
| - Goal: fast reads without blocking | |
| --- | |
| ## 3. The Approach (High-level) | |
| - Three types of operations: | |
| - reads | |
| - local updates | |
| - structural updates | |
| - Key idea: treat them differently | |
| --- | |
| ## 4. Key Design Ideas | |
| - Leaf-level locking (localized writes) | |
| - Double meta tables (RCU-style switching) | |
| - QSBR for safe handover | |
| - Versioning + retry for consistency | |
| (Keep this concise—just intuition, not deep details) | |
| --- | |
| ## 5. One Concrete Example (Split) | |
| - Walk through what happens during a split | |
| - Highlight the tricky part: | |
| - switching meta table + version ordering | |
| - This is the “real” explanation section | |
| --- | |
| ## 6. What Was Hard | |
| - Subtle ordering bugs | |
| - Retry logic | |
| - Concurrency is harder than it looks | |
| --- | |
| ## 7. Testing with Lincheck | |
| - Why it was needed | |
| - What kinds of bugs it found | |
| - Short takeaway | |
| --- | |
| ## 8. Results and Takeaways | |
| - High-level performance observations | |
| - Where it works well / where it doesn’t | |
| - Final thoughts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment