/** * Determines whether or not the current cluster state represents an entirely * new cluster, either when a node joins a cluster for the first time or when * the node receives a cluster state update from a brand new cluster (different * UUID from the previous cluster), which will happen when a master node is * elected that has never been part of the cluster before. */ public boolean isNewCluster() { final String prevClusterUUID = previousState.metaData().clusterUUID(); final String currClusterUUID = state.metaData().clusterUUID(); return prevClusterUUID.equals(currClusterUUID) == false; }
@Override protected ClusterStatsResponse newResponse(ClusterStatsRequest request, List<ClusterStatsNodeResponse> responses, List<FailedNodeException> failures) { return new ClusterStatsResponse( System.currentTimeMillis(), clusterService.state().metaData().clusterUUID(), clusterService.getClusterName(), responses, failures); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("cluster uuid: ").append(metaData.clusterUUID()).append("\n"); sb.append("version: ").append(version).append("\n"); sb.append("state uuid: ").append(stateUUID).append("\n");
@Override protected void doExecute(MainRequest request, ActionListener<MainResponse> listener) { ClusterState clusterState = clusterService.state(); final boolean available = clusterState.getBlocks().hasGlobalBlock(RestStatus.SERVICE_UNAVAILABLE) == false; listener.onResponse( new MainResponse(nodeName, Version.CURRENT, clusterState.getClusterName(), clusterState.metaData().clusterUUID(), Build.CURRENT, available)); } }
builder.field("cluster_uuid", metaData().clusterUUID()); builder.field("cluster_uuid", metaData().clusterUUID()); builder.startObject("templates"); for (ObjectCursor<IndexTemplateMetaData> cursor : metaData().templates().values()) {
private boolean isNewCluster() { final String prevClusterUUID = previousState.metaData().clusterUUID(); final String currClusterUUID = state.metaData().clusterUUID(); return prevClusterUUID.equals(currClusterUUID) == false; } }
/** * Determines whether or not the current cluster state represents an entirely * new cluster, either when a node joins a cluster for the first time or when * the node receives a cluster state update from a brand new cluster (different * UUID from the previous cluster), which will happen when a master node is * elected that has never been part of the cluster before. */ public boolean isNewCluster() { final String prevClusterUUID = previousState.metaData().clusterUUID(); final String currClusterUUID = state.metaData().clusterUUID(); return prevClusterUUID.equals(currClusterUUID) == false; }
/** * Determines whether or not the current cluster state represents an entirely * new cluster, either when a node joins a cluster for the first time or when * the node receives a cluster state update from a brand new cluster (different * UUID from the previous cluster), which will happen when a master node is * elected that has never been part of the cluster before. */ public boolean isNewCluster() { final String prevClusterUUID = previousState.metaData().clusterUUID(); final String currClusterUUID = state.metaData().clusterUUID(); return prevClusterUUID.equals(currClusterUUID) == false; }
@Override protected ClusterStatsResponse newResponse(ClusterStatsRequest clusterStatsRequest, AtomicReferenceArray responses) { final List<ClusterStatsNodeResponse> nodeStats = new ArrayList<>(responses.length()); for (int i = 0; i < responses.length(); i++) { Object resp = responses.get(i); if (resp instanceof ClusterStatsNodeResponse) { nodeStats.add((ClusterStatsNodeResponse) resp); } } return new ClusterStatsResponse(System.currentTimeMillis(), clusterName, clusterService.state().metaData().clusterUUID(), nodeStats.toArray(new ClusterStatsNodeResponse[nodeStats.size()])); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("cluster uuid: ").append(metaData.clusterUUID()).append("\n"); sb.append("version: ").append(version).append("\n"); sb.append("state uuid: ").append(stateUUID).append("\n");
@Override protected ClusterStatsResponse newResponse(ClusterStatsRequest request, List<ClusterStatsNodeResponse> responses, List<FailedNodeException> failures) { return new ClusterStatsResponse( System.currentTimeMillis(), clusterService.state().metaData().clusterUUID(), clusterService.getClusterName(), responses, failures); }
mdBuilder.clusterUUID(currentState.metaData().clusterUUID());
public void publishX2(ClusterState clusterState, boolean force) { String clusterStateSting = clusterState.metaData().clusterUUID() + '/' + clusterState.metaData().version(); if (Gossiper.instance.isEnabled() || force) { Gossiper.instance.addLocalApplicationState(ELASTIC_META_DATA, StorageService.instance.valueFactory.datacenter(clusterStateSting)); if (logger.isTraceEnabled()) logger.trace("X2={} published in gossip state", clusterStateSting); } }
@Override public void userKeyspaceInitialized() { if (node != null && !bootstrapping) { // try to read a newer metadata from the local elastic_admin.metadata table. MetaData metaData = this.node.clusterService().readInternalMetaDataAsRow(); if (metaData != null && metaData.version() > systemMetadata.version()) { try { logger.warn("Refreshing newer metadata found in {}.{} metaData uuid={} version={}", ClusterService.ELASTIC_ADMIN_KEYSPACE, ClusterService.ELASTIC_ADMIN_METADATA_TABLE, metaData.clusterUUID(), metaData.version()); node.clusterService().submitRefreshMetaData(metaData, "metadatarefresh"); if (metaData.clusterUUID() == this.node.clusterService().localNode().getId()) { logger.warn("Saving the new metadata metaData.uuid={} version={} in the CQL schema", metaData.clusterUUID(), metaData.version()); node.clusterService().writeMetaDataAsComment(metaData); } } catch (Exception e) { logger.error("Unexpected error",e); } } node.clusterService().submitNumberOfShardsAndReplicasUpdate("user-keyspaces-initialized"); } }
public void persistMetaData(MetaData oldMetaData, MetaData newMetaData, String source) throws IOException, InvalidRequestException, RequestExecutionException, RequestValidationException { if (!newMetaData.clusterUUID().equals(localNode().getId())) { logger.error("should not push metadata updated from another node {}/{}", newMetaData.clusterUUID(), newMetaData.version()); return; } if (newMetaData.clusterUUID().equals(state().metaData().clusterUUID()) && newMetaData.version() < state().metaData().version()) { logger.warn("don't push obsolete metadata uuid={} version {} < {}", newMetaData.clusterUUID(), newMetaData.version(), state().metaData().version()); return; } String metaDataString = MetaData.Builder.toXContent(newMetaData, MetaData.CASSANDRA_FORMAT_PARAMS); UUID owner = UUID.fromString(localNode().getId()); boolean applied = processWriteConditional( this.metadataWriteCL, this.metadataSerialCL, ClientState.forInternalCalls(), updateMetaDataQuery, new Object[] { owner, newMetaData.version(), metaDataString, DatabaseDescriptor.getClusterName(), newMetaData.version() }); if (applied) { logger.debug("PAXOS Succefully update metadata source={} newMetaData={} in cluster {}", source, metaDataString, DatabaseDescriptor.getClusterName()); writeMetaDataAsComment(metaDataString, newMetaData.version()); return; } else { logger.warn("PAXOS Failed to update metadata oldMetadata={}/{} currentMetaData={}/{} in cluster {}", oldMetaData.clusterUUID(), oldMetaData.version(), localNode().getId(), newMetaData.version(), DatabaseDescriptor.getClusterName()); throw new ConcurrentMetaDataUpdateException(owner, newMetaData.version()); } }
@Override protected void doExecute(MainRequest request, ActionListener<MainResponse> listener) { ClusterState clusterState = clusterService.state(); assert Node.NODE_NAME_SETTING.exists(settings); final boolean available = clusterState.getBlocks().hasGlobalBlock(RestStatus.SERVICE_UNAVAILABLE) == false; listener.onResponse( new MainResponse(Node.NODE_NAME_SETTING.get(settings), Version.CURRENT, clusterState.getClusterName(), clusterState.metaData().clusterUUID(), Build.CURRENT, available)); } }
@Override protected void doExecute(MainRequest request, ActionListener<MainResponse> listener) { ClusterState clusterState = clusterService.state(); assert Node.NODE_NAME_SETTING.exists(settings); final boolean available = clusterState.getBlocks().hasGlobalBlock(RestStatus.SERVICE_UNAVAILABLE) == false; listener.onResponse( new MainResponse(Node.NODE_NAME_SETTING.get(settings), Version.CURRENT, clusterState.getClusterName(), clusterState.metaData().clusterUUID(), Build.CURRENT, available)); } }
@Override protected void doExecute(MainRequest request, ActionListener<MainResponse> listener) { ClusterState clusterState = clusterService.state(); assert Node.NODE_NAME_SETTING.exists(settings); final boolean available = clusterState.getBlocks().hasGlobalBlock(RestStatus.SERVICE_UNAVAILABLE) == false; listener.onResponse( new MainResponse(Node.NODE_NAME_SETTING.get(settings), Version.CURRENT, clusterState.getClusterName(), clusterState.metaData().clusterUUID(), Build.CURRENT, available)); } }
builder.field("cluster_uuid", clusterState.metaData().clusterUUID()); builder.startObject("version") .field("number", version.number())
/** As of 2.0 we require units for time and byte-sized settings. This methods adds default units to any * persistent settings and template settings that don't specify a unit. **/ public static MetaData addDefaultUnitsIfNeeded(ESLogger logger, MetaData metaData) { Settings newPersistentSettings = addDefaultUnitsIfNeeded( CLUSTER_TIME_SETTINGS, CLUSTER_BYTES_SIZE_SETTINGS, logger, metaData.persistentSettings()); ImmutableOpenMap<String, IndexTemplateMetaData> templates = updateTemplates(logger, metaData.getTemplates()); if (newPersistentSettings != null || templates != null) { return new MetaData( metaData.clusterUUID(), metaData.version(), metaData.transientSettings(), MoreObjects.firstNonNull(newPersistentSettings, metaData.persistentSettings()), metaData.getIndices(), MoreObjects.firstNonNull(templates, metaData.getTemplates()), metaData.getCustoms(), metaData.concreteAllIndices(), metaData.concreteAllOpenIndices(), metaData.concreteAllClosedIndices(), metaData.getAliasAndIndexLookup()); } else { // No changes: return metaData; } }