private void addTransactionRecords(ClusterStateChange stateChange, Transaction tx, Collection<MemberImpl> members, int memberListVersion, int partitionStateVersion, boolean isTransient) { long leaseTime = Math.min(tx.getTimeoutMillis(), LOCK_LEASE_EXTENSION_MILLIS); for (Member member : members) { tx.add(new ClusterStateTransactionLogRecord(stateChange, node.getThisAddress(), member.getAddress(), tx.getTxnId(), leaseTime, memberListVersion, partitionStateVersion, isTransient)); } }
private void addTransactionRecords(ClusterStateChange stateChange, Transaction tx, Collection<MemberImpl> members, int memberListVersion, int partitionStateVersion, boolean isTransient) { long leaseTime = Math.min(tx.getTimeoutMillis(), LOCK_LEASE_EXTENSION_MILLIS); for (Member member : members) { tx.add(new ClusterStateTransactionLogRecord(stateChange, node.getThisAddress(), member.getAddress(), tx.getTxnId(), leaseTime, memberListVersion, partitionStateVersion, isTransient)); } }
private void putToRecord(BaseTxnQueueOperation operation) { QueueTransactionLogRecord logRecord = (QueueTransactionLogRecord) tx.get(name); if (logRecord == null) { logRecord = new QueueTransactionLogRecord(tx.getTxnId(), name, partitionId); tx.add(logRecord); } logRecord.addOperation(operation); }
private void addUnlockTransactionRecord(Data key, long version) { TxnUnlockOperation operation = new TxnUnlockOperation(name, key, version); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, version, tx.getOwnerUuid())); }
private void putToRecord(BaseTxnQueueOperation operation) { QueueTransactionLogRecord logRecord = (QueueTransactionLogRecord) tx.get(name); if (logRecord == null) { logRecord = new QueueTransactionLogRecord(tx.getTxnId(), name, partitionId); tx.add(logRecord); } logRecord.addOperation(operation); }
private void addUnlockTransactionRecord(Data key, long version) { TxnUnlockOperation operation = new TxnUnlockOperation(name, key, version); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, version, tx.getOwnerUuid())); }
protected void putToRecord(CollectionTxnOperation operation) { CollectionTransactionLogRecord logRecord = (CollectionTransactionLogRecord) tx.get(name); if (logRecord == null) { logRecord = new CollectionTransactionLogRecord(getServiceName(), tx.getTxnId(), name, partitionId); tx.add(logRecord); } logRecord.addOperation(operation); }
protected void putToRecord(CollectionTxnOperation operation) { CollectionTransactionLogRecord logRecord = (CollectionTransactionLogRecord) tx.get(name); if (logRecord == null) { logRecord = new CollectionTransactionLogRecord(getServiceName(), tx.getTxnId(), name, partitionId); tx.add(logRecord); } logRecord.addOperation(operation); }
Data removeInternal(Data key) { VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operationProvider.createTxnDeleteOperation(name, key, versionedValue.version), versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data putIfAbsentInternal(Data key, Data value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (versionedValue.value != null) { if (unlockImmediately) { unlock(key, versionedValue); return versionedValue.value; } addUnlockTransactionRecord(key, versionedValue.version); return versionedValue.value; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data removeInternal(Data key) { VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operationProvider.createTxnDeleteOperation(name, key, versionedValue.version), versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data replaceInternal(Data key, Data value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (versionedValue.value == null) { if (unlockImmediately) { unlock(key, versionedValue); return null; } addUnlockTransactionRecord(key, versionedValue.version); return null; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data replaceInternal(Data key, Data value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (versionedValue.value == null) { if (unlockImmediately) { unlock(key, versionedValue); return null; } addUnlockTransactionRecord(key, versionedValue.version); return null; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data putIfAbsentInternal(Data key, Data value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (versionedValue.value != null) { if (unlockImmediately) { unlock(key, versionedValue); return versionedValue.value; } addUnlockTransactionRecord(key, versionedValue.version); return versionedValue.value; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
Data putInternal(Data key, Data value, long ttl, TimeUnit timeUnit) { VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); long timeInMillis = getTimeInMillis(ttl, timeUnit); MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, timeInMillis); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
boolean removeIfSameInternal(Data key, Object value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (!isEquals(versionedValue.value, value)) { if (unlockImmediately) { unlock(key, versionedValue); return false; } addUnlockTransactionRecord(key, versionedValue.version); return false; } tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operationProvider.createTxnDeleteOperation(name, key, versionedValue.version), versionedValue.version, tx.getOwnerUuid())); return true; }
Data putInternal(Data key, Data value, long ttl, TimeUnit timeUnit) { VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); long timeInMillis = getTimeInMillis(ttl, timeUnit); MapOperation operation = operationProvider.createTxnSetOperation(name, key, value, versionedValue.version, timeInMillis); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return versionedValue.value; }
boolean replaceIfSameInternal(Data key, Object oldValue, Data newValue) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (!isEquals(oldValue, versionedValue.value)) { if (unlockImmediately) { unlock(key, versionedValue); return false; } addUnlockTransactionRecord(key, versionedValue.version); return false; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, newValue, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return true; }
boolean replaceIfSameInternal(Data key, Object oldValue, Data newValue) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (!isEquals(oldValue, versionedValue.value)) { if (unlockImmediately) { unlock(key, versionedValue); return false; } addUnlockTransactionRecord(key, versionedValue.version); return false; } MapOperation operation = operationProvider.createTxnSetOperation(name, key, newValue, versionedValue.version, -1); tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operation, versionedValue.version, tx.getOwnerUuid())); return true; }
boolean removeIfSameInternal(Data key, Object value) { boolean unlockImmediately = !valueMap.containsKey(key); VersionedValue versionedValue = lockAndGet(key, tx.getTimeoutMillis()); if (!isEquals(versionedValue.value, value)) { if (unlockImmediately) { unlock(key, versionedValue); return false; } addUnlockTransactionRecord(key, versionedValue.version); return false; } tx.add(new MapTransactionLogRecord(name, key, getPartitionId(key), operationProvider.createTxnDeleteOperation(name, key, versionedValue.version), versionedValue.version, tx.getOwnerUuid())); return true; }