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
When a node reconnects, the database is flushed to disk. This forced flush should be removed so that data that can remain in the in-memory database stays there and the node is not then forced to go to disk when it does not need to.
The text was updated successfully, but these errors were encountered:
There are 3 scenarios for calling saveRecords() that actually writes data to disk, and all of them are reasonable. The first one is caused by copying maps every round, while the second and the third are preformed in the beginning and in the end of the reconnect operation, and they both are necessary to persist the data to disk:
at com.swirlds.merkledb.MerkleDbDataSource.saveRecords(MerkleDbDataSource.java:513)
at com.swirlds.virtualmap.datasource.VirtualDataSource.saveRecords(VirtualDataSource.java:90)
at com.swirlds.virtualmap.internal.merkle.VirtualRootNode.flush(VirtualRootNode.java:1175)
at com.swirlds.virtualmap.internal.merkle.VirtualRootNode.flush(VirtualRootNode.java:1155)
at com.swirlds.virtualmap.internal.pipeline.VirtualPipeline.flush(VirtualPipeline.java:511)
at com.swirlds.virtualmap.internal.pipeline.VirtualPipeline.hashFlushMerge(VirtualPipeline.java:571)
at com.swirlds.virtualmap.internal.pipeline.VirtualPipeline.doWork(VirtualPipeline.java:589)
at com.swirlds.merkledb.MerkleDbDataSource.saveRecords(MerkleDbDataSource.java:513)
at com.swirlds.virtualmap.datasource.VirtualDataSource.saveRecords(VirtualDataSource.java:90)
at com.swirlds.virtualmap.internal.merkle.VirtualRootNode.flush(VirtualRootNode.java:1175)
at com.swirlds.virtualmap.internal.merkle.VirtualRootNode.setupWithOriginalNode(VirtualRootNode.java:1420)
at com.swirlds.common.merkle.synchronization.task.LearnerPushTask.handleCustomRootInitialLesson(LearnerPushTask.java:122)
at com.swirlds.common.merkle.synchronization.task.LearnerPushTask.extractNodeFromLesson(LearnerPushTask.java:146)
at com.swirlds.common.merkle.synchronization.task.LearnerPushTask.run(LearnerPushTask.java:247)
at com.swirlds.common.threading.pool.StandardWorkGroup.lambda$execute$1(StandardWorkGroup.java:142)
at com.swirlds.merkledb.MerkleDbDataSource.saveRecords(MerkleDbDataSource.java:513)
at com.swirlds.virtualmap.internal.merkle.AbstractHashListener.flush(AbstractHashListener.java:177)
at com.swirlds.virtualmap.internal.merkle.AbstractHashListener.onHashingCompleted(AbstractHashListener.java:164)
at com.swirlds.virtualmap.internal.hash.VirtualHasher.hash(VirtualHasher.java:512)
at com.swirlds.virtualmap.internal.merkle.VirtualRootNode.lambda$prepareReconnectHashing$4(VirtualRootNode.java:1532)
When a node reconnects, the database is flushed to disk. This forced flush should be removed so that data that can remain in the in-memory database stays there and the node is not then forced to go to disk when it does not need to.
The text was updated successfully, but these errors were encountered: