- public void doDelete(String persistentId, SnapshotSelectionCriteria snapshotSelectionCriteria)
- throws Exception {
- List<StoredSnapshot> snapshotList = snapshots.get(persistentId);
-
- if(snapshotList == null){
- return;
- }
-
- synchronized (snapshotList) {
- Iterator<StoredSnapshot> iter = snapshotList.iterator();
- while(iter.hasNext()) {
- StoredSnapshot s = iter.next();
- LOG.trace("doDelete: sequenceNr: {}, maxSequenceNr: {}", s.getMetadata().sequenceNr(),
- snapshotSelectionCriteria.maxSequenceNr());
-
- if(s.getMetadata().sequenceNr() <= snapshotSelectionCriteria.maxSequenceNr()) {
- iter.remove();
+ public Future<Void> doDeleteAsync(String persistenceId, SnapshotSelectionCriteria criteria) {
+ LOG.trace("doDelete: persistentId {}: maxSequenceNr: {}: maxTimestamp {}", persistenceId,
+ criteria.maxSequenceNr(), criteria.maxTimestamp());
+
+ List<StoredSnapshot> snapshotList = snapshots.get(persistenceId);
+ if(snapshotList != null){
+ synchronized (snapshotList) {
+ Iterator<StoredSnapshot> iter = snapshotList.iterator();
+ while(iter.hasNext()) {
+ StoredSnapshot s = iter.next();
+ if(matches(s, criteria)) {
+ LOG.trace("Deleting snapshot for sequenceNr: {}, timestamp: {}: {}",
+ s.metadata.sequenceNr(), s.metadata.timestamp(), s.data);
+
+ iter.remove();
+ }