refactor: remove memory storage and indexes#1219
Conversation
14cddd1 to
c2d2754
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1219 +/- ##
==========================================
- Coverage 84.36% 84.14% -0.23%
==========================================
Files 320 311 -9
Lines 24471 23868 -603
Branches 3748 3651 -97
==========================================
- Hits 20646 20083 -563
+ Misses 3098 3071 -27
+ Partials 727 714 -13 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
c2d2754 to
47c30c2
Compare
7ca1e19 to
40650fb
Compare
47c30c2 to
7038204
Compare
40650fb to
57a9c4c
Compare
7038204 to
b52a3d4
Compare
jansegre
left a comment
There was a problem hiding this comment.
The proposal looks good to me. I'm only a bit worried about deploys that still use --memory-indexes, but I guess they can wait to update when it works well with rocksdb indexes, which we might have to prioritize for the next releases.
abbc32e to
b52a3d4
Compare
a02a394 to
1aec649
Compare
|
| Branch | chore/remove-memory |
| Testbed | ubuntu-22.04 |
⚠️ WARNING: No Threshold found!Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | Latency | minutes (m) |
|---|---|---|
| sync-v2 (up to 20000 blocks) | 📈 view plot | 1.64 m |
1aec649 to
80c5ae3
Compare
Depends on #1218
Motivation
The exclusively in-memory storage and indexes haven't been very useful for a while, and generate maintenance overhead. Its implementation has to be fully compatible with its RocksDB counterpart, which is not true for some cases. For this and for simplicity, this PR completely removes support for in-memory storage/indexes, and updates all tests to run using RocksDB instead. This also allows us to have better guarantees that we're testing the same behavior that we observe in production.
A new CLI option
--temp-datais provided to be used instead of--memory-storage. It requires no arguments and creates a temporary directory that is automatically cleaned up when the full node exits.Acceptance Criteria
--memory-storageand--memory-indexes.--rocksdb-storageand--x-rocksdb-indexes(because they're now the only possibility).BuilderandCLIBuilderaccordingly.TimestampIndex.get_hashes_and_next_idx()as it's unused (this was a Sync-v1 only method).Checklist
master, confirm this code is production-ready and can be included in future releases as soon as it gets merged