本文整理汇总了Java中org.apache.ignite.cluster.ClusterNode.isLocal方法的典型用法代码示例。如果您正苦于以下问题:Java ClusterNode.isLocal方法的具体用法?Java ClusterNode.isLocal怎么用?Java ClusterNode.isLocal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.ignite.cluster.ClusterNode
的用法示例。
在下文中一共展示了ClusterNode.isLocal方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: sendError
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param node Node.
* @param qryReqId Query request ID.
* @param err Error.
*/
private void sendError(ClusterNode node, long qryReqId, Throwable err) {
try {
GridQueryFailResponse msg = new GridQueryFailResponse(qryReqId, err);
if (node.isLocal()) {
U.error(log, "Failed to run map query on local node.", err);
h2.reduceQueryExecutor().onMessage(ctx.localNodeId(), msg);
}
else
ctx.io().sendToGridTopic(node, GridTopic.TOPIC_QUERY, msg, QUERY_POOL);
}
catch (Exception e) {
e.addSuppressed(err);
U.error(log, "Failed to send error message.", e);
}
}
示例2: sendUpdateResponse
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Sends update response for DML request.
*
* @param node Node.
* @param reqId Request id.
* @param updResult Update result.
* @param error Error message.
*/
@SuppressWarnings("deprecation")
private void sendUpdateResponse(ClusterNode node, long reqId, UpdateResult updResult, String error) {
try {
GridH2DmlResponse rsp = new GridH2DmlResponse(reqId, updResult == null ? 0 : updResult.counter(),
updResult == null ? null : updResult.errorKeys(), error);
if (log.isDebugEnabled())
log.debug("Sending: [localNodeId=" + ctx.localNodeId() + ", node=" + node.id() + ", msg=" + rsp + "]");
if (node.isLocal())
h2.reduceQueryExecutor().onMessage(ctx.localNodeId(), rsp);
else {
rsp.marshall(ctx.config().getMarshaller());
ctx.io().sendToGridTopic(node, GridTopic.TOPIC_QUERY, rsp, QUERY_POOL);
}
}
catch (Exception e) {
U.error(log, "Failed to send message.", e);
}
}
示例3: sendRetry
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param node Node.
* @param reqId Request ID.
* @param segmentId Index segment ID.
*/
private void sendRetry(ClusterNode node, long reqId, int segmentId) {
try {
boolean loc = node.isLocal();
GridQueryNextPageResponse msg = new GridQueryNextPageResponse(reqId, segmentId,
/*qry*/0, /*page*/0, /*allRows*/0, /*cols*/1,
loc ? null : Collections.<Message>emptyList(),
loc ? Collections.<Value[]>emptyList() : null,
false);
msg.retry(h2.readyTopologyVersion());
if (loc)
h2.reduceQueryExecutor().onMessage(ctx.localNodeId(), msg);
else
ctx.io().sendToGridTopic(node, GridTopic.TOPIC_QUERY, msg, QUERY_POOL);
}
catch (Exception e) {
U.warn(log, "Failed to send retry message: " + e.getMessage());
}
}
示例4: onNodeLeave
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* Handle node leave.
*
* @param node Node.
*/
public void onNodeLeave(ClusterNode node) {
synchronized (stateMux) {
// Clients do not send status messages and are never coordinators.
if (ctx.clientNode())
return;
ClusterNode crd0 = coordinator();
if (F.eq(node.id(), crd0.id())) {
crd = null;
crd0 = coordinator();
}
for (SchemaOperation op : schemaOps.values()) {
if (op.started()) {
op.manager().onNodeLeave(node.id(), crd0);
if (crd0.isLocal())
unwindPendingMessages(op.id(), op.manager());
}
}
}
}
示例5: assignPartitions
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public List<List<ClusterNode>> assignPartitions(AffinityFunctionContext affCtx) {
ClusterNode locNode = null;
for (ClusterNode n : affCtx.currentTopologySnapshot()) {
if (n.isLocal()) {
locNode = n;
break;
}
}
if (locNode == null)
throw new IgniteException("Local node is not included into affinity nodes for 'LOCAL' cache");
List<List<ClusterNode>> res = new ArrayList<>(partitions());
for (int part = 0; part < partitions(); part++)
res.add(Collections.singletonList(locNode));
return Collections.unmodifiableList(res);
}
示例6: addDiagnosticRequest
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override public void addDiagnosticRequest(IgniteDiagnosticPrepareContext diagCtx) {
if (!isDone()) {
ClusterNode crd;
Set<UUID> remaining;
synchronized (mux) {
crd = this.crd;
remaining = new HashSet<>(this.remaining);
}
if (crd != null) {
if (!crd.isLocal()) {
diagCtx.exchangeInfo(crd.id(), initialVersion(), "Exchange future waiting for coordinator " +
"response [crd=" + crd.id() + ", topVer=" + initialVersion() + ']');
}
else if (!remaining.isEmpty()){
UUID nodeId = remaining.iterator().next();
diagCtx.exchangeInfo(nodeId, initialVersion(), "Exchange future on coordinator waiting for " +
"server response [node=" + nodeId + ", topVer=" + initialVersion() + ']');
}
}
}
}
示例7: hasLocalNode
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param prj Grid nodes projection.
* @return Whether given projection contains any local node.
*/
private boolean hasLocalNode(ClusterGroup prj) {
for (ClusterNode n : prj.nodes()) {
if (n.isLocal())
return true;
}
return false;
}
示例8: sendDhtNearResponse
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param req Request.
* @param nearRes Response to send.
*/
private void sendDhtNearResponse(final GridDhtAtomicAbstractUpdateRequest req, GridDhtAtomicNearResponse nearRes) {
try {
ClusterNode node = ctx.discovery().node(req.nearNodeId());
if (node == null)
throw new ClusterTopologyCheckedException("Node failed: " + req.nearNodeId());
if (node.isLocal())
processDhtAtomicNearResponse(node.id(), nearRes);
else
ctx.io().send(node, nearRes, ctx.ioPolicy());
if (msgLog.isDebugEnabled()) {
msgLog.debug("Sent DHT near response [futId=" + req.futureId() +
", nearFutId=" + req.nearFutureId() +
", writeVer=" + req.writeVersion() +
", node=" + req.nearNodeId() + ']');
}
}
catch (ClusterTopologyCheckedException ignored) {
if (msgLog.isDebugEnabled()) {
msgLog.debug("Failed to send DHT near response, node left [futId=" + req.futureId() +
", nearFutId=" + req.nearFutureId() +
", node=" + req.nearNodeId() + ']');
}
}
catch (IgniteCheckedException e) {
U.error(msgLog, "Failed to send DHT near response [futId=" + req.futureId() +
", nearFutId=" + req.nearFutureId() +
", node=" + req.nearNodeId() +
", res=" + nearRes + ']', e);
}
}
示例9: GridDhtAssignmentFetchFuture
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param ctx Context.
* @param grpId Group ID.
* @param topVer Topology version.
* @param discoCache Discovery cache.
*/
public GridDhtAssignmentFetchFuture(
GridCacheSharedContext ctx,
int grpId,
AffinityTopologyVersion topVer,
DiscoCache discoCache
) {
this.topVer = topVer;
this.grpId = grpId;
this.ctx = ctx;
id = idGen.getAndIncrement();
Collection<ClusterNode> availableNodes = discoCache.cacheGroupAffinityNodes(grpId);
LinkedList<ClusterNode> tmp = new LinkedList<>();
for (ClusterNode node : availableNodes) {
if (!node.isLocal() && ctx.discovery().alive(node))
tmp.add(node);
}
Collections.sort(tmp, NodeOrderComparator.getInstance());
this.availableNodes = tmp;
if (log == null)
log = U.logger(ctx.kernalContext(), logRef, GridDhtAssignmentFetchFuture.class);
}
示例10: map
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Nullable @Override public Map<? extends ComputeJob, ClusterNode> map(List<ClusterNode> subgrid,
@Nullable String arg) throws IgniteException {
ClusterNode node = subgrid.get(0);
for (ClusterNode n : subgrid) {
if (n.isLocal()) {
node = n;
break;
}
}
return Collections.singletonMap(new PlatformStopIgniteJob(arg), node);
}
示例11: getUID
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @return Node UUID as string.
*/
String getUID() {
String id = "";
Collection<ClusterNode> nodes = igniteInstance.cluster().forLocal().nodes();
for (ClusterNode node : nodes) {
if (node.isLocal())
id = String.valueOf(node.id());
}
return id;
}
示例12: onNextPage
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param node Node.
* @param msg Message.
*/
private void onNextPage(final ClusterNode node, GridQueryNextPageResponse msg) {
final long qryReqId = msg.queryRequestId();
final int qry = msg.query();
final int seg = msg.segmentId();
final ReduceQueryRun r = runs.get(qryReqId);
if (r == null) // Already finished with error or canceled.
return;
final int pageSize = r.pageSize();
GridMergeIndex idx = r.indexes().get(msg.query());
GridResultPage page;
try {
page = new GridResultPage(ctx, node.id(), msg) {
@Override public void fetchNextPage() {
Object errState = r.state();
if (errState != null) {
CacheException err0 = errState instanceof CacheException ? (CacheException)errState : null;
if (err0 != null && err0.getCause() instanceof IgniteClientDisconnectedException)
throw err0;
CacheException e = new CacheException("Failed to fetch data from node: " + node.id());
if (err0 != null)
e.addSuppressed(err0);
throw e;
}
try {
GridQueryNextPageRequest msg0 = new GridQueryNextPageRequest(qryReqId, qry, seg, pageSize);
if (node.isLocal())
h2.mapQueryExecutor().onMessage(ctx.localNodeId(), msg0);
else
ctx.io().sendToGridTopic(node, GridTopic.TOPIC_QUERY, msg0, GridIoPolicy.QUERY_POOL);
}
catch (IgniteCheckedException e) {
throw new CacheException("Failed to fetch data from node: " + node.id(), e);
}
}
};
}
catch (Exception e) {
U.error(log, "Error in message.", e);
fail(r, node.id(), "Error in message.", GridQueryFailResponse.GENERAL_ERROR);
return;
}
idx.addPage(page);
if (msg.retry() != null)
retry(r, msg.retry(), node.id());
else if (msg.page() == 0) // Do count down on each first page received.
r.latch().countDown();
}
示例13: map
import org.apache.ignite.cluster.ClusterNode; //导入方法依赖的package包/类
/**
* @param mappings Mappings.
* @param key Key to map.
* @param locVals Local values.
* @param topVer Topology version.
* @param mapped Previously mapped.
* @return {@code True} if has remote nodes.
*/
@SuppressWarnings("ConstantConditions")
private boolean map(
KeyCacheObject key,
Map<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>> mappings,
Map<K, V> locVals,
AffinityTopologyVersion topVer,
Map<ClusterNode, LinkedHashMap<KeyCacheObject, Boolean>> mapped
) {
int part = cctx.affinity().partition(key);
List<ClusterNode> affNodes = cctx.affinity().nodesByPartition(part, topVer);
if (affNodes.isEmpty()) {
onDone(serverNotFoundError(topVer));
return false;
}
boolean fastLocGet = (!forcePrimary || affNodes.get(0).isLocal()) &&
cctx.reserveForFastLocalGet(part, topVer);
if (fastLocGet) {
try {
if (localGet(topVer, key, part, locVals))
return false;
}
finally {
cctx.releaseForFastLocalGet(part, topVer);
}
}
ClusterNode node = affinityNode(affNodes);
if (node == null) {
onDone(serverNotFoundError(topVer));
return false;
}
boolean remote = !node.isLocal();
LinkedHashMap<KeyCacheObject, Boolean> keys = mapped.get(node);
if (keys != null && keys.containsKey(key)) {
if (REMAP_CNT_UPD.incrementAndGet(this) > MAX_REMAP_CNT) {
onDone(new ClusterTopologyCheckedException("Failed to remap key to a new node after " +
MAX_REMAP_CNT + " attempts (key got remapped to the same node) [key=" + key + ", node=" +
U.toShortString(node) + ", mappings=" + mapped + ']'));
return false;
}
}
LinkedHashMap<KeyCacheObject, Boolean> old = mappings.get(node);
if (old == null)
mappings.put(node, old = new LinkedHashMap<>(3, 1f));
old.put(key, false);
return remote;
}