You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/05/16 02:20:09 UTC
[59/78] geode git commit: fixup
http://git-wip-us.apache.org/repos/asf/geode/blob/5adb681a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
index 82cf428..bad1ad9 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapStringKey2.java
@@ -18,40 +18,23 @@ package org.apache.geode.internal.cache;
-
-
-
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.geode.cache.EntryEvent;
-
import org.apache.geode.internal.cache.lru.EnableLRU;
-
import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
-
import org.apache.geode.internal.InternalStatisticsDisabledException;
-
-
-
-
-
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.versions.VersionSource;
import org.apache.geode.internal.cache.versions.VersionStamp;
import org.apache.geode.internal.cache.versions.VersionTag;
-
-
-
-
-
-
import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
// macros whose definition changes this class:
@@ -73,7 +56,7 @@ import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.Ha
* ./dev-tools/generateRegionEntryClasses.sh (it must be run from the top level directory).
*/
public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsDiskRegionEntryHeap {
- public VersionedStatsDiskRegionEntryHeapStringKey2 (RegionEntryContext context, String key,
+ public VersionedStatsDiskRegionEntryHeapStringKey2(RegionEntryContext context, String key,
@@ -81,14 +64,14 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
, boolean byteEncode
- ) {
- super(context,
+ ) {
+ super(context,
- (value instanceof RecoveredEntry ? null : value)
+ (value instanceof RecoveredEntry ? null : value)
- );
+ );
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
initialize(context, value);
@@ -97,19 +80,20 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
long tmpBits1 = 0L;
long tmpBits2 = 0L;
if (byteEncode) {
- for (int i=key.length()-1; i >= 0; i--) {
- // Note: we know each byte is <= 0x7f so the "& 0xff" is not needed. But I added it in to keep findbugs happy.
+ for (int i = key.length() - 1; i >= 0; i--) {
+ // Note: we know each byte is <= 0x7f so the "& 0xff" is not needed. But I added it in to
+ // keep findbugs happy.
if (i < 7) {
- tmpBits1 |= (byte)key.charAt(i) & 0xff;
+ tmpBits1 |= (byte) key.charAt(i) & 0xff;
tmpBits1 <<= 8;
} else {
tmpBits2 <<= 8;
- tmpBits2 |= (byte)key.charAt(i) & 0xff;
+ tmpBits2 |= (byte) key.charAt(i) & 0xff;
}
}
- tmpBits1 |= 1<<6;
+ tmpBits1 |= 1 << 6;
} else {
- for (int i=key.length()-1; i >= 0; i--) {
+ for (int i = key.length() - 1; i >= 0; i--) {
if (i < 3) {
tmpBits1 |= key.charAt(i);
tmpBits1 <<= 16;
@@ -126,20 +110,23 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// common code
protected int hash;
private HashEntry<Object, Object> next;
@SuppressWarnings("unused")
private volatile long lastModified;
- private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> lastModifiedUpdater
- = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class, "lastModified");
+ private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> lastModifiedUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class,
+ "lastModified");
private volatile Object value;
+
@Override
protected Object getValueField() {
return this.value;
}
+
@Override
protected void setValueField(Object v) {
this.value = v;
@@ -148,24 +135,29 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
protected long getLastModifiedField() {
return lastModifiedUpdater.get(this);
}
+
protected boolean compareAndSetLastModifiedField(long expectedValue, long newValue) {
return lastModifiedUpdater.compareAndSet(this, expectedValue, newValue);
}
+
/**
* @see HashEntry#getEntryHash()
*/
public int getEntryHash() {
return this.hash;
}
+
protected void setEntryHash(int v) {
this.hash = v;
}
+
/**
* @see HashEntry#getNextEntry()
*/
public HashEntry<Object, Object> getNextEntry() {
return this.next;
}
+
/**
* @see HashEntry#setNextEntry
*/
@@ -175,12 +167,13 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// disk code
protected void initialize(RegionEntryContext context, Object value) {
diskInitialize(context, value);
}
+
@Override
public int updateAsyncEntrySize(EnableLRU capacityController) {
throw new IllegalStateException("should never be called");
@@ -188,12 +181,12 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
private void diskInitialize(RegionEntryContext context, Object value) {
- DiskRecoveryStore drs = (DiskRecoveryStore)context;
+ DiskRecoveryStore drs = (DiskRecoveryStore) context;
DiskStoreImpl ds = drs.getDiskStore();
long maxOplogSize = ds.getMaxOplogSize();
- //get appropriate instance of DiskId implementation based on maxOplogSize
+ // get appropriate instance of DiskId implementation based on maxOplogSize
this.id = DiskId.createDiskId(maxOplogSize, true/* is persistence */, ds.needsLinkedList());
Helper.initialize(this, drs, value);
}
@@ -203,60 +196,60 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
*
* @since GemFire 5.1
*/
- protected DiskId id;//= new DiskId();
+ protected DiskId id;// = new DiskId();
+
public DiskId getDiskId() {
return this.id;
}
+
@Override
void setDiskId(RegionEntry old) {
- this.id = ((AbstractDiskRegionEntry)old).getDiskId();
- }
-// // inlining DiskId
-// // always have these fields
-// /**
-// * id consists of
-// * most significant
-// * 1 byte = users bits
-// * 2-8 bytes = oplog id
-// * least significant.
-// *
-// * The highest bit in the oplog id part is set to 1 if the oplog id
-// * is negative.
-// * @todo this field could be an int for an overflow only region
-// */
-// private long id;
-// /**
-// * Length of the bytes on disk.
-// * This is always set. If the value is invalid then it will be set to 0.
-// * The most significant bit is used by overflow to mark it as needing to be written.
-// */
-// protected int valueLength = 0;
-// // have intOffset or longOffset
-// // intOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile int offsetInOplog;
-// // longOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile long offsetInOplog;
-// // have overflowOnly or persistence
-// // overflowOnly
-// // no fields
-// // persistent
-// /** unique entry identifier * */
-// private long keyId;
-
-
+ this.id = ((AbstractDiskRegionEntry) old).getDiskId();
+ }
+ // // inlining DiskId
+ // // always have these fields
+ // /**
+ // * id consists of
+ // * most significant
+ // * 1 byte = users bits
+ // * 2-8 bytes = oplog id
+ // * least significant.
+ // *
+ // * The highest bit in the oplog id part is set to 1 if the oplog id
+ // * is negative.
+ // * @todo this field could be an int for an overflow only region
+ // */
+ // private long id;
+ // /**
+ // * Length of the bytes on disk.
+ // * This is always set. If the value is invalid then it will be set to 0.
+ // * The most significant bit is used by overflow to mark it as needing to be written.
+ // */
+ // protected int valueLength = 0;
+ // // have intOffset or longOffset
+ // // intOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile int offsetInOplog;
+ // // longOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile long offsetInOplog;
+ // // have overflowOnly or persistence
+ // // overflowOnly
+ // // no fields
+ // // persistent
+ // /** unique entry identifier * */
+ // private long keyId;
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// stats code
@Override
public void updateStatsForGet(boolean hit, long time) {
@@ -267,51 +260,61 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
incrementMissCount();
}
}
+
@Override
protected void setLastModifiedAndAccessedTimes(long lastModified, long lastAccessed) {
_setLastModified(lastModified);
- if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
+ if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
setLastAccessed(lastAccessed);
}
}
+
private volatile long lastAccessed;
private volatile int hitCount;
private volatile int missCount;
-
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> hitCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class, "hitCount");
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> missCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class, "missCount");
-
+
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> hitCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class,
+ "hitCount");
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapStringKey2> missCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapStringKey2.class,
+ "missCount");
+
@Override
public long getLastAccessed() throws InternalStatisticsDisabledException {
return this.lastAccessed;
}
+
private void setLastAccessed(long lastAccessed) {
this.lastAccessed = lastAccessed;
}
+
@Override
public long getHitCount() throws InternalStatisticsDisabledException {
return this.hitCount & 0xFFFFFFFFL;
}
+
@Override
public long getMissCount() throws InternalStatisticsDisabledException {
return this.missCount & 0xFFFFFFFFL;
}
+
private void incrementHitCount() {
hitCountUpdater.incrementAndGet(this);
}
+
private void incrementMissCount() {
missCountUpdater.incrementAndGet(this);
}
+
@Override
public void resetCounts() throws InternalStatisticsDisabledException {
- hitCountUpdater.set(this,0);
- missCountUpdater.set(this,0);
+ hitCountUpdater.set(this, 0);
+ missCountUpdater.set(this, 0);
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public void txDidDestroy(long currTime) {
setLastModified(currTime);
@@ -319,15 +322,16 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
this.hitCount = 0;
this.missCount = 0;
}
+
@Override
public boolean hasStats() {
return true;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// versioned code
private VersionSource memberID;
private short entryVersionLowBytes;
@@ -339,16 +343,16 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
public int getEntryVersion() {
return ((entryVersionHighByte << 16) & 0xFF0000) | (entryVersionLowBytes & 0xFFFF);
}
-
+
public long getRegionVersion() {
- return (((long)regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
+ return (((long) regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
}
-
-
+
+
public long getVersionTimeStamp() {
return getLastModified();
}
-
+
public void setVersionTimeStamp(long time) {
setLastModified(time);
}
@@ -356,17 +360,18 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
public VersionSource getMemberID() {
return this.memberID;
}
+
public int getDistributedSystemId() {
return this.distributedSystemId;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public void setVersions(VersionTag tag) {
this.memberID = tag.getMemberID();
int eVersion = tag.getEntryVersion();
- this.entryVersionLowBytes = (short)(eVersion & 0xffff);
- this.entryVersionHighByte = (byte)((eVersion & 0xff0000) >> 16);
+ this.entryVersionLowBytes = (short) (eVersion & 0xffff);
+ this.entryVersionHighByte = (byte) ((eVersion & 0xff0000) >> 16);
this.regionVersionHighBytes = tag.getRegionVersionHighBytes();
this.regionVersionLowBytes = tag.getRegionVersionLowBytes();
if (!(tag.isGatewayTag()) && this.distributedSystemId == tag.getDistributedSystemId()) {
@@ -378,11 +383,11 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
} else {
setVersionTimeStamp(tag.getVersionTimeStamp());
}
- this.distributedSystemId = (byte)(tag.getDistributedSystemId() & 0xff);
+ this.distributedSystemId = (byte) (tag.getDistributedSystemId() & 0xff);
}
public void setMemberID(VersionSource memberID) {
- this.memberID = memberID;
+ this.memberID = memberID;
}
@Override
@@ -391,7 +396,7 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public VersionTag asVersionTag() {
VersionTag tag = VersionTag.create(memberID);
tag.setEntryVersion(getEntryVersion());
@@ -401,9 +406,9 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
return tag;
}
- public void processVersionTag(LocalRegion r, VersionTag tag,
- boolean isTombstoneFromGII, boolean hasDelta,
- VersionSource thisVM, InternalDistributedMember sender, boolean checkForConflicts) {
+ public void processVersionTag(LocalRegion r, VersionTag tag, boolean isTombstoneFromGII,
+ boolean hasDelta, VersionSource thisVM, InternalDistributedMember sender,
+ boolean checkForConflicts) {
basicProcessVersionTag(r, tag, isTombstoneFromGII, hasDelta, thisVM, sender, checkForConflicts);
}
@@ -418,15 +423,15 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
public short getRegionVersionHighBytes() {
return this.regionVersionHighBytes;
}
-
+
/** get rvv internal low bytes. Used by region entries for transferring to storage */
public int getRegionVersionLowBytes() {
return this.regionVersionLowBytes;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// key code
// strlen is encoded in lowest 6 bits (max strlen is 63)
@@ -435,14 +440,17 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
private final long bits1;
// bits2 encodes character data
private final long bits2;
+
private int getKeyLength() {
return (int) (this.bits1 & 0x003fL);
}
+
private int getEncoding() {
// 0 means encoded as char
// 1 means encoded as bytes that are all <= 0x7f;
return (int) (this.bits1 >> 6) & 0x03;
}
+
@Override
public Object getKey() {
int keylen = getKeyLength();
@@ -450,7 +458,7 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
long tmpBits1 = this.bits1;
long tmpBits2 = this.bits2;
if (getEncoding() == 1) {
- for (int i=0; i < keylen; i++) {
+ for (int i = 0; i < keylen; i++) {
if (i < 7) {
tmpBits1 >>= 8;
chars[i] = (char) (tmpBits1 & 0x00ff);
@@ -460,10 +468,10 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
}
}
} else {
- for (int i=0; i < keylen; i++) {
+ for (int i = 0; i < keylen; i++) {
if (i < 3) {
tmpBits1 >>= 16;
- chars[i] = (char) (tmpBits1 & 0x00FFff);
+ chars[i] = (char) (tmpBits1 & 0x00FFff);
} else {
chars[i] = (char) (tmpBits2 & 0x00FFff);
tmpBits2 >>= 16;
@@ -474,17 +482,17 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public boolean isKeyEqual(Object k) {
if (k instanceof String) {
- String str = (String)k;
+ String str = (String) k;
int keylen = getKeyLength();
if (str.length() == keylen) {
long tmpBits1 = this.bits1;
long tmpBits2 = this.bits2;
if (getEncoding() == 1) {
- for (int i=0; i < keylen; i++) {
+ for (int i = 0; i < keylen; i++) {
char c;
if (i < 7) {
tmpBits1 >>= 8;
@@ -498,7 +506,7 @@ public class VersionedStatsDiskRegionEntryHeapStringKey2 extends VersionedStatsD
}
}
} else {
- for (int i=0; i < keylen; i++) {
+ for (int i = 0; i < keylen; i++) {
char c;
if (i < 3) {
tmpBits1 >>= 16;
http://git-wip-us.apache.org/repos/asf/geode/blob/5adb681a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
index 449195c..bba03ae 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryHeapUUIDKey.java
@@ -20,38 +20,23 @@ package org.apache.geode.internal.cache;
import java.util.UUID;
-
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.geode.cache.EntryEvent;
-
import org.apache.geode.internal.cache.lru.EnableLRU;
-
import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
-
import org.apache.geode.internal.InternalStatisticsDisabledException;
-
-
-
-
-
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.versions.VersionSource;
import org.apache.geode.internal.cache.versions.VersionStamp;
import org.apache.geode.internal.cache.versions.VersionTag;
-
-
-
-
-
-
import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.HashEntry;
// macros whose definition changes this class:
@@ -73,7 +58,7 @@ import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.Ha
* ./dev-tools/generateRegionEntryClasses.sh (it must be run from the top level directory).
*/
public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDiskRegionEntryHeap {
- public VersionedStatsDiskRegionEntryHeapUUIDKey (RegionEntryContext context, UUID key,
+ public VersionedStatsDiskRegionEntryHeapUUIDKey(RegionEntryContext context, UUID key,
@@ -81,45 +66,43 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
- ) {
- super(context,
+ ) {
+ super(context,
- (value instanceof RecoveredEntry ? null : value)
+ (value instanceof RecoveredEntry ? null : value)
- );
+ );
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
initialize(context, value);
-
-
-
-
-
this.keyMostSigBits = key.getMostSignificantBits();
this.keyLeastSigBits = key.getLeastSignificantBits();
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// common code
protected int hash;
private HashEntry<Object, Object> next;
@SuppressWarnings("unused")
private volatile long lastModified;
- private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> lastModifiedUpdater
- = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class, "lastModified");
+ private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> lastModifiedUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class,
+ "lastModified");
private volatile Object value;
+
@Override
protected Object getValueField() {
return this.value;
}
+
@Override
protected void setValueField(Object v) {
this.value = v;
@@ -128,24 +111,29 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
protected long getLastModifiedField() {
return lastModifiedUpdater.get(this);
}
+
protected boolean compareAndSetLastModifiedField(long expectedValue, long newValue) {
return lastModifiedUpdater.compareAndSet(this, expectedValue, newValue);
}
+
/**
* @see HashEntry#getEntryHash()
*/
public int getEntryHash() {
return this.hash;
}
+
protected void setEntryHash(int v) {
this.hash = v;
}
+
/**
* @see HashEntry#getNextEntry()
*/
public HashEntry<Object, Object> getNextEntry() {
return this.next;
}
+
/**
* @see HashEntry#setNextEntry
*/
@@ -155,12 +143,13 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// disk code
protected void initialize(RegionEntryContext context, Object value) {
diskInitialize(context, value);
}
+
@Override
public int updateAsyncEntrySize(EnableLRU capacityController) {
throw new IllegalStateException("should never be called");
@@ -168,12 +157,12 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
private void diskInitialize(RegionEntryContext context, Object value) {
- DiskRecoveryStore drs = (DiskRecoveryStore)context;
+ DiskRecoveryStore drs = (DiskRecoveryStore) context;
DiskStoreImpl ds = drs.getDiskStore();
long maxOplogSize = ds.getMaxOplogSize();
- //get appropriate instance of DiskId implementation based on maxOplogSize
+ // get appropriate instance of DiskId implementation based on maxOplogSize
this.id = DiskId.createDiskId(maxOplogSize, true/* is persistence */, ds.needsLinkedList());
Helper.initialize(this, drs, value);
}
@@ -183,60 +172,60 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
*
* @since GemFire 5.1
*/
- protected DiskId id;//= new DiskId();
+ protected DiskId id;// = new DiskId();
+
public DiskId getDiskId() {
return this.id;
}
+
@Override
void setDiskId(RegionEntry old) {
- this.id = ((AbstractDiskRegionEntry)old).getDiskId();
- }
-// // inlining DiskId
-// // always have these fields
-// /**
-// * id consists of
-// * most significant
-// * 1 byte = users bits
-// * 2-8 bytes = oplog id
-// * least significant.
-// *
-// * The highest bit in the oplog id part is set to 1 if the oplog id
-// * is negative.
-// * @todo this field could be an int for an overflow only region
-// */
-// private long id;
-// /**
-// * Length of the bytes on disk.
-// * This is always set. If the value is invalid then it will be set to 0.
-// * The most significant bit is used by overflow to mark it as needing to be written.
-// */
-// protected int valueLength = 0;
-// // have intOffset or longOffset
-// // intOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile int offsetInOplog;
-// // longOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile long offsetInOplog;
-// // have overflowOnly or persistence
-// // overflowOnly
-// // no fields
-// // persistent
-// /** unique entry identifier * */
-// private long keyId;
-
-
+ this.id = ((AbstractDiskRegionEntry) old).getDiskId();
+ }
+ // // inlining DiskId
+ // // always have these fields
+ // /**
+ // * id consists of
+ // * most significant
+ // * 1 byte = users bits
+ // * 2-8 bytes = oplog id
+ // * least significant.
+ // *
+ // * The highest bit in the oplog id part is set to 1 if the oplog id
+ // * is negative.
+ // * @todo this field could be an int for an overflow only region
+ // */
+ // private long id;
+ // /**
+ // * Length of the bytes on disk.
+ // * This is always set. If the value is invalid then it will be set to 0.
+ // * The most significant bit is used by overflow to mark it as needing to be written.
+ // */
+ // protected int valueLength = 0;
+ // // have intOffset or longOffset
+ // // intOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile int offsetInOplog;
+ // // longOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile long offsetInOplog;
+ // // have overflowOnly or persistence
+ // // overflowOnly
+ // // no fields
+ // // persistent
+ // /** unique entry identifier * */
+ // private long keyId;
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// stats code
@Override
public void updateStatsForGet(boolean hit, long time) {
@@ -247,51 +236,61 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
incrementMissCount();
}
}
+
@Override
protected void setLastModifiedAndAccessedTimes(long lastModified, long lastAccessed) {
_setLastModified(lastModified);
- if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
+ if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
setLastAccessed(lastAccessed);
}
}
+
private volatile long lastAccessed;
private volatile int hitCount;
private volatile int missCount;
-
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> hitCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class, "hitCount");
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> missCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class, "missCount");
-
+
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> hitCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class,
+ "hitCount");
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryHeapUUIDKey> missCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryHeapUUIDKey.class,
+ "missCount");
+
@Override
public long getLastAccessed() throws InternalStatisticsDisabledException {
return this.lastAccessed;
}
+
private void setLastAccessed(long lastAccessed) {
this.lastAccessed = lastAccessed;
}
+
@Override
public long getHitCount() throws InternalStatisticsDisabledException {
return this.hitCount & 0xFFFFFFFFL;
}
+
@Override
public long getMissCount() throws InternalStatisticsDisabledException {
return this.missCount & 0xFFFFFFFFL;
}
+
private void incrementHitCount() {
hitCountUpdater.incrementAndGet(this);
}
+
private void incrementMissCount() {
missCountUpdater.incrementAndGet(this);
}
+
@Override
public void resetCounts() throws InternalStatisticsDisabledException {
- hitCountUpdater.set(this,0);
- missCountUpdater.set(this,0);
+ hitCountUpdater.set(this, 0);
+ missCountUpdater.set(this, 0);
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public void txDidDestroy(long currTime) {
setLastModified(currTime);
@@ -299,15 +298,16 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
this.hitCount = 0;
this.missCount = 0;
}
+
@Override
public boolean hasStats() {
return true;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// versioned code
private VersionSource memberID;
private short entryVersionLowBytes;
@@ -319,16 +319,16 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
public int getEntryVersion() {
return ((entryVersionHighByte << 16) & 0xFF0000) | (entryVersionLowBytes & 0xFFFF);
}
-
+
public long getRegionVersion() {
- return (((long)regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
+ return (((long) regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
}
-
-
+
+
public long getVersionTimeStamp() {
return getLastModified();
}
-
+
public void setVersionTimeStamp(long time) {
setLastModified(time);
}
@@ -336,17 +336,18 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
public VersionSource getMemberID() {
return this.memberID;
}
+
public int getDistributedSystemId() {
return this.distributedSystemId;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public void setVersions(VersionTag tag) {
this.memberID = tag.getMemberID();
int eVersion = tag.getEntryVersion();
- this.entryVersionLowBytes = (short)(eVersion & 0xffff);
- this.entryVersionHighByte = (byte)((eVersion & 0xff0000) >> 16);
+ this.entryVersionLowBytes = (short) (eVersion & 0xffff);
+ this.entryVersionHighByte = (byte) ((eVersion & 0xff0000) >> 16);
this.regionVersionHighBytes = tag.getRegionVersionHighBytes();
this.regionVersionLowBytes = tag.getRegionVersionLowBytes();
if (!(tag.isGatewayTag()) && this.distributedSystemId == tag.getDistributedSystemId()) {
@@ -358,11 +359,11 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
} else {
setVersionTimeStamp(tag.getVersionTimeStamp());
}
- this.distributedSystemId = (byte)(tag.getDistributedSystemId() & 0xff);
+ this.distributedSystemId = (byte) (tag.getDistributedSystemId() & 0xff);
}
public void setMemberID(VersionSource memberID) {
- this.memberID = memberID;
+ this.memberID = memberID;
}
@Override
@@ -371,7 +372,7 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public VersionTag asVersionTag() {
VersionTag tag = VersionTag.create(memberID);
tag.setEntryVersion(getEntryVersion());
@@ -381,9 +382,9 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
return tag;
}
- public void processVersionTag(LocalRegion r, VersionTag tag,
- boolean isTombstoneFromGII, boolean hasDelta,
- VersionSource thisVM, InternalDistributedMember sender, boolean checkForConflicts) {
+ public void processVersionTag(LocalRegion r, VersionTag tag, boolean isTombstoneFromGII,
+ boolean hasDelta, VersionSource thisVM, InternalDistributedMember sender,
+ boolean checkForConflicts) {
basicProcessVersionTag(r, tag, isTombstoneFromGII, hasDelta, thisVM, sender, checkForConflicts);
}
@@ -398,23 +399,25 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
public short getRegionVersionHighBytes() {
return this.regionVersionHighBytes;
}
-
+
/** get rvv internal low bytes. Used by region entries for transferring to storage */
public int getRegionVersionLowBytes() {
return this.regionVersionLowBytes;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// key code
private final long keyMostSigBits;
private final long keyLeastSigBits;
+
@Override
public Object getKey() {
return new UUID(this.keyMostSigBits, this.keyLeastSigBits);
}
+
@Override
public boolean isKeyEqual(Object k) {
if (k instanceof UUID) {
@@ -424,7 +427,7 @@ public class VersionedStatsDiskRegionEntryHeapUUIDKey extends VersionedStatsDisk
}
return false;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5adb681a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
index f3276ae..9013a9d 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapIntKey.java
@@ -18,35 +18,23 @@ package org.apache.geode.internal.cache;
-
-
-
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.geode.cache.EntryEvent;
-
import org.apache.geode.internal.cache.lru.EnableLRU;
-
import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
-
import org.apache.geode.internal.InternalStatisticsDisabledException;
-
-
-
-
-
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.versions.VersionSource;
import org.apache.geode.internal.cache.versions.VersionStamp;
import org.apache.geode.internal.cache.versions.VersionTag;
-
import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
import org.apache.geode.internal.offheap.annotations.Released;
import org.apache.geode.internal.offheap.annotations.Retained;
@@ -72,8 +60,9 @@ import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.Ha
* Do not modify this class. It was generated. Instead modify LeafRegionEntry.cpp and then run
* ./dev-tools/generateRegionEntryClasses.sh (it must be run from the top level directory).
*/
-public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDiskRegionEntryOffHeap {
- public VersionedStatsDiskRegionEntryOffHeapIntKey (RegionEntryContext context, int key,
+public class VersionedStatsDiskRegionEntryOffHeapIntKey
+ extends VersionedStatsDiskRegionEntryOffHeap {
+ public VersionedStatsDiskRegionEntryOffHeapIntKey(RegionEntryContext context, int key,
@Retained
@@ -81,55 +70,59 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
- ) {
- super(context,
+ ) {
+ super(context,
- (value instanceof RecoveredEntry ? null : value)
+ (value instanceof RecoveredEntry ? null : value)
- );
+ );
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
initialize(context, value);
-
this.key = key;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// common code
protected int hash;
private HashEntry<Object, Object> next;
@SuppressWarnings("unused")
private volatile long lastModified;
- private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> lastModifiedUpdater
- = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class, "lastModified");
+ private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> lastModifiedUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class,
+ "lastModified");
/**
* All access done using ohAddrUpdater so it is used even though the compiler can not tell it is.
*/
@SuppressWarnings("unused")
- @Retained @Released private volatile long ohAddress;
+ @Retained
+ @Released
+ private volatile long ohAddress;
/**
- * I needed to add this because I wanted clear to call setValue which normally can only be called while the re is synced.
- * But if I sync in that code it causes a lock ordering deadlock with the disk regions because they also get a rw lock in clear.
- * Some hardware platforms do not support CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync
- * on the re and we will once again be deadlocked.
- * I don't know if we support any of the hardware platforms that do not have a 64bit CAS. If we do then we can expect deadlocks
- * on disk regions.
+ * I needed to add this because I wanted clear to call setValue which normally can only be called
+ * while the re is synced. But if I sync in that code it causes a lock ordering deadlock with the
+ * disk regions because they also get a rw lock in clear. Some hardware platforms do not support
+ * CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync on the
+ * re and we will once again be deadlocked. I don't know if we support any of the hardware
+ * platforms that do not have a 64bit CAS. If we do then we can expect deadlocks on disk regions.
*/
- private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> ohAddrUpdater = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class, "ohAddress");
-
+ private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> ohAddrUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class,
+ "ohAddress");
+
@Override
public Token getValueAsToken() {
return OffHeapRegionEntryHelper.getValueAsToken(this);
}
-
+
@Override
protected Object getValueField() {
return OffHeapRegionEntryHelper._getValue(this);
@@ -145,6 +138,7 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
OffHeapRegionEntryHelper.setValue(this, v);
}
+
@Override
@Retained
@@ -162,7 +156,7 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
public boolean setAddress(long expectedAddr, long newAddr) {
return ohAddrUpdater.compareAndSet(this, expectedAddr, newAddr);
}
-
+
@Override
@Released
@@ -170,36 +164,41 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
public void release() {
OffHeapRegionEntryHelper.releaseEntry(this);
}
-
+
@Override
public void returnToPool() {
// Deadcoded for now; never was working
-// if (this instanceof VMThinRegionEntryLongKey) {
-// factory.returnToPool((VMThinRegionEntryLongKey)this);
-// }
+ // if (this instanceof VMThinRegionEntryLongKey) {
+ // factory.returnToPool((VMThinRegionEntryLongKey)this);
+ // }
}
protected long getLastModifiedField() {
return lastModifiedUpdater.get(this);
}
+
protected boolean compareAndSetLastModifiedField(long expectedValue, long newValue) {
return lastModifiedUpdater.compareAndSet(this, expectedValue, newValue);
}
+
/**
* @see HashEntry#getEntryHash()
*/
public int getEntryHash() {
return this.hash;
}
+
protected void setEntryHash(int v) {
this.hash = v;
}
+
/**
* @see HashEntry#getNextEntry()
*/
public HashEntry<Object, Object> getNextEntry() {
return this.next;
}
+
/**
* @see HashEntry#setNextEntry
*/
@@ -209,12 +208,13 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// disk code
protected void initialize(RegionEntryContext context, Object value) {
diskInitialize(context, value);
}
+
@Override
public int updateAsyncEntrySize(EnableLRU capacityController) {
throw new IllegalStateException("should never be called");
@@ -222,12 +222,12 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
private void diskInitialize(RegionEntryContext context, Object value) {
- DiskRecoveryStore drs = (DiskRecoveryStore)context;
+ DiskRecoveryStore drs = (DiskRecoveryStore) context;
DiskStoreImpl ds = drs.getDiskStore();
long maxOplogSize = ds.getMaxOplogSize();
- //get appropriate instance of DiskId implementation based on maxOplogSize
+ // get appropriate instance of DiskId implementation based on maxOplogSize
this.id = DiskId.createDiskId(maxOplogSize, true/* is persistence */, ds.needsLinkedList());
Helper.initialize(this, drs, value);
}
@@ -237,60 +237,60 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
*
* @since GemFire 5.1
*/
- protected DiskId id;//= new DiskId();
+ protected DiskId id;// = new DiskId();
+
public DiskId getDiskId() {
return this.id;
}
+
@Override
void setDiskId(RegionEntry old) {
- this.id = ((AbstractDiskRegionEntry)old).getDiskId();
- }
-// // inlining DiskId
-// // always have these fields
-// /**
-// * id consists of
-// * most significant
-// * 1 byte = users bits
-// * 2-8 bytes = oplog id
-// * least significant.
-// *
-// * The highest bit in the oplog id part is set to 1 if the oplog id
-// * is negative.
-// * @todo this field could be an int for an overflow only region
-// */
-// private long id;
-// /**
-// * Length of the bytes on disk.
-// * This is always set. If the value is invalid then it will be set to 0.
-// * The most significant bit is used by overflow to mark it as needing to be written.
-// */
-// protected int valueLength = 0;
-// // have intOffset or longOffset
-// // intOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile int offsetInOplog;
-// // longOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile long offsetInOplog;
-// // have overflowOnly or persistence
-// // overflowOnly
-// // no fields
-// // persistent
-// /** unique entry identifier * */
-// private long keyId;
-
-
+ this.id = ((AbstractDiskRegionEntry) old).getDiskId();
+ }
+ // // inlining DiskId
+ // // always have these fields
+ // /**
+ // * id consists of
+ // * most significant
+ // * 1 byte = users bits
+ // * 2-8 bytes = oplog id
+ // * least significant.
+ // *
+ // * The highest bit in the oplog id part is set to 1 if the oplog id
+ // * is negative.
+ // * @todo this field could be an int for an overflow only region
+ // */
+ // private long id;
+ // /**
+ // * Length of the bytes on disk.
+ // * This is always set. If the value is invalid then it will be set to 0.
+ // * The most significant bit is used by overflow to mark it as needing to be written.
+ // */
+ // protected int valueLength = 0;
+ // // have intOffset or longOffset
+ // // intOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile int offsetInOplog;
+ // // longOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile long offsetInOplog;
+ // // have overflowOnly or persistence
+ // // overflowOnly
+ // // no fields
+ // // persistent
+ // /** unique entry identifier * */
+ // private long keyId;
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// stats code
@Override
public void updateStatsForGet(boolean hit, long time) {
@@ -301,51 +301,61 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
incrementMissCount();
}
}
+
@Override
protected void setLastModifiedAndAccessedTimes(long lastModified, long lastAccessed) {
_setLastModified(lastModified);
- if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
+ if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
setLastAccessed(lastAccessed);
}
}
+
private volatile long lastAccessed;
private volatile int hitCount;
private volatile int missCount;
-
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> hitCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class, "hitCount");
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> missCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class, "missCount");
-
+
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> hitCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class,
+ "hitCount");
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapIntKey> missCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapIntKey.class,
+ "missCount");
+
@Override
public long getLastAccessed() throws InternalStatisticsDisabledException {
return this.lastAccessed;
}
+
private void setLastAccessed(long lastAccessed) {
this.lastAccessed = lastAccessed;
}
+
@Override
public long getHitCount() throws InternalStatisticsDisabledException {
return this.hitCount & 0xFFFFFFFFL;
}
+
@Override
public long getMissCount() throws InternalStatisticsDisabledException {
return this.missCount & 0xFFFFFFFFL;
}
+
private void incrementHitCount() {
hitCountUpdater.incrementAndGet(this);
}
+
private void incrementMissCount() {
missCountUpdater.incrementAndGet(this);
}
+
@Override
public void resetCounts() throws InternalStatisticsDisabledException {
- hitCountUpdater.set(this,0);
- missCountUpdater.set(this,0);
+ hitCountUpdater.set(this, 0);
+ missCountUpdater.set(this, 0);
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public void txDidDestroy(long currTime) {
setLastModified(currTime);
@@ -353,15 +363,16 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
this.hitCount = 0;
this.missCount = 0;
}
+
@Override
public boolean hasStats() {
return true;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// versioned code
private VersionSource memberID;
private short entryVersionLowBytes;
@@ -373,16 +384,16 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
public int getEntryVersion() {
return ((entryVersionHighByte << 16) & 0xFF0000) | (entryVersionLowBytes & 0xFFFF);
}
-
+
public long getRegionVersion() {
- return (((long)regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
+ return (((long) regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
}
-
-
+
+
public long getVersionTimeStamp() {
return getLastModified();
}
-
+
public void setVersionTimeStamp(long time) {
setLastModified(time);
}
@@ -390,17 +401,18 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
public VersionSource getMemberID() {
return this.memberID;
}
+
public int getDistributedSystemId() {
return this.distributedSystemId;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public void setVersions(VersionTag tag) {
this.memberID = tag.getMemberID();
int eVersion = tag.getEntryVersion();
- this.entryVersionLowBytes = (short)(eVersion & 0xffff);
- this.entryVersionHighByte = (byte)((eVersion & 0xff0000) >> 16);
+ this.entryVersionLowBytes = (short) (eVersion & 0xffff);
+ this.entryVersionHighByte = (byte) ((eVersion & 0xff0000) >> 16);
this.regionVersionHighBytes = tag.getRegionVersionHighBytes();
this.regionVersionLowBytes = tag.getRegionVersionLowBytes();
if (!(tag.isGatewayTag()) && this.distributedSystemId == tag.getDistributedSystemId()) {
@@ -412,11 +424,11 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
} else {
setVersionTimeStamp(tag.getVersionTimeStamp());
}
- this.distributedSystemId = (byte)(tag.getDistributedSystemId() & 0xff);
+ this.distributedSystemId = (byte) (tag.getDistributedSystemId() & 0xff);
}
public void setMemberID(VersionSource memberID) {
- this.memberID = memberID;
+ this.memberID = memberID;
}
@Override
@@ -425,7 +437,7 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public VersionTag asVersionTag() {
VersionTag tag = VersionTag.create(memberID);
tag.setEntryVersion(getEntryVersion());
@@ -435,9 +447,9 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
return tag;
}
- public void processVersionTag(LocalRegion r, VersionTag tag,
- boolean isTombstoneFromGII, boolean hasDelta,
- VersionSource thisVM, InternalDistributedMember sender, boolean checkForConflicts) {
+ public void processVersionTag(LocalRegion r, VersionTag tag, boolean isTombstoneFromGII,
+ boolean hasDelta, VersionSource thisVM, InternalDistributedMember sender,
+ boolean checkForConflicts) {
basicProcessVersionTag(r, tag, isTombstoneFromGII, hasDelta, thisVM, sender, checkForConflicts);
}
@@ -452,29 +464,26 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
public short getRegionVersionHighBytes() {
return this.regionVersionHighBytes;
}
-
+
/** get rvv internal low bytes. Used by region entries for transferring to storage */
public int getRegionVersionLowBytes() {
return this.regionVersionLowBytes;
}
-
- // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
- // key code
-
-
-
+ // DO NOT modify this class. It was generated from LeafRegionEntry.cpp
+ // key code
private final int key;
+
@Override
public Object getKey() {
return this.key;
}
+
@Override
public boolean isKeyEqual(Object k) {
if (k instanceof Integer) {
@@ -482,7 +491,7 @@ public class VersionedStatsDiskRegionEntryOffHeapIntKey extends VersionedStatsDi
}
return false;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5adb681a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
index 9e9b92e..2a86311 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapLongKey.java
@@ -18,35 +18,23 @@ package org.apache.geode.internal.cache;
-
-
-
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.geode.cache.EntryEvent;
-
import org.apache.geode.internal.cache.lru.EnableLRU;
-
import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
-
import org.apache.geode.internal.InternalStatisticsDisabledException;
-
-
-
-
-
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.versions.VersionSource;
import org.apache.geode.internal.cache.versions.VersionStamp;
import org.apache.geode.internal.cache.versions.VersionTag;
-
import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
import org.apache.geode.internal.offheap.annotations.Released;
import org.apache.geode.internal.offheap.annotations.Retained;
@@ -72,8 +60,9 @@ import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.Ha
* Do not modify this class. It was generated. Instead modify LeafRegionEntry.cpp and then run
* ./dev-tools/generateRegionEntryClasses.sh (it must be run from the top level directory).
*/
-public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsDiskRegionEntryOffHeap {
- public VersionedStatsDiskRegionEntryOffHeapLongKey (RegionEntryContext context, long key,
+public class VersionedStatsDiskRegionEntryOffHeapLongKey
+ extends VersionedStatsDiskRegionEntryOffHeap {
+ public VersionedStatsDiskRegionEntryOffHeapLongKey(RegionEntryContext context, long key,
@Retained
@@ -81,57 +70,59 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
- ) {
- super(context,
+ ) {
+ super(context,
- (value instanceof RecoveredEntry ? null : value)
+ (value instanceof RecoveredEntry ? null : value)
- );
+ );
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
initialize(context, value);
-
-
-
this.key = key;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// common code
protected int hash;
private HashEntry<Object, Object> next;
@SuppressWarnings("unused")
private volatile long lastModified;
- private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> lastModifiedUpdater
- = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class, "lastModified");
+ private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> lastModifiedUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class,
+ "lastModified");
/**
* All access done using ohAddrUpdater so it is used even though the compiler can not tell it is.
*/
@SuppressWarnings("unused")
- @Retained @Released private volatile long ohAddress;
+ @Retained
+ @Released
+ private volatile long ohAddress;
/**
- * I needed to add this because I wanted clear to call setValue which normally can only be called while the re is synced.
- * But if I sync in that code it causes a lock ordering deadlock with the disk regions because they also get a rw lock in clear.
- * Some hardware platforms do not support CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync
- * on the re and we will once again be deadlocked.
- * I don't know if we support any of the hardware platforms that do not have a 64bit CAS. If we do then we can expect deadlocks
- * on disk regions.
+ * I needed to add this because I wanted clear to call setValue which normally can only be called
+ * while the re is synced. But if I sync in that code it causes a lock ordering deadlock with the
+ * disk regions because they also get a rw lock in clear. Some hardware platforms do not support
+ * CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync on the
+ * re and we will once again be deadlocked. I don't know if we support any of the hardware
+ * platforms that do not have a 64bit CAS. If we do then we can expect deadlocks on disk regions.
*/
- private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> ohAddrUpdater = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class, "ohAddress");
-
+ private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> ohAddrUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class,
+ "ohAddress");
+
@Override
public Token getValueAsToken() {
return OffHeapRegionEntryHelper.getValueAsToken(this);
}
-
+
@Override
protected Object getValueField() {
return OffHeapRegionEntryHelper._getValue(this);
@@ -147,6 +138,7 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
OffHeapRegionEntryHelper.setValue(this, v);
}
+
@Override
@Retained
@@ -164,7 +156,7 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
public boolean setAddress(long expectedAddr, long newAddr) {
return ohAddrUpdater.compareAndSet(this, expectedAddr, newAddr);
}
-
+
@Override
@Released
@@ -172,36 +164,41 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
public void release() {
OffHeapRegionEntryHelper.releaseEntry(this);
}
-
+
@Override
public void returnToPool() {
// Deadcoded for now; never was working
-// if (this instanceof VMThinRegionEntryLongKey) {
-// factory.returnToPool((VMThinRegionEntryLongKey)this);
-// }
+ // if (this instanceof VMThinRegionEntryLongKey) {
+ // factory.returnToPool((VMThinRegionEntryLongKey)this);
+ // }
}
protected long getLastModifiedField() {
return lastModifiedUpdater.get(this);
}
+
protected boolean compareAndSetLastModifiedField(long expectedValue, long newValue) {
return lastModifiedUpdater.compareAndSet(this, expectedValue, newValue);
}
+
/**
* @see HashEntry#getEntryHash()
*/
public int getEntryHash() {
return this.hash;
}
+
protected void setEntryHash(int v) {
this.hash = v;
}
+
/**
* @see HashEntry#getNextEntry()
*/
public HashEntry<Object, Object> getNextEntry() {
return this.next;
}
+
/**
* @see HashEntry#setNextEntry
*/
@@ -211,12 +208,13 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// disk code
protected void initialize(RegionEntryContext context, Object value) {
diskInitialize(context, value);
}
+
@Override
public int updateAsyncEntrySize(EnableLRU capacityController) {
throw new IllegalStateException("should never be called");
@@ -224,12 +222,12 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
private void diskInitialize(RegionEntryContext context, Object value) {
- DiskRecoveryStore drs = (DiskRecoveryStore)context;
+ DiskRecoveryStore drs = (DiskRecoveryStore) context;
DiskStoreImpl ds = drs.getDiskStore();
long maxOplogSize = ds.getMaxOplogSize();
- //get appropriate instance of DiskId implementation based on maxOplogSize
+ // get appropriate instance of DiskId implementation based on maxOplogSize
this.id = DiskId.createDiskId(maxOplogSize, true/* is persistence */, ds.needsLinkedList());
Helper.initialize(this, drs, value);
}
@@ -239,60 +237,60 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
*
* @since GemFire 5.1
*/
- protected DiskId id;//= new DiskId();
+ protected DiskId id;// = new DiskId();
+
public DiskId getDiskId() {
return this.id;
}
+
@Override
void setDiskId(RegionEntry old) {
- this.id = ((AbstractDiskRegionEntry)old).getDiskId();
- }
-// // inlining DiskId
-// // always have these fields
-// /**
-// * id consists of
-// * most significant
-// * 1 byte = users bits
-// * 2-8 bytes = oplog id
-// * least significant.
-// *
-// * The highest bit in the oplog id part is set to 1 if the oplog id
-// * is negative.
-// * @todo this field could be an int for an overflow only region
-// */
-// private long id;
-// /**
-// * Length of the bytes on disk.
-// * This is always set. If the value is invalid then it will be set to 0.
-// * The most significant bit is used by overflow to mark it as needing to be written.
-// */
-// protected int valueLength = 0;
-// // have intOffset or longOffset
-// // intOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile int offsetInOplog;
-// // longOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile long offsetInOplog;
-// // have overflowOnly or persistence
-// // overflowOnly
-// // no fields
-// // persistent
-// /** unique entry identifier * */
-// private long keyId;
-
-
+ this.id = ((AbstractDiskRegionEntry) old).getDiskId();
+ }
+ // // inlining DiskId
+ // // always have these fields
+ // /**
+ // * id consists of
+ // * most significant
+ // * 1 byte = users bits
+ // * 2-8 bytes = oplog id
+ // * least significant.
+ // *
+ // * The highest bit in the oplog id part is set to 1 if the oplog id
+ // * is negative.
+ // * @todo this field could be an int for an overflow only region
+ // */
+ // private long id;
+ // /**
+ // * Length of the bytes on disk.
+ // * This is always set. If the value is invalid then it will be set to 0.
+ // * The most significant bit is used by overflow to mark it as needing to be written.
+ // */
+ // protected int valueLength = 0;
+ // // have intOffset or longOffset
+ // // intOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile int offsetInOplog;
+ // // longOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile long offsetInOplog;
+ // // have overflowOnly or persistence
+ // // overflowOnly
+ // // no fields
+ // // persistent
+ // /** unique entry identifier * */
+ // private long keyId;
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// stats code
@Override
public void updateStatsForGet(boolean hit, long time) {
@@ -303,51 +301,61 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
incrementMissCount();
}
}
+
@Override
protected void setLastModifiedAndAccessedTimes(long lastModified, long lastAccessed) {
_setLastModified(lastModified);
- if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
+ if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
setLastAccessed(lastAccessed);
}
}
+
private volatile long lastAccessed;
private volatile int hitCount;
private volatile int missCount;
-
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> hitCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class, "hitCount");
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> missCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class, "missCount");
-
+
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> hitCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class,
+ "hitCount");
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapLongKey> missCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapLongKey.class,
+ "missCount");
+
@Override
public long getLastAccessed() throws InternalStatisticsDisabledException {
return this.lastAccessed;
}
+
private void setLastAccessed(long lastAccessed) {
this.lastAccessed = lastAccessed;
}
+
@Override
public long getHitCount() throws InternalStatisticsDisabledException {
return this.hitCount & 0xFFFFFFFFL;
}
+
@Override
public long getMissCount() throws InternalStatisticsDisabledException {
return this.missCount & 0xFFFFFFFFL;
}
+
private void incrementHitCount() {
hitCountUpdater.incrementAndGet(this);
}
+
private void incrementMissCount() {
missCountUpdater.incrementAndGet(this);
}
+
@Override
public void resetCounts() throws InternalStatisticsDisabledException {
- hitCountUpdater.set(this,0);
- missCountUpdater.set(this,0);
+ hitCountUpdater.set(this, 0);
+ missCountUpdater.set(this, 0);
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public void txDidDestroy(long currTime) {
setLastModified(currTime);
@@ -355,15 +363,16 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
this.hitCount = 0;
this.missCount = 0;
}
+
@Override
public boolean hasStats() {
return true;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// versioned code
private VersionSource memberID;
private short entryVersionLowBytes;
@@ -375,16 +384,16 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
public int getEntryVersion() {
return ((entryVersionHighByte << 16) & 0xFF0000) | (entryVersionLowBytes & 0xFFFF);
}
-
+
public long getRegionVersion() {
- return (((long)regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
+ return (((long) regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
}
-
-
+
+
public long getVersionTimeStamp() {
return getLastModified();
}
-
+
public void setVersionTimeStamp(long time) {
setLastModified(time);
}
@@ -392,17 +401,18 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
public VersionSource getMemberID() {
return this.memberID;
}
+
public int getDistributedSystemId() {
return this.distributedSystemId;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public void setVersions(VersionTag tag) {
this.memberID = tag.getMemberID();
int eVersion = tag.getEntryVersion();
- this.entryVersionLowBytes = (short)(eVersion & 0xffff);
- this.entryVersionHighByte = (byte)((eVersion & 0xff0000) >> 16);
+ this.entryVersionLowBytes = (short) (eVersion & 0xffff);
+ this.entryVersionHighByte = (byte) ((eVersion & 0xff0000) >> 16);
this.regionVersionHighBytes = tag.getRegionVersionHighBytes();
this.regionVersionLowBytes = tag.getRegionVersionLowBytes();
if (!(tag.isGatewayTag()) && this.distributedSystemId == tag.getDistributedSystemId()) {
@@ -414,11 +424,11 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
} else {
setVersionTimeStamp(tag.getVersionTimeStamp());
}
- this.distributedSystemId = (byte)(tag.getDistributedSystemId() & 0xff);
+ this.distributedSystemId = (byte) (tag.getDistributedSystemId() & 0xff);
}
public void setMemberID(VersionSource memberID) {
- this.memberID = memberID;
+ this.memberID = memberID;
}
@Override
@@ -427,7 +437,7 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public VersionTag asVersionTag() {
VersionTag tag = VersionTag.create(memberID);
tag.setEntryVersion(getEntryVersion());
@@ -437,9 +447,9 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
return tag;
}
- public void processVersionTag(LocalRegion r, VersionTag tag,
- boolean isTombstoneFromGII, boolean hasDelta,
- VersionSource thisVM, InternalDistributedMember sender, boolean checkForConflicts) {
+ public void processVersionTag(LocalRegion r, VersionTag tag, boolean isTombstoneFromGII,
+ boolean hasDelta, VersionSource thisVM, InternalDistributedMember sender,
+ boolean checkForConflicts) {
basicProcessVersionTag(r, tag, isTombstoneFromGII, hasDelta, thisVM, sender, checkForConflicts);
}
@@ -454,22 +464,24 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
public short getRegionVersionHighBytes() {
return this.regionVersionHighBytes;
}
-
+
/** get rvv internal low bytes. Used by region entries for transferring to storage */
public int getRegionVersionLowBytes() {
return this.regionVersionLowBytes;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// key code
private final long key;
+
@Override
public Object getKey() {
return this.key;
}
+
@Override
public boolean isKeyEqual(Object k) {
if (k instanceof Long) {
@@ -477,7 +489,7 @@ public class VersionedStatsDiskRegionEntryOffHeapLongKey extends VersionedStatsD
}
return false;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
}
http://git-wip-us.apache.org/repos/asf/geode/blob/5adb681a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
index 1e08e5b..9a8f17a 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/VersionedStatsDiskRegionEntryOffHeapObjectKey.java
@@ -18,35 +18,23 @@ package org.apache.geode.internal.cache;
-
-
-
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import org.apache.geode.cache.EntryEvent;
-
import org.apache.geode.internal.cache.lru.EnableLRU;
-
import org.apache.geode.internal.cache.persistence.DiskRecoveryStore;
-
import org.apache.geode.internal.InternalStatisticsDisabledException;
-
-
-
-
-
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
import org.apache.geode.internal.cache.versions.VersionSource;
import org.apache.geode.internal.cache.versions.VersionStamp;
import org.apache.geode.internal.cache.versions.VersionTag;
-
import org.apache.geode.internal.offheap.OffHeapRegionEntryHelper;
import org.apache.geode.internal.offheap.annotations.Released;
import org.apache.geode.internal.offheap.annotations.Retained;
@@ -72,8 +60,9 @@ import org.apache.geode.internal.util.concurrent.CustomEntryConcurrentHashMap.Ha
* Do not modify this class. It was generated. Instead modify LeafRegionEntry.cpp and then run
* ./dev-tools/generateRegionEntryClasses.sh (it must be run from the top level directory).
*/
-public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStatsDiskRegionEntryOffHeap {
- public VersionedStatsDiskRegionEntryOffHeapObjectKey (RegionEntryContext context, Object key,
+public class VersionedStatsDiskRegionEntryOffHeapObjectKey
+ extends VersionedStatsDiskRegionEntryOffHeap {
+ public VersionedStatsDiskRegionEntryOffHeapObjectKey(RegionEntryContext context, Object key,
@Retained
@@ -81,14 +70,14 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
- ) {
- super(context,
+ ) {
+ super(context,
- (value instanceof RecoveredEntry ? null : value)
+ (value instanceof RecoveredEntry ? null : value)
- );
+ );
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
initialize(context, value);
@@ -99,35 +88,40 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// common code
protected int hash;
private HashEntry<Object, Object> next;
@SuppressWarnings("unused")
private volatile long lastModified;
- private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> lastModifiedUpdater
- = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class, "lastModified");
+ private static final AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> lastModifiedUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class,
+ "lastModified");
/**
* All access done using ohAddrUpdater so it is used even though the compiler can not tell it is.
*/
@SuppressWarnings("unused")
- @Retained @Released private volatile long ohAddress;
+ @Retained
+ @Released
+ private volatile long ohAddress;
/**
- * I needed to add this because I wanted clear to call setValue which normally can only be called while the re is synced.
- * But if I sync in that code it causes a lock ordering deadlock with the disk regions because they also get a rw lock in clear.
- * Some hardware platforms do not support CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync
- * on the re and we will once again be deadlocked.
- * I don't know if we support any of the hardware platforms that do not have a 64bit CAS. If we do then we can expect deadlocks
- * on disk regions.
+ * I needed to add this because I wanted clear to call setValue which normally can only be called
+ * while the re is synced. But if I sync in that code it causes a lock ordering deadlock with the
+ * disk regions because they also get a rw lock in clear. Some hardware platforms do not support
+ * CAS on a long. If gemfire is run on one of those the AtomicLongFieldUpdater does a sync on the
+ * re and we will once again be deadlocked. I don't know if we support any of the hardware
+ * platforms that do not have a 64bit CAS. If we do then we can expect deadlocks on disk regions.
*/
- private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> ohAddrUpdater = AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class, "ohAddress");
-
+ private final static AtomicLongFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> ohAddrUpdater =
+ AtomicLongFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class,
+ "ohAddress");
+
@Override
public Token getValueAsToken() {
return OffHeapRegionEntryHelper.getValueAsToken(this);
}
-
+
@Override
protected Object getValueField() {
return OffHeapRegionEntryHelper._getValue(this);
@@ -143,6 +137,7 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
OffHeapRegionEntryHelper.setValue(this, v);
}
+
@Override
@Retained
@@ -160,7 +155,7 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
public boolean setAddress(long expectedAddr, long newAddr) {
return ohAddrUpdater.compareAndSet(this, expectedAddr, newAddr);
}
-
+
@Override
@Released
@@ -168,36 +163,41 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
public void release() {
OffHeapRegionEntryHelper.releaseEntry(this);
}
-
+
@Override
public void returnToPool() {
// Deadcoded for now; never was working
-// if (this instanceof VMThinRegionEntryLongKey) {
-// factory.returnToPool((VMThinRegionEntryLongKey)this);
-// }
+ // if (this instanceof VMThinRegionEntryLongKey) {
+ // factory.returnToPool((VMThinRegionEntryLongKey)this);
+ // }
}
protected long getLastModifiedField() {
return lastModifiedUpdater.get(this);
}
+
protected boolean compareAndSetLastModifiedField(long expectedValue, long newValue) {
return lastModifiedUpdater.compareAndSet(this, expectedValue, newValue);
}
+
/**
* @see HashEntry#getEntryHash()
*/
public int getEntryHash() {
return this.hash;
}
+
protected void setEntryHash(int v) {
this.hash = v;
}
+
/**
* @see HashEntry#getNextEntry()
*/
public HashEntry<Object, Object> getNextEntry() {
return this.next;
}
+
/**
* @see HashEntry#setNextEntry
*/
@@ -207,12 +207,13 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// disk code
protected void initialize(RegionEntryContext context, Object value) {
diskInitialize(context, value);
}
+
@Override
public int updateAsyncEntrySize(EnableLRU capacityController) {
throw new IllegalStateException("should never be called");
@@ -220,12 +221,12 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
private void diskInitialize(RegionEntryContext context, Object value) {
- DiskRecoveryStore drs = (DiskRecoveryStore)context;
+ DiskRecoveryStore drs = (DiskRecoveryStore) context;
DiskStoreImpl ds = drs.getDiskStore();
long maxOplogSize = ds.getMaxOplogSize();
- //get appropriate instance of DiskId implementation based on maxOplogSize
+ // get appropriate instance of DiskId implementation based on maxOplogSize
this.id = DiskId.createDiskId(maxOplogSize, true/* is persistence */, ds.needsLinkedList());
Helper.initialize(this, drs, value);
}
@@ -235,60 +236,60 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
*
* @since GemFire 5.1
*/
- protected DiskId id;//= new DiskId();
+ protected DiskId id;// = new DiskId();
+
public DiskId getDiskId() {
return this.id;
}
+
@Override
void setDiskId(RegionEntry old) {
- this.id = ((AbstractDiskRegionEntry)old).getDiskId();
- }
-// // inlining DiskId
-// // always have these fields
-// /**
-// * id consists of
-// * most significant
-// * 1 byte = users bits
-// * 2-8 bytes = oplog id
-// * least significant.
-// *
-// * The highest bit in the oplog id part is set to 1 if the oplog id
-// * is negative.
-// * @todo this field could be an int for an overflow only region
-// */
-// private long id;
-// /**
-// * Length of the bytes on disk.
-// * This is always set. If the value is invalid then it will be set to 0.
-// * The most significant bit is used by overflow to mark it as needing to be written.
-// */
-// protected int valueLength = 0;
-// // have intOffset or longOffset
-// // intOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile int offsetInOplog;
-// // longOffset
-// /**
-// * The position in the oplog (the oplog offset) where this entry's value is
-// * stored
-// */
-// private volatile long offsetInOplog;
-// // have overflowOnly or persistence
-// // overflowOnly
-// // no fields
-// // persistent
-// /** unique entry identifier * */
-// private long keyId;
-
-
+ this.id = ((AbstractDiskRegionEntry) old).getDiskId();
+ }
+ // // inlining DiskId
+ // // always have these fields
+ // /**
+ // * id consists of
+ // * most significant
+ // * 1 byte = users bits
+ // * 2-8 bytes = oplog id
+ // * least significant.
+ // *
+ // * The highest bit in the oplog id part is set to 1 if the oplog id
+ // * is negative.
+ // * @todo this field could be an int for an overflow only region
+ // */
+ // private long id;
+ // /**
+ // * Length of the bytes on disk.
+ // * This is always set. If the value is invalid then it will be set to 0.
+ // * The most significant bit is used by overflow to mark it as needing to be written.
+ // */
+ // protected int valueLength = 0;
+ // // have intOffset or longOffset
+ // // intOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile int offsetInOplog;
+ // // longOffset
+ // /**
+ // * The position in the oplog (the oplog offset) where this entry's value is
+ // * stored
+ // */
+ // private volatile long offsetInOplog;
+ // // have overflowOnly or persistence
+ // // overflowOnly
+ // // no fields
+ // // persistent
+ // /** unique entry identifier * */
+ // private long keyId;
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// stats code
@Override
public void updateStatsForGet(boolean hit, long time) {
@@ -299,51 +300,61 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
incrementMissCount();
}
}
+
@Override
protected void setLastModifiedAndAccessedTimes(long lastModified, long lastAccessed) {
_setLastModified(lastModified);
- if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
+ if (!DISABLE_ACCESS_TIME_UPDATE_ON_PUT) {
setLastAccessed(lastAccessed);
}
}
+
private volatile long lastAccessed;
private volatile int hitCount;
private volatile int missCount;
-
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> hitCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class, "hitCount");
- private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> missCountUpdater
- = AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class, "missCount");
-
+
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> hitCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class,
+ "hitCount");
+ private static final AtomicIntegerFieldUpdater<VersionedStatsDiskRegionEntryOffHeapObjectKey> missCountUpdater =
+ AtomicIntegerFieldUpdater.newUpdater(VersionedStatsDiskRegionEntryOffHeapObjectKey.class,
+ "missCount");
+
@Override
public long getLastAccessed() throws InternalStatisticsDisabledException {
return this.lastAccessed;
}
+
private void setLastAccessed(long lastAccessed) {
this.lastAccessed = lastAccessed;
}
+
@Override
public long getHitCount() throws InternalStatisticsDisabledException {
return this.hitCount & 0xFFFFFFFFL;
}
+
@Override
public long getMissCount() throws InternalStatisticsDisabledException {
return this.missCount & 0xFFFFFFFFL;
}
+
private void incrementHitCount() {
hitCountUpdater.incrementAndGet(this);
}
+
private void incrementMissCount() {
missCountUpdater.incrementAndGet(this);
}
+
@Override
public void resetCounts() throws InternalStatisticsDisabledException {
- hitCountUpdater.set(this,0);
- missCountUpdater.set(this,0);
+ hitCountUpdater.set(this, 0);
+ missCountUpdater.set(this, 0);
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
@Override
public void txDidDestroy(long currTime) {
setLastModified(currTime);
@@ -351,15 +362,16 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
this.hitCount = 0;
this.missCount = 0;
}
+
@Override
public boolean hasStats() {
return true;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// versioned code
private VersionSource memberID;
private short entryVersionLowBytes;
@@ -371,16 +383,16 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
public int getEntryVersion() {
return ((entryVersionHighByte << 16) & 0xFF0000) | (entryVersionLowBytes & 0xFFFF);
}
-
+
public long getRegionVersion() {
- return (((long)regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
+ return (((long) regionVersionHighBytes) << 32) | (regionVersionLowBytes & 0x00000000FFFFFFFFL);
}
-
-
+
+
public long getVersionTimeStamp() {
return getLastModified();
}
-
+
public void setVersionTimeStamp(long time) {
setLastModified(time);
}
@@ -388,17 +400,18 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
public VersionSource getMemberID() {
return this.memberID;
}
+
public int getDistributedSystemId() {
return this.distributedSystemId;
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public void setVersions(VersionTag tag) {
this.memberID = tag.getMemberID();
int eVersion = tag.getEntryVersion();
- this.entryVersionLowBytes = (short)(eVersion & 0xffff);
- this.entryVersionHighByte = (byte)((eVersion & 0xff0000) >> 16);
+ this.entryVersionLowBytes = (short) (eVersion & 0xffff);
+ this.entryVersionHighByte = (byte) ((eVersion & 0xff0000) >> 16);
this.regionVersionHighBytes = tag.getRegionVersionHighBytes();
this.regionVersionLowBytes = tag.getRegionVersionLowBytes();
if (!(tag.isGatewayTag()) && this.distributedSystemId == tag.getDistributedSystemId()) {
@@ -410,11 +423,11 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
} else {
setVersionTimeStamp(tag.getVersionTimeStamp());
}
- this.distributedSystemId = (byte)(tag.getDistributedSystemId() & 0xff);
+ this.distributedSystemId = (byte) (tag.getDistributedSystemId() & 0xff);
}
public void setMemberID(VersionSource memberID) {
- this.memberID = memberID;
+ this.memberID = memberID;
}
@Override
@@ -423,7 +436,7 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
}
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
public VersionTag asVersionTag() {
VersionTag tag = VersionTag.create(memberID);
tag.setEntryVersion(getEntryVersion());
@@ -433,9 +446,9 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
return tag;
}
- public void processVersionTag(LocalRegion r, VersionTag tag,
- boolean isTombstoneFromGII, boolean hasDelta,
- VersionSource thisVM, InternalDistributedMember sender, boolean checkForConflicts) {
+ public void processVersionTag(LocalRegion r, VersionTag tag, boolean isTombstoneFromGII,
+ boolean hasDelta, VersionSource thisVM, InternalDistributedMember sender,
+ boolean checkForConflicts) {
basicProcessVersionTag(r, tag, isTombstoneFromGII, hasDelta, thisVM, sender, checkForConflicts);
}
@@ -450,18 +463,19 @@ public class VersionedStatsDiskRegionEntryOffHeapObjectKey extends VersionedStat
public short getRegionVersionHighBytes() {
return this.regionVersionHighBytes;
}
-
+
/** get rvv internal low bytes. Used by region entries for transferring to storage */
public int getRegionVersionLowBytes() {
return this.regionVersionLowBytes;
}
-
+
// DO NOT modify this class. It was generated from LeafRegionEntry.cpp
-
+
// key code
private final Object key;
+
@Override
public Object getKey() {
return this.key;