use of com.ms.silverking.cloud.dht.daemon.DHTNode in project SilverKing by Morgan-Stanley.
the class DHTClient method embedPassiveNode.
private void embedPassiveNode(ClientDHTConfiguration dhtConfig) {
DHTNode embeddedNode;
Path tempDir;
File skDir;
try {
tempDir = Files.createTempDirectory(null);
skDir = new File(tempDir.toFile(), "silverking");
skDir.mkdirs();
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
DHTNodeConfiguration.setDataBasePath(skDir.getAbsolutePath() + "/data");
embeddedNode = new DHTNode(dhtConfig.getName(), dhtConfig.getZKConfig(), defaultInactiveNodeTimeoutSeconds, false, false);
}
use of com.ms.silverking.cloud.dht.daemon.DHTNode in project SilverKing by Morgan-Stanley.
the class EmbeddedSK method createEmbeddedSKInstance.
public static ClientDHTConfiguration createEmbeddedSKInstance(String dhtName, String gridConfigName, String ringName, int replication) {
try {
int zkPort;
Path tempDir;
File zkDir;
File skDir;
ZooKeeperConfig zkConfig;
// 0) Create LWT work pools
LWTPoolProvider.createDefaultWorkPools();
// 1) Start an embedded ZooKeeper
Log.warning("Creating embedded ZooKeeper");
try {
tempDir = Files.createTempDirectory(null);
zkDir = new File(tempDir.toFile(), "zookeeper");
zkDir.mkdirs();
skDir = new File(tempDir.toFile(), "silverking");
skDir.mkdirs();
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
zkPort = LocalZKImpl.startLocalZK(zkDir.getAbsolutePath());
zkConfig = new ZooKeeperConfig(InetAddress.getLoopbackAddress().getHostAddress() + ":" + zkPort);
Log.warning("Embedded ZooKeeper running at: " + zkConfig);
DHTNodeConfiguration.setDataBasePath(skDir.getAbsolutePath() + "/data");
// 2) Create ring in ZK
Log.warning("Creating ring");
StaticRingCreator.createStaticRing(ringName, zkConfig, ImmutableSet.of(IPAddrUtil.localIPString()), replication);
Log.warning("Created: " + ringName);
// 3) Create DHT Config in ZK
DHTConfiguration dhtConfig;
MetaClient dhtMC;
DHTConfigurationZK dhtConfigZK;
ClientDHTConfiguration clientDHTConfig;
int dhtPort;
Log.warning("Creating DHT configuration in ZK");
if (skPort <= 0) {
// FIXME
dhtPort = ThreadLocalRandom.current().nextInt(10000, 20000);
} else {
dhtPort = skPort;
}
clientDHTConfig = new ClientDHTConfiguration(dhtName, dhtPort, zkConfig);
dhtMC = new MetaClient(clientDHTConfig);
dhtConfigZK = new DHTConfigurationZK(dhtMC);
dhtConfig = DHTConfiguration.emptyTemplate.ringName(ringName).port(dhtPort).passiveNodeHostGroups("").hostGroupToClassVarsMap(new HashMap<String, String>());
dhtConfigZK.writeToZK(dhtConfig, null);
Log.warning("Created DHT configuration in ZK");
// 4) Set cur and target rings
DHTRingCurTargetZK curTargetZK;
Log.warning("Setting ring targets");
curTargetZK = new DHTRingCurTargetZK(dhtMC, dhtConfig);
curTargetZK.setCurRingAndVersionPair(ringName, 0, 0);
curTargetZK.setTargetRingAndVersionPair(ringName, 0, 0);
Log.warning("Ring targets set");
// 4) Start DHTNode
Log.warning("Starting DHTNode");
new DHTNode(dhtName, zkConfig, 0, false, false);
Log.warning("DHTNode started");
// 5) Return the configuration to the caller
return clientDHTConfig;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Aggregations