Skip to content

Commit 4d17151

Browse files
committed
Nethermind integration: replace RocksDB with TrimDB plugin
Add Nethermind as a git submodule and implement TrimDB.Nethermind as a loadable plugin that replaces RocksDB across all database operations. - Add Drawaes/nethermind fork as submodule - Delete local interface copies, use real Nethermind project references - Implement IDb, ITunableDb, IWriteBatch against real Nethermind interfaces - Add IColumnsDb<T> support (TrimDbColumnsDb, TrimDbColumnsWriteBatch) - Add IDbFactory (TrimDbFactory) and INethermindPlugin (TrimDbPlugin) - Fix TableFileMerger bug: exhausted iterators not removed during initial advance - Remove TrimDB.Core ReadFlags/WriteFlags (use Nethermind.Core originals)
1 parent 1bfcfd2 commit 4d17151

23 files changed

Lines changed: 369 additions & 260 deletions

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "src/TrimDB.Nethermind/nethermind"]
2+
path = src/TrimDB.Nethermind/nethermind
3+
url = https://github.com/Drawaes/nethermind

src/TrimDB.Core/ReadFlags.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/TrimDB.Core/Storage/TableFileMerger.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ public async ValueTask<bool> MoveNextAsync()
4545
if (!_hasInitialMove)
4646
{
4747
_hasInitialMove = true;
48-
for (var i = 0; i < _activeCount; i++)
48+
for (var i = _activeCount - 1; i >= 0; i--)
4949
{
50-
await _memoryItems[i]!.MoveNextAsync();
50+
if (!await _memoryItems[i]!.MoveNextAsync())
51+
RemoveIterator(_memoryItems[i]!);
5152
}
5253
}
5354
else

src/TrimDB.Core/TrimDatabase.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -312,9 +312,6 @@ internal async ValueTask<SearchResult> DoesKeyExistBelowLevel(ReadOnlyMemory<byt
312312
return SearchResult.NotFound;
313313
}
314314

315-
public ValueTask<bool> DeleteAsync(ReadOnlySpan<byte> key, WriteFlags flags)
316-
=> DeleteAsync(key); // flags ignored for MVP
317-
318315
public ValueTask<bool> DeleteAsync(ReadOnlySpan<byte> key)
319316
{
320317
if (Volatile.Read(ref _disposed) == 1) throw new ObjectDisposedException(nameof(TrimDatabase));
@@ -357,9 +354,6 @@ private async ValueTask<bool> DeleteAsyncSlow(byte[] key)
357354
}
358355
}
359356

360-
public Task PutAsync(ReadOnlyMemory<byte> key, ReadOnlyMemory<byte> value, WriteFlags flags)
361-
=> PutAsync(key, value); // flags ignored for MVP
362-
363357
public async Task PutAsync(ReadOnlyMemory<byte> key, ReadOnlyMemory<byte> value)
364358
{
365359
if (Volatile.Read(ref _disposed) == 1) throw new ObjectDisposedException(nameof(TrimDatabase));

src/TrimDB.Core/WriteFlags.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/TrimDB.Nethermind/Interfaces/DbMetric.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/TrimDB.Nethermind/Interfaces/IDb.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/TrimDB.Nethermind/Interfaces/IDbMeta.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/TrimDB.Nethermind/Interfaces/IKeyValueStore.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/TrimDB.Nethermind/Interfaces/IKeyValueStoreWithBatching.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)