mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
reverted cff7c5bea8
This commit is contained in:
@@ -41,7 +41,6 @@ import java.nio.channels.FileChannel;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static java.lang.Long.numberOfTrailingZeros;
|
||||
import static java.lang.Math.max;
|
||||
import static java.lang.Thread.currentThread;
|
||||
import static net.openhft.lang.MemoryUnit.*;
|
||||
@@ -129,8 +128,8 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, KI>,
|
||||
|
||||
lockTimeOutNS = builder.lockTimeOut(TimeUnit.NANOSECONDS);
|
||||
|
||||
// this.replicas = builder.replicas();
|
||||
this.entrySize = builder.entrySize();
|
||||
boolean replicated = getClass() == ReplicatedChronicleMap.class;
|
||||
this.entrySize = builder.entrySize(replicated);
|
||||
this.alignment = builder.entryAndValueAlignment();
|
||||
|
||||
this.errorListener = builder.errorListener();
|
||||
@@ -276,19 +275,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, KI>,
|
||||
+ sizeOfEntriesInSegment();
|
||||
if ((ss & 63L) != 0)
|
||||
throw new AssertionError();
|
||||
return breakL1CacheAssociativityContention(ss);
|
||||
}
|
||||
|
||||
private long breakL1CacheAssociativityContention(long segmentSize) {
|
||||
// Conventional alignment to break is 4096 (given Intel's 32KB 8-way L1 cache),
|
||||
// for any case break 2 times smaller alignment
|
||||
int alignmentToBreak = 2048;
|
||||
int eachNthSegmentFallIntoTheSameSet =
|
||||
max(1, alignmentToBreak >> numberOfTrailingZeros(segmentSize));
|
||||
if (eachNthSegmentFallIntoTheSameSet < actualSegments) {
|
||||
segmentSize |= 64L; // make segment size "odd" (in cache lines)
|
||||
}
|
||||
return segmentSize;
|
||||
return ss;
|
||||
}
|
||||
|
||||
int multiMapsPerSegment() {
|
||||
@@ -597,6 +584,10 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, KI>,
|
||||
throw new UnsupportedOperationException("todo");
|
||||
}
|
||||
|
||||
public V acquireUsing(Bytes reader, Bytes writer) {
|
||||
throw new UnsupportedOperationException("todo");
|
||||
}
|
||||
|
||||
void get(Bytes reader, Bytes writer) {
|
||||
throw new UnsupportedOperationException("todo");
|
||||
}
|
||||
@@ -1415,8 +1406,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, KI>,
|
||||
|
||||
@Override
|
||||
public void removeEntry() {
|
||||
if (copies != null)
|
||||
removeWithoutLock(copies, metaKeyInterop, keyInterop, key(), null, segmentHash);
|
||||
removeWithoutLock(copies, metaKeyInterop, keyInterop, key(), null, segmentHash);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1430,9 +1420,7 @@ class VanillaChronicleMap<K, KI, MKI extends MetaBytesInterop<K, KI>,
|
||||
putWithoutLock(copies, metaKeyInterop, keyInterop, key(), value(),
|
||||
segmentHash, true);
|
||||
|
||||
copies = null;
|
||||
putOnClose = true;
|
||||
|
||||
Segment.this.writeUnlock();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user