@@ -31,76 +31,57 @@ trait StateStorage {
3131 def forcePersist (reason : FlushSituation ): Boolean
3232}
3333
34- class ArchiveStateStorage (private val nodeStorage : NodeStorage , private val cachedNodeStorage : CachedNodeStorage )
35- extends StateStorage {
34+ class ArchiveStateStorage (private val nodeStorage : NodeStorage ) extends StateStorage {
3635
37- override def forcePersist (reason : FlushSituation ): Boolean = {
38- cachedNodeStorage.forcePersist()
39- true
40- }
36+ override def forcePersist (reason : FlushSituation ): Boolean = true
4137
4238 override def onBlockSave (bn : BigInt , currentBestSavedBlock : BigInt )(updateBestBlocksData : () => Unit ): Unit =
43- if (cachedNodeStorage.persist()) {
44- updateBestBlocksData()
45- }
39+ updateBestBlocksData()
4640
4741 override def onBlockRollback (bn : BigInt , currentBestSavedBlock : BigInt )(updateBestBlocksData : () => Unit ): Unit =
48- if (cachedNodeStorage.persist()) {
49- updateBestBlocksData()
50- }
42+ updateBestBlocksData()
5143
5244 override def getReadOnlyStorage : MptStorage =
53- new SerializingMptStorage (ReadOnlyNodeStorage (new ArchiveNodeStorage (cachedNodeStorage )))
45+ new SerializingMptStorage (ReadOnlyNodeStorage (new ArchiveNodeStorage (nodeStorage )))
5446
5547 override def getBackingStorage (bn : BigInt ): MptStorage =
56- new SerializingMptStorage (new ArchiveNodeStorage (cachedNodeStorage ))
48+ new SerializingMptStorage (new ArchiveNodeStorage (nodeStorage ))
5749
5850 override def saveNode (nodeHash : NodeHash , nodeEncoded : NodeEncoded , bn : BigInt ): Unit =
5951 nodeStorage.put(nodeHash, nodeEncoded)
6052
6153 override def getNode (nodeHash : NodeHash ): Option [MptNode ] =
62- cachedNodeStorage .get(nodeHash).map(_.toMptNode)
54+ nodeStorage .get(nodeHash).map(_.toMptNode)
6355}
6456
6557class ReferenceCountedStateStorage (
6658 private val nodeStorage : NodeStorage ,
67- private val cachedNodeStorage : CachedNodeStorage ,
6859 private val pruningHistory : BigInt
6960) extends StateStorage {
70- override def forcePersist (reason : FlushSituation ): Boolean = {
71- cachedNodeStorage.forcePersist()
72- true
73- }
61+ override def forcePersist (reason : FlushSituation ): Boolean = true
7462
7563 override def onBlockSave (bn : BigInt , currentBestSavedBlock : BigInt )(updateBestBlocksData : () => Unit ): Unit = {
7664 val blockToPrune = bn - pruningHistory
77-
78- ReferenceCountNodeStorage .prune(blockToPrune, cachedNodeStorage, inMemory = blockToPrune > currentBestSavedBlock)
79-
80- if (cachedNodeStorage.persist()) {
81- updateBestBlocksData()
82- }
65+ ReferenceCountNodeStorage .prune(blockToPrune, nodeStorage, inMemory = blockToPrune > currentBestSavedBlock)
66+ updateBestBlocksData()
8367 }
8468
8569 override def onBlockRollback (bn : BigInt , currentBestSavedBlock : BigInt )(updateBestBlocksData : () => Unit ): Unit = {
86- ReferenceCountNodeStorage .rollback(bn, cachedNodeStorage, inMemory = bn > currentBestSavedBlock)
87-
88- if (cachedNodeStorage.persist()) {
89- updateBestBlocksData()
90- }
70+ ReferenceCountNodeStorage .rollback(bn, nodeStorage, inMemory = bn > currentBestSavedBlock)
71+ updateBestBlocksData()
9172 }
9273
9374 override def getBackingStorage (bn : BigInt ): MptStorage =
94- new SerializingMptStorage (new ReferenceCountNodeStorage (cachedNodeStorage , bn))
75+ new SerializingMptStorage (new ReferenceCountNodeStorage (nodeStorage , bn))
9576
9677 override def getReadOnlyStorage : MptStorage =
97- new SerializingMptStorage (ReadOnlyNodeStorage (new FastSyncNodeStorage (cachedNodeStorage , 0 )))
78+ new SerializingMptStorage (ReadOnlyNodeStorage (new FastSyncNodeStorage (nodeStorage , 0 )))
9879
9980 override def saveNode (nodeHash : NodeHash , nodeEncoded : NodeEncoded , bn : BigInt ): Unit =
10081 new FastSyncNodeStorage (nodeStorage, bn).update(Nil , Seq (nodeHash -> nodeEncoded))
10182
10283 override def getNode (nodeHash : NodeHash ): Option [MptNode ] =
103- new FastSyncNodeStorage (cachedNodeStorage , 0 ).get(nodeHash).map(_.toMptNode)
84+ new FastSyncNodeStorage (nodeStorage , 0 ).get(nodeHash).map(_.toMptNode)
10485}
10586
10687class CachedReferenceCountedStateStorage (
@@ -159,12 +140,11 @@ object StateStorage {
159140 def apply (
160141 pruningMode : PruningMode ,
161142 nodeStorage : NodeStorage ,
162- cachedNodeStorage : CachedNodeStorage ,
163143 lruCache : LruCache [NodeHash , HeapEntry ]
164144 ): StateStorage =
165145 pruningMode match {
166- case ArchivePruning => new ArchiveStateStorage (nodeStorage, cachedNodeStorage )
167- case pruning.BasicPruning (history) => new ReferenceCountedStateStorage (nodeStorage, cachedNodeStorage, history)
146+ case ArchivePruning => new ArchiveStateStorage (nodeStorage)
147+ case pruning.BasicPruning (history) => new ReferenceCountedStateStorage (nodeStorage, history)
168148 case pruning.InMemoryPruning (history) => new CachedReferenceCountedStateStorage (nodeStorage, history, lruCache)
169149 }
170150
@@ -185,8 +165,9 @@ object StateStorage {
185165 }
186166 val nodeStorage = new NodeStorage (source)
187167 val cachedNodeStorage = new CachedNodeStorage (nodeStorage, MapCache .createTestCache(testCacheSize))
168+
188169 (
189- StateStorage (pruningMode, nodeStorage, cachedNodeStorage, new LruCache [NodeHash , HeapEntry ](testCacheConfig)),
170+ StateStorage (pruningMode, nodeStorage, new LruCache [NodeHash , HeapEntry ](testCacheConfig)),
190171 nodeStorage,
191172 cachedNodeStorage
192173 )
0 commit comments