Package voldemort.versioning

Examples of voldemort.versioning.VectorClock


    public void put(ByteArray key, Versioned<byte[]> value, byte[] transforms)
            throws VoldemortException {
        StoreUtils.assertValidKey(key);

        // Validate the Vector clock
        VectorClock clock = readVersion();
        if(clock != null) {
            if(value.getVersion().compare(clock) == Occurred.BEFORE) {
                throw new ObsoleteVersionException("A successor version " + clock + "  to this "
                                                   + value.getVersion()
                                                   + " exists for the current file : " + getName());
View Full Code Here


        if(deleteSuccessful) {
            this.flushData();
            // Reset the vector clock and persist it.
            // FIXME this also needs to be done per entry, as opposed to
            // versioning the file.
            writeVersion(new VectorClock());
        }
        return deleteSuccessful;
    }
View Full Code Here

            if(scanCount % 1000000 == 0)
                logger.info("Converted " + scanCount + " entries in "
                            + (System.currentTimeMillis() - startTime) / 1000 + " secs");

            // read the value as a versioned Object
            VectorClock clock = new VectorClock(valueEntry.getData());
            byte[] bytes = ByteUtils.copy(valueEntry.getData(),
                                          clock.sizeInBytes(),
                                          valueEntry.getData().length);
            Versioned<byte[]> value = new Versioned<byte[]>(bytes, clock);
            byte[] key = keyEntry.getData();

            if(prevKey != null && (ByteUtils.compare(prevKey, key) != 0)) {
View Full Code Here

                                                                + this.storeDef.getRequiredWrites()
                                                                + " are required.", failures);
        }

        // Okay looks like it worked, increment the version for the caller
        VectorClock versionedClock = (VectorClock) versioned.getVersion();
        versionedClock.incrementVersion(master.getId(), time.getMilliseconds());
    }
View Full Code Here

         */
        public static void doMetaSetPair(AdminClient adminClient,
                                         List<Integer> nodeIds,
                                         Object clusterValue,
                                         Object storesValue) {
            VectorClock updatedClusterVersion = null;
            VectorClock updatedStoresVersion = null;
            for(Integer nodeId: nodeIds) {
                if(updatedClusterVersion == null && updatedStoresVersion == null) {
                    updatedClusterVersion = (VectorClock) adminClient.metadataMgmtOps.getRemoteMetadata(nodeId,
                                                                                                        MetadataStore.CLUSTER_KEY)
                                                                                     .getVersion();
                    updatedStoresVersion = (VectorClock) adminClient.metadataMgmtOps.getRemoteMetadata(nodeId,
                                                                                                       MetadataStore.STORES_KEY)
                                                                                    .getVersion();
                } else {
                    updatedClusterVersion = updatedClusterVersion.merge((VectorClock) adminClient.metadataMgmtOps.getRemoteMetadata(nodeId,
                                                                                                                                    MetadataStore.CLUSTER_KEY)
                                                                                                                 .getVersion());
                    updatedStoresVersion = updatedStoresVersion.merge((VectorClock) adminClient.metadataMgmtOps.getRemoteMetadata(nodeId,
                                                                                                                                  MetadataStore.STORES_KEY)
                                                                                                               .getVersion());
                }

                // TODO: This will work for now but we should take a step back
                // and
                // think about a uniform clock for the metadata values.
                updatedClusterVersion = updatedClusterVersion.incremented(nodeIds.iterator().next(),
                                                                          System.currentTimeMillis());
                updatedStoresVersion = updatedStoresVersion.incremented(nodeIds.iterator().next(),
                                                                        System.currentTimeMillis());
            }
            adminClient.metadataMgmtOps.updateRemoteMetadataPair(nodeIds,
                                                                 MetadataStore.CLUSTER_KEY,
                                                                 Versioned.value(clusterValue.toString(),
View Full Code Here

        if(vectorClockHeader != null) {
            ObjectMapper mapper = new ObjectMapper();
            try {
                VectorClockWrapper vcWrapper = mapper.readValue(vectorClockHeader,
                                                                VectorClockWrapper.class);
                this.parsedVectorClock = new VectorClock(vcWrapper.getVersions(),
                                                         vcWrapper.getTimestamp());
                result = true;
            } catch(Exception e) {
                logger.error("Exception while parsing and constructing vector clock", e);
                RestErrorHandler.writeErrorResponse(this.messageEvent,
View Full Code Here

        versionedValues = getWithCustomTimeout(requestWrapper);
        Versioned<V> versioned = getItemOrThrow(requestWrapper.getKey(), null, versionedValues);

        long endTime = System.currentTimeMillis();
        if(versioned == null)
            versioned = Versioned.value(requestWrapper.getRawValue(), new VectorClock());
        else
            versioned.setObject(requestWrapper.getRawValue());

        // This should not happen unless there's a bug in the
        // getWithCustomTimeout
View Full Code Here

                            + "StoreName: " + storeName + " QuotaType: " + quotaType);
            }
            // FIXME This is a temporary workaround for System store client not
            // being able to do a second insert. We simply generate a super
            // clock that will trump what is on storage
            VectorClock denseClock = VectorClockUtils.makeClockWithCurrentTime(currentCluster.getNodeIds());
            String quotaKey = QuotaUtils.makeQuotaKey(storeName, quotaType);
            quotaSysStoreClient.putSysStore(quotaKey, new Versioned<String>(quotaValue, denseClock));
            logger.info("Set quota " + quotaTypeStr + " to " + quotaValue + " for store "
                        + storeName);
        }
View Full Code Here

        }
        return serializedVC;
    }

    public static VectorClock deserializeVectorClock(String serializedVC) {
        VectorClock vc = null;

        if(serializedVC == null) {
            return null;
        }
        try {
            VectorClockWrapper vcWrapper = mapper.readValue(serializedVC, VectorClockWrapper.class);
            vc = new VectorClock(vcWrapper.getVersions(), vcWrapper.getTimestamp());
        } catch(Exception e) {
            e.printStackTrace();
        }

        return vc;
View Full Code Here

                                                   new TypeReference<Set<VectorClockWrapper>>() {});
            if(vectorClockWrappers.size() > 0) {
                vectorClocks = new ArrayList<Version>();
            }
            for(VectorClockWrapper vectorClockWrapper: vectorClockWrappers) {
                vectorClocks.add(new VectorClock(vectorClockWrapper.getVersions(),
                                                 vectorClockWrapper.getTimestamp()));
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
View Full Code Here

TOP

Related Classes of voldemort.versioning.VectorClock

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.