Repository navigation
feat #236: Implement ReadIndex batching mechanism to improve LinearizableRead throughput #240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
4c1156a
ci #237: fix GitHub Actions disk space issue and improve CI workflow
JoshuaChi 0176abf
perf #236: Optimize LinearizableRead to avoid unnecessary waiting on …
JoshuaChi df0edf7
test #236: Improve test stability and fix CI build
JoshuaChi f0f7801
feat #236: Implement ReadIndex batching for LinearizableRead optimiza…
JoshuaChi 1b932e9
refactor #236: Unify leadership verification and eliminate redundant …
JoshuaChi ace603f
refactor #236: Migrate LinearizableRead tests to core and strengthen …
JoshuaChi a650ef7
perf(bench) #236: Fix test hang + optimize benchmarks
JoshuaChi fbf63da
test #236: Consolidate client read tests into leader_state_client_rea…
JoshuaChi 5be0100
fix #241: start_with() fails when CONFIG_PATH is not set
JoshuaChi 222d10b
refactor #234: Simplify Makefile and improve documentation workflow
JoshuaChi ca21713
feat(storage) #242: Implement comprehensive durability test suite and…
JoshuaChi 8dbfba7
fix(storage) #243: Add read protection during snapshot restoration
JoshuaChi 96f3d49
test(snapshot) #243: Add Learner snapshot concurrent replication test
JoshuaChi 9954d4e
refactor #244: refactor integration tests
JoshuaChi fcb8882
fix #240: Address code review feedback for v0.2.2 release
JoshuaChi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,20 +1,67 @@ | ||
| --- | ||
| name: Feature Request | ||
| about: Suggest an idea for this project | ||
| title: '' | ||
| labels: '' | ||
| assignees: '' | ||
| about: Propose a feature based on real production needs | ||
| title: "[Feature] " | ||
| labels: "enhancement" | ||
| assignees: "" | ||
| --- | ||
|
|
||
| ## ⚠️ Read First | ||
|
|
||
| d-engine follows the **20/80 rule** - we build features that solve 80% of users' problems, not edge cases. | ||
|
|
||
| **Before submitting:** | ||
|
|
||
| - [ ] This solves a **real production problem** (not "it would be nice") | ||
| - [ ] I've checked existing features don't solve this | ||
|
|
||
| Features that don't meet this bar will be deferred or declined. | ||
|
|
||
| --- | ||
|
|
||
| **Is your feature request related to a problem? Please describe.** | ||
| A clear and concise description of what the problem is. | ||
| ## Production Context | ||
|
|
||
| **What production problem does this solve?** | ||
| (Be specific: "Our company runs d-engine for X and hits Y problem daily") | ||
|
|
||
| **Who is affected?** | ||
|
|
||
| - [ ] Most embedded mode users | ||
| - [ ] Most standalone mode users | ||
| - [ ] Specific industry/scale (describe below) | ||
|
|
||
| **Current workaround:** | ||
| (What are you doing now? Why is it insufficient?) | ||
|
|
||
| --- | ||
|
|
||
| **Describe the solution you'd like** | ||
| A clear and concise description of what you want to happen. | ||
| ## Proposed Solution | ||
|
|
||
| **Your solution:** | ||
|
|
||
| **Why is this the simplest approach?** | ||
| (d-engine values simplicity - explain why this doesn't bloat the API) | ||
|
|
||
| --- | ||
|
|
||
| ## Impact vs Complexity | ||
|
|
||
| **Benefits:** | ||
|
|
||
| - Performance impact: (quantify if possible) | ||
| - User pain reduced: (describe) | ||
|
|
||
| **Complexity added:** | ||
|
|
||
| - [ ] New public APIs | ||
| - [ ] More config options | ||
| - [ ] Additional dependencies | ||
| - [ ] Increased testing surface | ||
|
|
||
| --- | ||
|
|
||
| **Describe alternatives you've considered** | ||
| A clear and concise description of any alternative solutions or features you've considered. | ||
| ## Additional Context | ||
|
|
||
| **Additional context** | ||
| Add any other context or screenshots about the feature request here. | ||
| - Benchmarks/measurements (if performance-related) | ||
| - Similar features in etcd/consul (if applicable) | ||
| - Your willingness to contribute code |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,72 @@ | ||
| ## What Does This PR Do? | ||
|
|
||
| ## Type | ||
| - [ ] New feature | ||
| - [ ] Bug Fix | ||
| (1-2 sentence summary) | ||
|
|
||
| ## Description | ||
| Briefly describe the purpose of this PR: | ||
| **Type:** | ||
|
|
||
| ## Related Issues | ||
| - Close Issue: #123 | ||
| - [ ] Bug Fix (with test) | ||
| - [ ] Feature (issue #\_\_\_ approved) | ||
| - [ ] Documentation | ||
| - [ ] Test/Coverage | ||
| - [ ] Performance (with benchmark) | ||
|
|
||
| --- | ||
|
|
||
| ## Why Is This Needed? | ||
|
|
||
| **For features:** Link to approved issue #\_\_\_ | ||
|
|
||
| **For bugs:** Describe the problem and how this fixes it | ||
|
|
||
| --- | ||
|
|
||
| ## Checklist | ||
| - [ ] The code has been tested locally (unit test or integration test) | ||
| - [ ] Squash down commits to one or two logical commits which clearly describe the work you've done. | ||
|
|
||
| **Required:** | ||
|
|
||
| - [ ] `make test` passes | ||
| - [ ] Added tests for new code | ||
| - [ ] Commits squashed to 1-2 logical units | ||
|
|
||
| **If changing APIs:** | ||
|
|
||
| - [ ] Updated relevant docs | ||
| - [ ] Explained why complexity is justified | ||
|
|
||
| --- | ||
|
|
||
| ## Testing | ||
|
|
||
| **How tested:** | ||
|
|
||
| - Unit tests: (describe) | ||
| - Integration tests: (if applicable) | ||
| - Manual testing: (if applicable) | ||
|
|
||
| **For bug fixes:** | ||
|
|
||
| - [ ] Added test that fails without this fix | ||
|
|
||
| **For performance improvements:** | ||
|
|
||
| - [ ] Included benchmark showing improvement | ||
|
|
||
| --- | ||
|
|
||
| ## Does This Follow d-engine's Principles? | ||
|
|
||
| - [ ] Solves a real problem for most users (not just my edge case) | ||
| - [ ] Keeps implementation simple | ||
| - [ ] Doesn't bloat the API surface | ||
|
|
||
| --- | ||
|
|
||
| ## Reviewer Notes | ||
|
|
||
| (Optional: anything reviewers should focus on) | ||
|
|
||
| **Estimated review complexity:** | ||
|
|
||
| - [ ] Quick (< 100 lines) | ||
| - [ ] Medium (< 300 lines) | ||
| - [ ] Deep (> 300 lines) |
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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.