本文整理汇总了Java中org.apache.ignite.cluster.ClusterNode.order方法的典型用法代码示例。如果您正苦于以下问题:Java ClusterNode.order方法的具体用法?Java ClusterNode.order怎么用?Java ClusterNode.order使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.ignite.cluster.ClusterNode
的用法示例。
在下文中一共展示了ClusterNode.order方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: TcpDiscoveryNode
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* IMPORTANT!
* Only purpose of this constructor is creating node which contains necessary data to store on disc only
* @param node to copy data from
*/
public TcpDiscoveryNode(
ClusterNode node
) {
this.id = node.id();
this.consistentId = node.consistentId();
this.addrs = node.addresses();
this.hostNames = node.hostNames();
this.order = node.order();
this.ver = node.version();
this.daemon = node.isDaemon();
this.clientRouterNodeId = node.isClient() ? node.id() : null;
attrs = Collections.singletonMap(ATTR_NODE_CONSISTENT_ID, consistentId);
}
示例2: checkLaunchCoordinator
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Checks if current node is the oldest node in topology and starts coordinator thread if so.
* Note that once node is the oldest one, it will be the oldest until it leaves grid.
*
* @param discoEvt Discovery event.
*/
private void checkLaunchCoordinator(DiscoveryEvent discoEvt) {
rw.readLock();
try {
if (stopping)
return;
if (fragmentizerCrd == null) {
long minNodeOrder = Long.MAX_VALUE;
Collection<ClusterNode> nodes = discoEvt.topologyNodes();
for (ClusterNode node : nodes) {
if (node.order() < minNodeOrder && igfsCtx.igfsNode(node))
minNodeOrder = node.order();
}
ClusterNode locNode = igfsCtx.kernalContext().grid().localNode();
if (locNode.order() == minNodeOrder) {
if (log.isDebugEnabled())
log.debug("Detected local node to be the eldest IGFS node in topology, starting fragmentizer " +
"coordinator thread [discoEvt=" + discoEvt + ", locNode=" + locNode + ']');
synchronized (this) {
if (fragmentizerCrd == null && !stopping) {
fragmentizerCrd = new FragmentizerCoordinator();
new IgniteThread(fragmentizerCrd).start();
}
}
}
}
}
finally {
rw.readUnlock();
}
}
示例3: nodeComparator
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param asc {@code True} for ascending.
* @return Descending order comparator.
*/
public static Comparator<ClusterNode> nodeComparator(final boolean asc) {
return new Comparator<ClusterNode>() {
@Override public int compare(ClusterNode n1, ClusterNode n2) {
long o1 = n1.order();
long o2 = n2.order();
return asc ? o1 < o2 ? -1 : o1 == o2 ? 0 : 1 : o1 < o2 ? 1 : o1 == o2 ? 0 : -1;
}
@Override public String toString() {
return "Node comparator [asc=" + asc + ']';
}
};
}
示例4: apply
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public boolean apply(ClusterNode node) {
try {
return node.order() > 1;
}
catch (UnsupportedOperationException e) {
return false;
}
}
示例5: syncStart
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Sends sync message to remote nodes and awaits for response from all nodes.
*
* @throws InterruptedException If waiting was interrupted.
*/
private void syncStart() throws InterruptedException {
Collection<UUID> startSync0 = startSync = new GridConcurrentHashSet<>(
F.viewReadOnly(
igfsCtx.kernalContext().discovery().allNodes(),
F.node2id(),
new P1<ClusterNode>() {
@Override public boolean apply(ClusterNode n) {
return igfsCtx.igfsNode(n);
}
}));
ClusterNode locNode = igfsCtx.kernalContext().grid().localNode();
while (!startSync0.isEmpty()) {
for (UUID nodeId : startSync0) {
IgfsSyncMessage syncReq = new IgfsSyncMessage(locNode.order(), false);
try {
if (log.isDebugEnabled())
log.debug("Sending fragmentizer sync start request to remote node [nodeId=" + nodeId +
", syncReq=" + syncReq + ']');
sendWithRetries(nodeId, syncReq);
// Close window between message sending and discovery event.
if (!igfsCtx.kernalContext().discovery().alive(nodeId))
startSync0.remove(nodeId);
}
catch (IgniteCheckedException e) {
if (e.hasCause(ClusterTopologyCheckedException.class)) {
if (log.isDebugEnabled())
log.debug("Failed to send sync message to remote node (node has left the grid): " +
nodeId);
}
else
U.error(log, "Failed to send synchronize message to remote node (will not wait for reply): " +
nodeId, e);
startSync0.remove(nodeId);
}
}
lock.lock();
try {
if (!startSync0.isEmpty())
cond.await(10000, MILLISECONDS);
}
finally {
lock.unlock();
}
}
}
示例6: compare
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public int compare(ClusterNode n1, ClusterNode n2) {
return n1.order() < n2.order() ? -1 : n1.order() > n2.order() ? 1 : n1.id().compareTo(n2.id());
}
示例7: ackStart
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Prints start info.
*
* @param rtBean Java runtime bean.
*/
private void ackStart(RuntimeMXBean rtBean) {
ClusterNode locNode = localNode();
if (log.isQuiet()) {
U.quiet(false, "");
U.quiet(false, "Ignite node started OK (id=" + U.id8(locNode.id()) +
(F.isEmpty(igniteInstanceName) ? "" : ", instance name=" + igniteInstanceName) + ')');
}
if (log.isInfoEnabled()) {
log.info("");
String ack = "Ignite ver. " + VER_STR + '#' + BUILD_TSTAMP_STR + "-sha1:" + REV_HASH_STR;
String dash = U.dash(ack.length());
SB sb = new SB();
for (GridPortRecord rec : ctx.ports().records())
sb.a(rec.protocol()).a(":").a(rec.port()).a(" ");
String str =
NL + NL +
">>> " + dash + NL +
">>> " + ack + NL +
">>> " + dash + NL +
">>> OS name: " + U.osString() + NL +
">>> CPU(s): " + locNode.metrics().getTotalCpus() + NL +
">>> Heap: " + U.heapSize(locNode, 2) + "GB" + NL +
">>> VM name: " + rtBean.getName() + NL +
(igniteInstanceName == null ? "" : ">>> Ignite instance name: " + igniteInstanceName + NL) +
">>> Local node [" +
"ID=" + locNode.id().toString().toUpperCase() +
", order=" + locNode.order() + ", clientMode=" + ctx.clientNode() +
"]" + NL +
">>> Local node addresses: " + U.addressesAsString(locNode) + NL +
">>> Local ports: " + sb + NL;
log.info(str);
}
}
示例8: writeToSocket
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override protected void writeToSocket(ClusterNode node,
Socket sock,
OutputStream out,
TcpDiscoveryAbstractMessage msg,
long timeout) throws IOException, IgniteCheckedException {
if (startTest && !(msg instanceof TcpDiscoveryConnectionCheckMessage)) {
if (node.order() == errNodeOrder) {
log.info("Fail write on message send [node=" + node.id() + ", msg=" + msg + ']');
throw new SocketTimeoutException();
}
else if (locNode.order() == errNodeOrder) {
if (sleepEndTime == 0) {
errNext = node;
sleepEndTime = System.currentTimeMillis() + 3000;
}
long sleepTime = sleepEndTime - System.currentTimeMillis();
if (sleepTime > 0) {
log.info("Start sleep on message send: " + msg);
try {
U.sleep(sleepTime);
}
catch (IgniteInterruptedCheckedException e) {
log.error("Interrupted on socket write: " + e, e);
throw new IOException(e);
}
log.info("Stop sleep on message send: " + msg);
if (node.equals(errNext)) {
log.info("Fail write after sleep [node=" + node.id() + ", msg=" + msg + ']');
throw new SocketTimeoutException();
}
}
}
}
super.writeToSocket(node, sock, out, msg, timeout);
}
示例9: apply
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
@Override public boolean apply(ClusterNode node) {
return block && node.order() == 3;
}
示例10: testOneNode
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @throws Exception If failed.
*/
public void testOneNode() throws Exception {
pred = new IgniteBiPredicate<ClusterNode, ClusterNode>() {
@Override public boolean apply(ClusterNode locNode, ClusterNode rmtNode) {
return block && rmtNode.order() == 3;
}
};
startGrids(NODES_CNT);
final CountDownLatch latch = new CountDownLatch(1);
grid(0).events().localListen(new IgnitePredicate<Event>() {
@Override
public boolean apply(Event event) {
latch.countDown();
return true;
}
}, EVT_NODE_FAILED);
U.sleep(1000); // Wait for write timeout and closing idle connections.
block = true;
grid(0).compute().broadcast(new IgniteRunnable() {
@Override public void run() {
// No-op.
}
});
assertTrue(latch.await(15, TimeUnit.SECONDS));
assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
@Override public boolean apply() {
return grid(3).cluster().topologyVersion() == NODES_CNT + 1;
}
}, 5000));
for (int i = 0; i < 10; i++) {
U.sleep(1000);
assertEquals(NODES_CNT - 1, grid(0).cluster().nodes().size());
int liveNodesCnt = 0;
for (int j = 0; j < NODES_CNT; j++) {
IgniteEx ignite;
try {
ignite = grid(j);
log.info("Checking topology for grid(" + j + "): " + ignite.cluster().nodes());
ClusterNode locNode = ignite.localNode();
if (locNode.order() != 3) {
assertEquals(NODES_CNT - 1, ignite.cluster().nodes().size());
for (ClusterNode node : ignite.cluster().nodes())
assertTrue(node.order() != 3);
liveNodesCnt++;
}
}
catch (Exception e) {
log.info("Checking topology for grid(" + j + "): no grid in topology.");
}
}
assertEquals(NODES_CNT - 1, liveNodesCnt);
}
}
示例11: testOldest
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @throws Exception If failed.
*/
public void testOldest() throws Exception {
ClusterGroup oldest = ignite.cluster().forOldest();
ClusterNode node = null;
long minOrder = Long.MAX_VALUE;
for (ClusterNode n : ignite.cluster().nodes()) {
if (n.order() < minOrder) {
node = n;
minOrder = n.order();
}
}
assertEquals(oldest.node(), ignite.cluster().forNode(node).node());
ClusterGroup emptyGrp = ignite.cluster().forAttribute("nonExistent", "val");
assertEquals(0, emptyGrp.forOldest().nodes().size());
}
示例12: testYoungest
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @throws Exception If failed.
*/
public void testYoungest() throws Exception {
ClusterGroup youngest = ignite.cluster().forYoungest();
ClusterNode node = null;
long maxOrder = Long.MIN_VALUE;
for (ClusterNode n : ignite.cluster().nodes()) {
if (n.order() > maxOrder) {
node = n;
maxOrder = n.order();
}
}
assertEquals(youngest.node(), ignite.cluster().forNode(node).node());
ClusterGroup emptyGrp = ignite.cluster().forAttribute("nonExistent", "val");
assertEquals(0, emptyGrp.forYoungest().nodes().size());
}
示例13: apply
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public boolean apply(ClusterNode node) {
// Do not start cache on coordinator.
return node.order() > 1;
}
示例14: apply
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public boolean apply(ClusterNode node) {
return node.order() > 1;
}
示例15: toShortString
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Short node representation.
*
* @param n Grid node.
* @return Short string representing the node.
*/
public static String toShortString(ClusterNode n) {
return "ClusterNode [id=" + n.id() + ", order=" + n.order() + ", addr=" + n.addresses() +
", daemon=" + n.isDaemon() + ']';
}