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();
}
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);
}
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);
}
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();
}
}
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);
}
Aggregations