mirror of
https://github.com/usatiuk/dhfs.git
synced 2025-10-28 20:47:49 +01:00
Server: don't freeze objects that have PushResolution
everything is canDelete now
This commit is contained in:
@@ -93,7 +93,7 @@ public class KleppmannTree<TimestampT extends Comparable<TimestampT>, PeerIdT ex
|
||||
node.rwLock();
|
||||
try {
|
||||
curParent.getNode().getChildren().remove(node.getNode().getMeta().getName());
|
||||
node.lock();
|
||||
node.freeze();
|
||||
node.getNode().setParent(null);
|
||||
node.getNode().setLastEffectiveOp(null);
|
||||
node.notifyRmRef(curParent.getNode().getId());
|
||||
@@ -274,7 +274,7 @@ public class KleppmannTree<TimestampT extends Comparable<TimestampT>, PeerIdT ex
|
||||
if (!_undoCtx.isEmpty()) {
|
||||
for (var e : _undoCtx.entrySet()) {
|
||||
LOGGER.log(Level.FINE, "Dropping node " + e.getKey());
|
||||
e.getValue().unlock();
|
||||
e.getValue().unfreeze();
|
||||
_storage.removeNode(e.getKey());
|
||||
}
|
||||
}
|
||||
@@ -328,7 +328,7 @@ public class KleppmannTree<TimestampT extends Comparable<TimestampT>, PeerIdT ex
|
||||
node.getNode().setParent(desired.getParent());
|
||||
node.notifyRef(desired.getParent());
|
||||
node.getNode().setMeta(desired.getMeta());
|
||||
node.unlock();
|
||||
node.unfreeze();
|
||||
} catch (Exception e) {
|
||||
LOGGER.log(Level.SEVERE, "Error while fixing up node " + desired.getId(), e);
|
||||
node.rwUnlock();
|
||||
|
||||
@@ -9,9 +9,9 @@ public interface TreeNodeWrapper<TimestampT extends Comparable<TimestampT>, Peer
|
||||
|
||||
void rwUnlock();
|
||||
|
||||
void lock();
|
||||
void freeze();
|
||||
|
||||
void unlock();
|
||||
void unfreeze();
|
||||
|
||||
void notifyRef(NodeIdT id);
|
||||
|
||||
|
||||
@@ -26,12 +26,12 @@ public class TestNodeWrapper implements TreeNodeWrapper<Long, Long, TestNodeMeta
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lock() {
|
||||
public void freeze() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unlock() {
|
||||
public void unfreeze() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public class JKleppmannTreeNodeWrapper implements TreeNodeWrapper<Long, UUID, JK
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lock() {
|
||||
public void freeze() {
|
||||
_backing.runWriteLocked(JObjectManager.ResolutionStrategy.NO_RESOLUTION, (m, d, b, v) -> {
|
||||
m.freeze();
|
||||
return null;
|
||||
@@ -44,7 +44,7 @@ public class JKleppmannTreeNodeWrapper implements TreeNodeWrapper<Long, UUID, JK
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unlock() {
|
||||
public void unfreeze() {
|
||||
_backing.runWriteLocked(JObjectManager.ResolutionStrategy.NO_RESOLUTION, (m, d, b, v) -> {
|
||||
m.unfreeze();
|
||||
return null;
|
||||
|
||||
@@ -455,8 +455,6 @@ public class JObjectManagerImpl implements JObjectManager {
|
||||
_metaPart.narrowClass(data.getClass());
|
||||
_dataPart.set((T) data);
|
||||
_metaPart.setHaveLocalCopy(true);
|
||||
if (!_metaPart.isFrozen())
|
||||
_metaPart.freeze();
|
||||
hydrateRefs();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public class ObjectMetadataSerializer implements ProtoSerializer<ObjectMetadataP
|
||||
.addAllReferrers(object.getReferrers())
|
||||
.putAllChangelog(object.getChangelog().entrySet().stream().collect(Collectors.toMap(e -> e.getKey().toString(), Map.Entry::getValue)))
|
||||
.addAllSavedRefs(object.getSavedRefs() != null ? object.getSavedRefs() : Collections.emptyList())
|
||||
.setLocked(object.isFrozen())
|
||||
.setFrozen(object.isFrozen())
|
||||
.setHaveLocalCopy(object.isHaveLocalCopy())
|
||||
.build();
|
||||
}
|
||||
@@ -47,7 +47,7 @@ public class ObjectMetadataSerializer implements ProtoSerializer<ObjectMetadataP
|
||||
obj.getChangelog().putAll(message.getChangelogMap().entrySet().stream().collect(Collectors.toMap(e -> UUID.fromString(e.getKey()), Map.Entry::getValue)));
|
||||
if (message.getSavedRefsCount() > 0)
|
||||
obj.setSavedRefs(new LinkedHashSet<>(message.getSavedRefsList()));
|
||||
if (message.getLocked())
|
||||
if (message.getFrozen())
|
||||
obj.freeze();
|
||||
if (message.getHaveLocalCopy())
|
||||
obj.setHaveLocalCopy(true);
|
||||
|
||||
@@ -16,7 +16,7 @@ message ObjectMetadataP {
|
||||
repeated string referrers = 7;
|
||||
map<string, int64> changelog = 8;
|
||||
repeated string savedRefs = 9;
|
||||
bool locked = 10;
|
||||
bool frozen = 10;
|
||||
bool haveLocalCopy = 11;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user