From 408a8b5c43ffd78ac2ac1382b26a9ba1caea72b4 Mon Sep 17 00:00:00 2001 From: leventov Date: Mon, 15 Jun 2015 20:23:30 +0300 Subject: [PATCH] HCOLL-368 Optimized Engine replication implementation in ReplicatedChronicleMap --- .../chronicle/map/ReplicatedChronicleMap.java | 122 +++++++++++------- .../chronicle/map/VanillaChronicleMap.java | 17 +++ 2 files changed, 90 insertions(+), 49 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index ab3675d17..b30590c47 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -378,52 +378,47 @@ final class ReplicatedChronicleMap>instance(), + BytesBytesInterop.INSTANCE, key, key.remaining(), keyBytesToInstance, + GetRemoteSeparateBytesInterops.INSTANCE, value, valueBytesToInstance, + hash2, true, readValueToLazyBytes, true, identifier, timestamp, + true); + } finally { + writeUnlock(); + } + } + , RV, VB extends RV, VBI, MVBI extends MetaBytesInterop> RV put(@Nullable ThreadLocalCopies copies, @Nullable SegmentState segmentState, diff --git a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java index 8870b2ced..bac785813 100755 --- a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java @@ -1016,6 +1016,23 @@ class VanillaChronicleMap, } } + enum GetRemoteSeparateBytesInterops + implements GetValueInterops, + DelegatingMetaBytesInterop>> { + INSTANCE; + + @Override + public DelegatingMetaBytesInterop> getMetaValueInterop( + @NotNull ThreadLocalCopies copies, BytesInterop valueInterop, Bytes value) { + return DelegatingMetaBytesInterop.>instance(); + } + + @Override + public BytesInterop getValueInterop(@NotNull ThreadLocalCopies copies) { + return BytesBytesInterop.INSTANCE; + } + } + @Override public final MVI getMetaValueInterop( @NotNull ThreadLocalCopies copies, VI valueInterop, V value) {