Examples of AdminStoreSwapper


Examples of voldemort.store.readonly.swapper.AdminStoreSwapper

            pushVersion++;
        }

        // do the swap
        info("Initiating swap of " + storeName + " with dataDir:" + dataDir);
        AdminStoreSwapper swapper = new AdminStoreSwapper(cluster,
                                                          executor,
                                                          client,
                                                          httpTimeoutMs,
                                                          swapConf.getRollback(),
                                                          swapConf.getRollback());
        swapper.swapStoreData(storeName, dataDir, pushVersion);
        info("Swap complete.");
        executor.shutdownNow();
        executor.awaitTermination(10, TimeUnit.SECONDS);
    }
View Full Code Here

Examples of voldemort.store.readonly.swapper.AdminStoreSwapper

                service = Executors.newCachedThreadPool();
                adminClient = new AdminClient(clusterUrl,
                                              new AdminClientConfig(),
                                              new ClientConfig());
                Cluster cluster = adminClient.getAdminClientCluster();
                AdminStoreSwapper swapper = new AdminStoreSwapper(cluster,
                                                                  service,
                                                                  adminClient,
                                                                  1000 * props.getInt("timeout.seconds",
                                                                                      24 * 60 * 60),
                                                                  true,
                                                                  true);

                // Get the current version for all stores on all nodes
                Map<Integer, Map<String, Long>> previousVersions = Maps.newHashMap();
                for(Node node: cluster.getNodes()) {
                    Map<String, Long> currentVersion = adminClient.readonlyOps.getROCurrentVersion(node.getId(),
                                                                                                   storeNames);

                    log.info("Retrieving current version information on node " + node.getId());
                    Map<String, Long> previousVersion = Maps.newHashMap();
                    for(Entry<String, Long> entry: currentVersion.entrySet()) {
                        previousVersion.put(entry.getKey(), entry.getValue() - 1);
                        if(entry.getValue() == 0) {
                            throw new VoldemortException("Store '" + entry.getKey() + "' on node "
                                                         + node.getId()
                                                         + " does not have version to rollback to");
                        }
                    }
                    previousVersions.put(node.getId(), previousVersion);
                }

                // Swap one store at a time
                for(String storeName: storeNames) {
                    for(Node node: cluster.getNodes()) {
                        log.info("Rolling back data on node " + node.getId() + " and for store "
                                 + storeName + " to version "
                                 + previousVersions.get(node.getId()).get(storeName));
                        swapper.invokeRollback(storeName,
                                               previousVersions.get(node.getId()).get(storeName));
                        log.info("Successfully rolled back data on node " + node.getId()
                                 + " and for store " + storeName);
                    }
                }
View Full Code Here

Examples of voldemort.store.readonly.swapper.AdminStoreSwapper

                                                             // Used for
                                                             // parallel pushing
                                                             internalExecutor = Executors.newCachedThreadPool();

                                                             AdminStoreSwapper swapper = new AdminStoreSwapper(metadata.getSecond(),
                                                                                                               internalExecutor,
                                                                                                               adminClient,
                                                                                                               1000 * props.getInt("timeout.seconds",
                                                                                                                                   24 * 60 * 60),
                                                                                                               true,
                                                                                                               true);

                                                             // Convert to
                                                             // hadoop specific
                                                             // path
                                                             String outputDirPathString = outputDirPath.makeQualified(fs)
                                                                                                       .toString();

                                                             if(!fs.exists(outputDirPath)) {
                                                                 throw new RuntimeException("Output directory for store "
                                                                                            + storeName
                                                                                            + " and cluster '"
                                                                                            + url
                                                                                            + "' - "
                                                                                            + outputDirPathString
                                                                                            + " does not exist");
                                                             }

                                                             log.info("Pushing data to store '"
                                                                      + storeName + "' on cluster "
                                                                      + url + " from path  "
                                                                      + outputDirPathString
                                                                      + " with version "
                                                                      + storePushVersion);

                                                             List<String> nodeDirs = swapper.invokeFetch(storeName,
                                                                                                         outputDirPathString,
                                                                                                         storePushVersion);

                                                             log.info("Successfully pushed data to store '"
                                                                      + storeName
View Full Code Here

Examples of voldemort.store.readonly.swapper.AdminStoreSwapper

                                                                 NUM_RO_CHUNKS_PER_BUCKET,
                                                                 10000,
                                                                 false);
            storeBuilder.build(ReadOnlyStorageFormat.READONLY_V2);

            AdminStoreSwapper swapper = new AdminStoreSwapper(cluster,
                                                              Executors.newFixedThreadPool(cluster.getNumberOfNodes()),
                                                              adminClient,
                                                              100000);
            swapper.swapStoreData(testStoreNameRO, outputDir.getAbsolutePath(), 1L);
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.