Skip to content

Instantly share code, notes, and snippets.

@komamitsu
Last active May 5, 2026 05:59
Show Gist options
  • Select an option

  • Save komamitsu/bf2f36add2ad9b0f4fb0c96a0c72e28f to your computer and use it in GitHub Desktop.

Select an option

Save komamitsu/bf2f36add2ad9b0f4fb0c96a0c72e28f to your computer and use it in GitHub Desktop.
wh-blog-chatgpt.md
# 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