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
MerkleDb has a feature to restore path to hash and path to KV indices on load, if the indices are not available on disk. This is done by iterating over all data files, loading all data (hash or KV) records, and updating corresponding index entries.
There are two issues about this feature:
This mode is turned on, when the index is empty after it's loaded from disk:
In addition to this check, first/last leaf paths should be checked, too. If they are -1 (which means the database is empty), there is no need to restore anything.
Data files may be old and may contain entries that are outside of the current path range. It leads to an assertion error in AbstractLongList.putimpl(), which is called from loading callbacks:
MerkleDb has a feature to restore path to hash and path to KV indices on load, if the indices are not available on disk. This is done by iterating over all data files, loading all data (hash or KV) records, and updating corresponding index entries.
There are two issues about this feature:
In addition to this check, first/last leaf paths should be checked, too. If they are -1 (which means the database is empty), there is no need to restore anything.
AbstractLongList.putimpl()
, which is called from loading callbacks:There is no need to
put()
if the record path is not within first/last leaf path range.The text was updated successfully, but these errors were encountered: