Example usage for org.apache.cassandra.config DatabaseDescriptor getLocalDataCenter

List of usage examples for org.apache.cassandra.config DatabaseDescriptor getLocalDataCenter

Introduction

In this page you can find the example usage for org.apache.cassandra.config DatabaseDescriptor getLocalDataCenter.

Prototype

public static String getLocalDataCenter() 

Source Link

Usage

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"));
    }
}