You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just an idea isnt it better to write insert/update/remove/search events to a file before performing them.
Insert("1", "Jane")
Insert("2", "John")
Execute(); // write to log and perform queued operations
Also try removing the RandomAccessFile.
Its slower than a SeekableByteChannel (Files.newByteChannel()).
Just an idea isnt it better to write insert/update/remove/search events to a file before performing them.
WAL Redo log can be done outside btree4j.
UNDO log of page is required when updating an old page P1 with new page entry P2.
P2 may be broken if page write failed in the middle of writes. For such case, we need to backup P1 to undolog so that we can rollback to P1 on recovery; write P1 to undo log before replacing P1 with P2 and remove the P1 undo entry from undo log when P2 write is successfully done. We need to add checksum for a page.
Recovery is being done when loading BTree from File.
Undo logging has a drawback in performance, undolog and checksum should be optional.
Just an idea isnt it better to write insert/update/remove/search events to a file before performing them.
Insert("1", "Jane")
Insert("2", "John")
Execute(); // write to log and perform queued operations
It's REDO log. It could be outside btree4j.
Also try removing the RandomAccessFile. Its slower than a SeekableByteChannel (Files.newByteChannel()).
Could you provide benchmark results for random access? I suspect no significant difference between them.
BTreeNode.write and read operation should be atomic for a better Durability (sudden shutdown etc).
To do that, undo log is required.
The text was updated successfully, but these errors were encountered: