-
Notifications
You must be signed in to change notification settings - Fork 715
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
Reset cache if version becomes active #4791
base: mainnet_2_3_versioning_mip
Are you sure you want to change the base?
Reset cache if version becomes active #4791
Conversation
@@ -36,7 +36,7 @@ macro_rules! metadata_key { | |||
|
|||
pub(crate) struct HDCache { | |||
/// RocksDB database | |||
db: DB, | |||
db: Option<DB>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why it is now Option ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In order to destroy the DB to reset it, I needed a way to drop the current DB, which is not possible without the Option as I can't fully drop the HDCache
.
The only alternative I thought was to iterate through the DB to remove elements, but this may be a heavy operation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the only other solution I see (without using Option) is
unsafe {
std::ptr::drop_in_place(&mut self.db);
std::ptr::write(&mut self.db, create_new_db());
}
but not great because unsafe
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maye we can use the unsafe snippet here but check with Miri first if the code looks ok and sound?
If you want I can have a look at it?
@@ -36,7 +36,7 @@ macro_rules! metadata_key { | |||
|
|||
pub(crate) struct HDCache { | |||
/// RocksDB database | |||
db: DB, | |||
db: Option<DB>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maye we can use the unsafe snippet here but check with Miri first if the code looks ok and sound?
If you want I can have a look at it?
20bc306
to
1b5868b
Compare
1b5868b
to
b1c8da3
Compare
resync_check
flag