Search in sources :

Example 31 with Region

use of com.alipay.sofa.jraft.rhea.metadata.Region in project sofa-jraft by sofastack.

the class SnapshotBenchmark method doSstSnapshotLoad.

private void doSstSnapshotLoad(final String snapshotPath) {
    final List<Region> regions = Lists.newArrayList();
    for (int i = 0; i < 10; i++) {
        final Region r = new Region();
        r.setId(i);
        r.setStartKey(BytesUtil.writeUtf8("benchmark_" + i));
        if (i < 9) {
            r.setEndKey(BytesUtil.writeUtf8("benchmark_" + (i + 1)));
        }
        regions.add(r);
    }
    final ExecutorService executor = Executors.newFixedThreadPool(10);
    final List<Future<?>> futures = Lists.newArrayList();
    for (final Region r : regions) {
        final Future<?> f = executor.submit(() -> {
            try {
                KVStoreAccessHelper.loadSnapshot(kvStore, Paths.get(snapshotPath, String.valueOf(r.getId())).toString(), null, r);
            } catch (final Exception e) {
                e.printStackTrace();
            }
        });
        futures.add(f);
    }
    for (final Future<?> f : futures) {
        try {
            f.get();
        } catch (final InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
    executor.shutdownNow();
}
Also used : ExecutorService(java.util.concurrent.ExecutorService) Region(com.alipay.sofa.jraft.rhea.metadata.Region) Future(java.util.concurrent.Future) ExecutionException(java.util.concurrent.ExecutionException) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException)

Example 32 with Region

use of com.alipay.sofa.jraft.rhea.metadata.Region in project sofa-jraft by sofastack.

the class SnapshotBenchmark method doSlowSnapshotSave.

private LocalFileMeta.Builder doSlowSnapshotSave(final String snapshotPath) throws Exception {
    this.dbOptions.setFastSnapshot(false);
    final Region region = new Region();
    return KVStoreAccessHelper.saveSnapshot(this.kvStore, snapshotPath, region);
}
Also used : Region(com.alipay.sofa.jraft.rhea.metadata.Region)

Example 33 with Region

use of com.alipay.sofa.jraft.rhea.metadata.Region in project sofa-jraft by sofastack.

the class SnapshotBenchmark method doFastSnapshotSave.

private LocalFileMeta.Builder doFastSnapshotSave(final String snapshotPath) throws Exception {
    this.dbOptions.setFastSnapshot(true);
    final Region region = new Region();
    return KVStoreAccessHelper.saveSnapshot(this.kvStore, snapshotPath, region);
}
Also used : Region(com.alipay.sofa.jraft.rhea.metadata.Region)

Example 34 with Region

use of com.alipay.sofa.jraft.rhea.metadata.Region in project sofa-jraft by sofastack.

the class SnapshotBenchmark method doFastSnapshotLoad.

private void doFastSnapshotLoad(final String snapshotPath) {
    try {
        this.dbOptions.setFastSnapshot(true);
        final Region region = new Region();
        KVStoreAccessHelper.loadSnapshot(this.kvStore, snapshotPath, null, region);
    } catch (final Exception e) {
        e.printStackTrace();
    }
}
Also used : Region(com.alipay.sofa.jraft.rhea.metadata.Region) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException)

Example 35 with Region

use of com.alipay.sofa.jraft.rhea.metadata.Region in project sofa-jraft by sofastack.

the class AbstractPlacementDriverClient method initRouteTableByRegion.

protected void initRouteTableByRegion(final RegionRouteTableOptions opts) {
    final long regionId = Requires.requireNonNull(opts.getRegionId(), "opts.regionId");
    final byte[] startKey = opts.getStartKeyBytes();
    final byte[] endKey = opts.getEndKeyBytes();
    final String initialServerList = opts.getInitialServerList();
    final Region region = new Region();
    final Configuration conf = new Configuration();
    // region
    region.setId(regionId);
    region.setStartKey(startKey);
    region.setEndKey(endKey);
    region.setRegionEpoch(new RegionEpoch(-1, -1));
    // peers
    Requires.requireTrue(Strings.isNotBlank(initialServerList), "opts.initialServerList is blank");
    conf.parse(initialServerList);
    region.setPeers(JRaftHelper.toPeerList(conf.listPeers()));
    // update raft route table
    RouteTable.getInstance().updateConfiguration(JRaftHelper.getJRaftGroupId(clusterName, regionId), conf);
    this.regionRouteTable.addOrUpdateRegion(region);
}
Also used : Configuration(com.alipay.sofa.jraft.conf.Configuration) Region(com.alipay.sofa.jraft.rhea.metadata.Region) RegionEpoch(com.alipay.sofa.jraft.rhea.metadata.RegionEpoch)

Aggregations

Region (com.alipay.sofa.jraft.rhea.metadata.Region)67 KVEntry (com.alipay.sofa.jraft.rhea.storage.KVEntry)35 List (java.util.List)35 Map (java.util.Map)35 Status (com.alipay.sofa.jraft.Status)34 Lists (com.alipay.sofa.jraft.rhea.util.Lists)34 BytesUtil (com.alipay.sofa.jraft.util.BytesUtil)34 Endpoint (com.alipay.sofa.jraft.util.Endpoint)33 KVIterator (com.alipay.sofa.jraft.rhea.storage.KVIterator)31 KVStoreClosure (com.alipay.sofa.jraft.rhea.storage.KVStoreClosure)31 RawKVStore (com.alipay.sofa.jraft.rhea.storage.RawKVStore)31 Sequence (com.alipay.sofa.jraft.rhea.storage.Sequence)31 ByteArray (com.alipay.sofa.jraft.rhea.util.ByteArray)31 DistributedLock (com.alipay.sofa.jraft.rhea.util.concurrent.DistributedLock)31 TimeUnit (java.util.concurrent.TimeUnit)31 CASEntry (com.alipay.sofa.jraft.rhea.storage.CASEntry)30 Requires (com.alipay.sofa.jraft.util.Requires)30 Logger (org.slf4j.Logger)30 LoggerFactory (org.slf4j.LoggerFactory)30 RegionEngine (com.alipay.sofa.jraft.rhea.RegionEngine)29