@Override public boolean isSnapshot() { return getLockingPolicy() == LockingPolicy.SNAPSHOT; }
@Override public final Object lockEntryForRead(final RegionEntry entry, final Object key, final LocalRegion dataRegion, final int iContext, final boolean allowTombstones, final ReadEntryUnderLock reader) { final LockingPolicy lockPolicy = getLockingPolicy(); return lockEntryForRead(lockPolicy, entry, key, dataRegion, null, this.txId, this, iContext, false, allowTombstones, Boolean.TRUE, reader); }
protected final void releaseRowLocationLock(final RowLocation rl, final GemFireContainer container) { if (rl != null) { // assumes that local TXState is non-null assert this.localTXStateSet && this.localTXState != null : "unexpected localTXState=" + this.localTXState; final TXState tx = this.localTXState; final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.releaseLockForReadOnPreviousEntry( rl.getUnderlyingRegionEntry(), tx, tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), container, null, this.lockContext); } }
protected void cleanup(final boolean commit, final TransactionObserver observer) { this.state = commit ? State.CLOSED_COMMIT : State.CLOSED_ROLLBACK; final LockingPolicy lockPolicy = getLockingPolicy(); final LockMode writeMode = commit ? LockMode.EX : lockPolicy .getWriteLockMode(); try { if (observer != null) { observer.afterApplyChanges(this.proxy); } clearPendingOps(); if (!commit) { // release all pending read locks, if any pendingReadLocksCleanup(lockPolicy, null, null); } writeRegions.keySet().stream().filter(region -> region instanceof BucketRegion ).forEach(region -> ((BucketRegion)region).releaseSnapshotGIIReadLock() ); } finally { if (this.txLocked.compareAndSet(true, false)) { unlockTXState(); } cleanupTXRS(this.finalizeRegions, lockPolicy, writeMode, commit, true, observer); } }
protected final void releaseRowLocationLock(final RowLocation rl, final GemFireContainer container) { if (rl != null) { // assumes that local TXState is non-null assert this.localTXStateSet && this.localTXState != null : "unexpected localTXState=" + this.localTXState; final TXState tx = this.localTXState; final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.releaseLockForReadOnPreviousEntry( rl.getUnderlyingRegionEntry(), tx, tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), container, null, this.lockContext); } }
protected final void releaseRowLocationLock(final RowLocation rl, final GemFireContainer container) { if (rl != null) { // assumes that local TXState is non-null assert this.localTXStateSet && this.localTXState != null : "unexpected localTXState=" + this.localTXState; final TXState tx = this.localTXState; final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.releaseLockForReadOnPreviousEntry( rl.getUnderlyingRegionEntry(), tx, tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), container, null, this.lockContext); } }
public void rmRegion(final LocalRegion r) { final TXRegionState txr = this.regions.removeKey(r); if (txr != null) { final LockingPolicy lockPolicy = getLockingPolicy(); txr.lock(); try { txr.cleanup(lockPolicy, lockPolicy.getWriteLockMode(), false, true, null); txr.processPendingExpires(); txr.cleanupSnapshotRegionEntries(); } finally { txr.unlock(); } } if (isEmpty()) { getProxy().removeSelfFromHostedIfEmpty(null); } }
if (isDirty() || this.op == OP_LOCK_FOR_UPDATE) { if (currentTXEntry.isOpReadOnly()) { final LockingPolicy lockPolicy = txState.getLockingPolicy(); final RegionEntry entry = currentTXEntry.regionEntry;
txrss.add(txrs); txIdMap.put(txState.getTransactionId(), txState.getLockingPolicy()); added = true;
Object key = null; if (getLockingPolicy().lockedForWrite(re, null, null)) { final TXRegionState txr = readRegion(region); if (txr != null) {
+ originalDelta + " for " + this.txId.shortToString()); final LockingPolicy lockPolicy = getLockingPolicy(); txr.lock(); try {
final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.unlockEntryAfterRead(tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), entry, container,
final LockingPolicy lockPolicy = tx.getLockingPolicy(); final TransactionObserver observer = tx.getObserver(); final LogWriterI18n logger = tx.getTxMgr().getLogger();
final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.unlockEntryAfterRead(tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), entry, container,
if (currentEntry == null || (lockedForRead = (currentEntry instanceof AbstractRegionEntry))) { final LockingPolicy lockPolicy = txState.getLockingPolicy(); final RegionEntry entry; if (isDirty() || this.op == OP_LOCK_FOR_UPDATE) {
final LockingPolicy lockPolicy = tx.getLockingPolicy(); GemFireXDUtils.unlockEntryAfterRead(tx.getTransactionId(), lockPolicy, lockPolicy.getReadLockMode(), entry, container,
final LockingPolicy lockPolicy = getLockingPolicy();
final boolean checkTX = getLockingPolicy().lockedForWrite(re, null, null); if (TXStateProxy.LOG_FINE) { final LogWriterI18n logger = region.getLogWriterI18n();
getLockingPolicy(); final TXRegionState txr = readRegion(dataRegion); if (txr != null) {
final LockingPolicy lockPolicy = getLockingPolicy(); TXEntryState entry = null;