Skip to content
This repository has been archived by the owner on Jan 5, 2022. It is now read-only.

Commit

Permalink
separate calls
Browse files Browse the repository at this point in the history
  • Loading branch information
Shawn Feldman committed Mar 30, 2015
1 parent c12aa17 commit c1643a7
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 38 deletions.
Expand Up @@ -70,6 +70,8 @@ public interface EntityIndex extends CPManager {


void initialize();

boolean shouldInitialize();
}


Expand Up @@ -118,7 +118,7 @@ public EsApplicationEntityIndexImpl(@Assisted ApplicationScope appScope, final A
@Override
public EntityIndexBatch createBatch() {
EntityIndexBatch batch = new EsEntityIndexBatchImpl(
applicationScope, indexBatchBufferProducer, entityIndex, indexIdentifier );
applicationScope, indexBatchBufferProducer, entityIndex, indexIdentifier);
return batch;
}

Expand Down
Expand Up @@ -69,6 +69,7 @@ public EntityIndexBatch index( final IndexScope indexScope, final Entity entity
IndexValidationUtils.validateIndexScope( indexScope );
ValidationUtils.verifyEntityWrite( entity );
ValidationUtils.verifyVersion( entity.getVersion() );

//add app id for indexing
container.addIndexRequest(new IndexRequest(alias.getWriteAlias(), applicationScope,indexScope, entity));
return this;
Expand Down
Expand Up @@ -77,12 +77,9 @@ public class EsEntityIndexImpl implements AliasedEntityIndex,VersionedData {
private final Timer addTimer;
private final Timer updateAliasTimer;


/**
* We purposefully make this per instance. Some indexes may work, while others may fail
*/


private final EsProvider esProvider;

//number of times to wait for the index to refresh properly.
Expand All @@ -103,7 +100,6 @@ public class EsEntityIndexImpl implements AliasedEntityIndex,VersionedData {
private Timer refreshTimer;
private Meter refreshIndexMeter;


// private final Timer indexTimer;


Expand All @@ -128,22 +124,29 @@ public EsEntityIndexImpl(
this.refreshTimer = metricsFactory
.getTimer(EsEntityIndexImpl.class, "refresh.timer");
this.refreshIndexMeter = metricsFactory.getMeter(EsEntityIndexImpl.class,"refresh.meter");
if(shouldInitialize()){
initialize();
}

}

@Override
public void initialize(){
public void initialize() {
final int numberOfShards = indexFig.getNumberOfShards();
final int numberOfReplicas = indexFig.getNumberOfReplicas();
aliasCache.invalidate(alias);
String[] reads = getIndexes(AliasedEntityIndex.AliasType.Read);
String[] writes = getIndexes(AliasedEntityIndex.AliasType.Write);

if(reads.length==0 || writes.length==0) {
if (shouldInitialize()) {
addIndex(null, numberOfShards, numberOfReplicas, indexFig.getWriteConsistencyLevel());
}
}

@Override
public boolean shouldInitialize() {
String[] reads = getIndexes(AliasedEntityIndex.AliasType.Read);
String[] writes = getIndexes(AliasedEntityIndex.AliasType.Write);
return reads.length==0 || writes.length==0;
}

@Override
public void addIndex(final String indexSuffix,final int numberOfShards, final int numberOfReplicas, final String writeConsistency) {
try {
Expand Down Expand Up @@ -216,33 +219,15 @@ public void addAlias(final String indexSuffix) {
isAck = aliasesRequestBuilder.execute().actionGet().isAcknowledged();
logger.info("Removed Index Name from Alias=[{}] ACK=[{}]", alias, isAck);
}
String[] reads = getIndexes(AliasedEntityIndex.AliasType.Read);
String[] writes = getIndexes(AliasedEntityIndex.AliasType.Write);

try {
aliasesRequestBuilder = adminClient.indices().prepareAliases();
//Added For Graphite Metrics
// add read alias
aliasesRequestBuilder.addAlias(indexName, alias.getReadAlias());
isAck = aliasesRequestBuilder.execute().actionGet().isAcknowledged();
logger.info("Created new read aliases ACK=[{}]", isAck);
} catch (InvalidAliasNameException ie) {
logger.debug("error creating read", ie);
}
try {
aliasesRequestBuilder = adminClient.indices().prepareAliases();

//Added For Graphite Metrics
//add write alias
aliasesRequestBuilder.addAlias(indexName, alias.getWriteAlias());
isAck = aliasesRequestBuilder.execute().actionGet().isAcknowledged();
logger.info("Created new write aliases ACK=[{}]", isAck);

} catch (InvalidAliasNameException ie) {
logger.debug("error creating write", ie);
}


aliasesRequestBuilder = adminClient.indices().prepareAliases();
//Added For Graphite Metrics
// add read alias
aliasesRequestBuilder.addAlias(indexName, alias.getReadAlias());
//Added For Graphite Metrics
//add write alias
aliasesRequestBuilder.addAlias(indexName, alias.getWriteAlias());
isAck = aliasesRequestBuilder.execute().actionGet().isAcknowledged();
logger.info("Created new read and write aliases ACK=[{}]", isAck);
aliasCache.invalidate(alias);

} catch (Exception e) {
Expand Down
Expand Up @@ -41,6 +41,6 @@ public String getName() {

@Override
public PluginPhase getPhase() {
return PluginPhase.MIGRATE;
return PluginPhase.BOOTSTRAP;
}
}

0 comments on commit c1643a7

Please sign in to comment.