List of usage examples for org.apache.cassandra.config DatabaseDescriptor getLocalDataCenter
public static String getLocalDataCenter()
From source file:org.elasticsearch.cassandra.cluster.InternalCassandraClusterService.java
License:Apache License
@Override public MetaData readMetaDataAsRow() throws NoPersistedMetaDataException { UntypedResultSet result;/*from w ww .j a va 2s . c om*/ try { result = process(ConsistencyLevel.LOCAL_QUORUM, String.format("SELECT metadata FROM \"%s\".\"%s\" WHERE dc = ?", ELASTIC_ADMIN_KEYSPACE, metaDataTableName), DatabaseDescriptor.getLocalDataCenter()); } catch (RequestExecutionException | RequestValidationException e) { throw new NoPersistedMetaDataException(e); } Row row = result.one(); if (row != null && row.has("metadata")) { return parseMetaDataString(row.getString("metadata")); } throw new NoPersistedMetaDataException(); }
From source file:org.elasticsearch.cassandra.cluster.InternalCassandraClusterService.java
License:Apache License
@Override public void initializeMetaDataAsComment() { MetaData metadata = state().metaData(); try {/*from w w w.j a v a2s . c o m*/ String metaDataString = MetaData.builder().toXContent(metadata, persistedParams); // initialize a first row if needed UntypedResultSet result = process(ConsistencyLevel.LOCAL_QUORUM, ConsistencyLevel.LOCAL_SERIAL, String.format( "INSERT INTO \"%s\".\"%s\" (dc,owner,version,metadata) VALUES (?,?,?,?) IF NOT EXISTS", ELASTIC_ADMIN_KEYSPACE, metaDataTableName), DatabaseDescriptor.getLocalDataCenter(), UUID.fromString(StorageService.instance.getLocalHostId()), metadata.version(), metaDataString); Row row = result.one(); boolean applied = false; if (row.has("[applied]")) { applied = row.getBoolean("[applied]"); } if (applied) { logger.debug("Succefully initialize metadata metaData={}", metadata); writeMetaDataAsComment(metaDataString); } } catch (Exception e) { logger.error("Failed to initialize persisted metadata", e); } }
From source file:org.elasticsearch.cassandra.cluster.InternalCassandraClusterService.java
License:Apache License
@Override public void persistMetaData(MetaData oldMetaData, MetaData newMetaData, String source) throws IOException, InvalidRequestException, RequestExecutionException, RequestValidationException { if (!newMetaData.uuid().equals(localNode().id())) { logger.error("should not push metadata updated from another node {}/{}", newMetaData.uuid(), newMetaData.version());//from w w w .j a v a2 s. co m return; } if (newMetaData.uuid().equals(state().metaData().uuid()) && newMetaData.version() < state().metaData().version()) { logger.warn("don't push obsolete metadata uuid={} version {} < {}", newMetaData.uuid(), newMetaData.version(), state().metaData().version()); return; } String metaDataString = MetaData.builder().toXContent(newMetaData, InternalCassandraClusterService.persistedParams); UntypedResultSet result = process(ConsistencyLevel.LOCAL_ONE, ConsistencyLevel.LOCAL_SERIAL, updateMetaDataQuery, new Object[] { UUID.fromString(localNode().id()), newMetaData.version(), metaDataString, DatabaseDescriptor.getLocalDataCenter(), UUID.fromString(oldMetaData.uuid()), oldMetaData.version() }); Row row = result.one(); boolean applied = false; if (row.has("[applied]")) { applied = row.getBoolean("[applied]"); } if (applied) { logger.debug("Succefully update metadata source={} newMetaData={}", source, metaDataString); writeMetaDataAsComment(metaDataString); return; } else { logger.warn("Failed to update metadata source={} oldMetadata={}/{} currentMetaData={}/{}", source, oldMetaData.uuid(), oldMetaData.version(), row.getUUID("owner"), row.getLong("version")); throw new ConcurrentMetaDataUpdateException(row.getUUID("owner"), row.getLong("version")); } }