当前位置: 首页>>代码示例>>Java>>正文


Java ClusterNode.isLocal方法代码示例

本文整理汇总了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);
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:24,代码来源:GridMapQueryExecutor.java

示例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);
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:30,代码来源:GridMapQueryExecutor.java

示例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());
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:27,代码来源:GridMapQueryExecutor.java

示例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());
            }
        }
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:30,代码来源:GridQueryProcessor.java

示例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);
}
 
开发者ID:apache,项目名称:ignite,代码行数:23,代码来源:GridCacheProcessor.java

示例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() + ']');
            }
        }
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:26,代码来源:GridDhtPartitionsExchangeFuture.java

示例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;
}
 
开发者ID:apache,项目名称:ignite,代码行数:13,代码来源:GridServiceProcessor.java

示例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);
    }
}
 
开发者ID:apache,项目名称:ignite,代码行数:38,代码来源:GridDhtAtomicCache.java

示例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);
}
 
开发者ID:apache,项目名称:ignite,代码行数:35,代码来源:GridDhtAssignmentFetchFuture.java

示例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);
}
 
开发者ID:apache,项目名称:ignite,代码行数:15,代码来源:PlatformStopIgniteTask.java

示例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;
}
 
开发者ID:apache,项目名称:ignite,代码行数:13,代码来源:IgniteCountDownLatchAbstractSelfTest.java

示例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();
}
 
开发者ID:apache,项目名称:ignite,代码行数:69,代码来源:GridReduceQueryExecutor.java

示例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;
}
 
开发者ID:apache,项目名称:ignite,代码行数:71,代码来源:GridPartitionedGetFuture.java


注:本文中的org.apache.ignite.cluster.ClusterNode.isLocal方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。