try { logger.info(workName + "Starting processing"); ChainedResolver<Versioned<byte[]>> resolver = new ChainedResolver<Versioned<byte[]>>(new VectorClockInconsistencyResolver<byte[]>(), new TimeBasedInconsistencyResolver<byte[]>()); Iterator<ByteArray> keyItr = srcAdminClient.bulkFetchOps.fetchKeys(storeInstance.getNodeIdForPartitionId(this.partitionId), List<Versioned<byte[]>> resolvedVersions = resolver.resolveConflicts(values);
public <K1, V1, T1> Store<K1, V1, T1> getRawStore(String storeName, InconsistencyResolver<Versioned<V1>> resolver) { if(this.storesXml != null) return getRawStore(storeName); // Add inconsistency resolving decorator, using their inconsistency // resolver (if they gave us one) InconsistencyResolver<Versioned<V1>> secondaryResolver = new TimeBasedInconsistencyResolver(); if(resolver != null) secondaryResolver = resolver; Store store = new VersionIncrementingStore(new InMemoryStorageEngine(storeName), nodeId, time); if(isSerialized()) store = new SerializingStore(store, keySerializer, valueSerializer, transformsSerializer); Store<K1, V1, T1> consistentStore = new InconsistencyResolvingStore<K1, V1, T1>(store, new ChainedResolver<Versioned<V1>>(new VectorClockInconsistencyResolver(), secondaryResolver)); return consistentStore; }
: resolver; clientStore = new InconsistencyResolvingStore<K, V, T>(clientStore, new ChainedResolver<Versioned<V>>(new VectorClockInconsistencyResolver<V>(), secondaryResolver)); return clientStore;
@Override public void run() { String storeName = this.storeInstance.getStoreDefinition().getName(); ChainedResolver<Versioned<byte[]>> resolver = new ChainedResolver<Versioned<byte[]>>(new VectorClockInconsistencyResolver<byte[]>(), new TimeBasedInconsistencyResolver<byte[]>()); try { List<Versioned<byte[]>> resolvedVersions = resolver.resolveConflicts(vals); if(resolvedVersions.size() > 1) { throw new VoldemortException("More than one resolved versions, key: " List<Versioned<byte[]>> resolvedVals = resolver.resolveConflicts(vals); assert resolvedVals.size() == 1; Versioned<byte[]> resolvedVersioned = resolvedVals.get(0);
: resolver; finalStore = new InconsistencyResolvingStore<K, V, T>(finalStore, new ChainedResolver<Versioned<V>>(new VectorClockInconsistencyResolver(), secondaryResolver));
ChainedResolver<Versioned<byte[]>> resolver = new ChainedResolver<Versioned<byte[]>>(new VectorClockInconsistencyResolver<byte[]>(), new TimeBasedInconsistencyResolver<byte[]>()); List<Versioned<byte[]>> resolvedVersions = resolver.resolveConflicts(vals1); assertEquals("Must read out latest timestamp version", onlineClock1.getTimestamp(), resolvedVersions = resolver.resolveConflicts(vals2); vals.addAll(vals1); vals.addAll(vals2); resolvedVersions = resolver.resolveConflicts(vals); assertEquals("Online value to be read out", new String(onlineVal),
new ChainedResolver<Versioned<V1>>(new VectorClockInconsistencyResolver(), secondaryResolver)); return consistentStore;