mirror of
https://github.com/bisq-network/bisq.git
synced 2025-03-03 10:46:54 +01:00
Enforce that clients set the priority. Remove the initialize methods which did not have priority as a param.
Make initializePersistenceManager in StorageService abstract to enforce in concrete class to define priority. Change priorities for future renaming to a different meaning. instead of priority we want to describe the category: private data, public data,.... will come in next commit
This commit is contained in:
parent
18f64d53ca
commit
137b5e81d1
13 changed files with 32 additions and 24 deletions
|
@ -94,7 +94,7 @@ public class PersistenceManager<T extends PersistableEnvelope> {
|
|||
// For Priority.HIGH data we want to write to disk in any case to be on the safe side if we might have missed
|
||||
// a requestPersistence call after an important state update. Those are usually rather small data stores.
|
||||
// Otherwise we only persist if requestPersistence was called since the last persist call.
|
||||
if (persistenceManager.priority == Priority.HIGH || persistenceManager.persistenceRequested) {
|
||||
if (persistenceManager.priority.flushAtShutDown || persistenceManager.persistenceRequested) {
|
||||
// We don't know from which thread we are called so we map back to user thread when calling persistNow
|
||||
UserThread.execute(() -> {
|
||||
// We always get our completeHandler called even if exceptions happen. In case a file write fails
|
||||
|
@ -125,18 +125,21 @@ public class PersistenceManager<T extends PersistableEnvelope> {
|
|||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public enum Priority {
|
||||
LOW(1, TimeUnit.HOURS.toSeconds(1)),
|
||||
MID(4, TimeUnit.MINUTES.toSeconds(30)),
|
||||
HIGH(10, TimeUnit.SECONDS.toSeconds(30));
|
||||
LOW(1, TimeUnit.HOURS.toSeconds(1), false),
|
||||
MID(4, TimeUnit.MINUTES.toSeconds(30), false),
|
||||
HIGH(10, TimeUnit.SECONDS.toSeconds(30), true);
|
||||
|
||||
@Getter
|
||||
private final int numMaxBackupFiles;
|
||||
@Getter
|
||||
private final long delayInSec;
|
||||
@Getter
|
||||
private final boolean flushAtShutDown;
|
||||
|
||||
Priority(int numMaxBackupFiles, long delayInSec) {
|
||||
Priority(int numMaxBackupFiles, long delayInSec, boolean flushAtShutDown) {
|
||||
this.numMaxBackupFiles = numMaxBackupFiles;
|
||||
this.delayInSec = delayInSec;
|
||||
this.flushAtShutDown = flushAtShutDown;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,18 +179,10 @@ public class PersistenceManager<T extends PersistableEnvelope> {
|
|||
// API
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public void initialize(T persistable) {
|
||||
this.initialize(persistable, persistable.getDefaultStorageFileName(), Priority.MID);
|
||||
}
|
||||
|
||||
public void initialize(T persistable, Priority priority) {
|
||||
this.initialize(persistable, persistable.getDefaultStorageFileName(), priority);
|
||||
}
|
||||
|
||||
public void initialize(T persistable, String fileName) {
|
||||
this.initialize(persistable, fileName, Priority.MID);
|
||||
}
|
||||
|
||||
public void initialize(T persistable, String fileName, Priority priority) {
|
||||
this.persistable = persistable;
|
||||
this.fileName = fileName;
|
||||
|
|
|
@ -57,7 +57,7 @@ public final class AddressEntryList implements PersistableEnvelope, PersistedDat
|
|||
public AddressEntryList(PersistenceManager<AddressEntryList> persistenceManager) {
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
persistenceManager.initialize(this, PersistenceManager.Priority.HIGH);
|
||||
this.persistenceManager.initialize(this, PersistenceManager.Priority.HIGH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -73,7 +73,7 @@ public class BallotListService implements PersistedDataHost, DaoSetupService {
|
|||
this.validatorProvider = validatorProvider;
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
this.persistenceManager.initialize(ballotList);
|
||||
this.persistenceManager.initialize(ballotList, PersistenceManager.Priority.LOW);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -63,6 +63,11 @@ public class BlindVoteStorageService extends MapStoreService<BlindVoteStore, Per
|
|||
return FILE_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initializePersistenceManager() {
|
||||
persistenceManager.initialize(store, PersistenceManager.Priority.LOW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<P2PDataStorage.ByteArray, PersistableNetworkPayload> getMap() {
|
||||
return store.getMap();
|
||||
|
|
|
@ -57,6 +57,11 @@ public class ProposalStorageService extends MapStoreService<ProposalStore, Persi
|
|||
return FILE_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initializePersistenceManager() {
|
||||
persistenceManager.initialize(store, PersistenceManager.Priority.LOW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<P2PDataStorage.ByteArray, PersistableNetworkPayload> getMap() {
|
||||
return store.getMap();
|
||||
|
|
|
@ -57,6 +57,11 @@ public class TempProposalStorageService extends MapStoreService<TempProposalStor
|
|||
return FILE_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initializePersistenceManager() {
|
||||
persistenceManager.initialize(store, PersistenceManager.Priority.LOW);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<P2PDataStorage.ByteArray, ProtectedStorageEntry> getMap() {
|
||||
return store.getMap();
|
||||
|
|
|
@ -56,7 +56,7 @@ public class ClosedTradableManager implements PersistedDataHost {
|
|||
this.dumpDelayedPayoutTx = dumpDelayedPayoutTx;
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
this.persistenceManager.initialize(closedTradables, "ClosedTrades");
|
||||
this.persistenceManager.initialize(closedTradables, "ClosedTrades", PersistenceManager.Priority.HIGH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -66,7 +66,7 @@ public class FailedTradesManager implements PersistedDataHost {
|
|||
this.dumpDelayedPayoutTx = dumpDelayedPayoutTx;
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
this.persistenceManager.initialize(failedTrades, "FailedTrades");
|
||||
this.persistenceManager.initialize(failedTrades, "FailedTrades", PersistenceManager.Priority.HIGH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -75,7 +75,7 @@ public final class Navigation implements PersistedDataHost {
|
|||
public Navigation(PersistenceManager<NavigationPath> persistenceManager) {
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
persistenceManager.initialize(navigationPath, PersistenceManager.Priority.LOW);
|
||||
persistenceManager.initialize(navigationPath, PersistenceManager.Priority.MID);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -215,7 +215,7 @@ public class GUIUtil {
|
|||
if (!directory.isEmpty()) {
|
||||
PersistenceManager<PersistableEnvelope> persistenceManager = new PersistenceManager<>(new File(directory), persistenceProtoResolver, corruptedStorageFileHandler);
|
||||
PaymentAccountList paymentAccounts = new PaymentAccountList(accounts);
|
||||
persistenceManager.initialize(paymentAccounts, fileName);
|
||||
persistenceManager.initialize(paymentAccounts, fileName, PersistenceManager.Priority.HIGH);
|
||||
persistenceManager.persistNow(() -> {
|
||||
persistenceManager.shutdown();
|
||||
new Popup().feedback(Res.get("guiUtil.accountExport.savedToPath",
|
||||
|
|
|
@ -138,7 +138,7 @@ public class PeerManager implements ConnectionListener, PersistedDataHost {
|
|||
this.clockWatcher = clockWatcher;
|
||||
this.persistenceManager = persistenceManager;
|
||||
|
||||
this.persistenceManager.initialize(peerList, PersistenceManager.Priority.LOW);
|
||||
this.persistenceManager.initialize(peerList, PersistenceManager.Priority.MID);
|
||||
this.networkNode.addConnectionListener(this);
|
||||
|
||||
setConnectionLimits(maxConnections);
|
||||
|
|
|
@ -167,7 +167,7 @@ public class P2PDataStorage implements MessageListener, ConnectionListener, Pers
|
|||
networkNode.addMessageListener(this);
|
||||
networkNode.addConnectionListener(this);
|
||||
|
||||
this.persistenceManager.initialize(sequenceNumberMap, PersistenceManager.Priority.LOW);
|
||||
this.persistenceManager.initialize(sequenceNumberMap, PersistenceManager.Priority.HIGH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -134,9 +134,7 @@ public abstract class StoreService<T extends PersistableEnvelope> {
|
|||
initializePersistenceManager();
|
||||
}
|
||||
|
||||
protected void initializePersistenceManager() {
|
||||
persistenceManager.initialize(store);
|
||||
}
|
||||
protected abstract void initializePersistenceManager();
|
||||
|
||||
protected abstract T createStore();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue