public EsEntityIndexBatchImpl( final IndexLocationStrategy locationStrategy, final EntityIndex entityIndex ) { this.indexLocationStrategy = locationStrategy; this.entityIndex = entityIndex; this.applicationScope = indexLocationStrategy.getApplicationScope(); this.alias = indexLocationStrategy.getAlias(); //constrained this.container = new IndexOperationMessage(); }
private long getIndexSize(){ long indexSize = 0L; final String indexName = indexLocationStrategy.getIndexInitialName(); try { final IndicesStatsResponse statsResponse = esProvider.getClient() .admin() .indices() .prepareStats(indexName) .all() .execute() .actionGet(); final CommonStats indexStats = statsResponse.getIndex(indexName).getTotal(); indexSize = indexStats.getStore().getSizeInBytes(); } catch (IndexMissingException e) { // if for some reason the index size does not exist, // log an error and we can assume size is 0 as it doesn't exist logger.error("Unable to get size for index {} due to IndexMissingException for app {}", indexName, indexLocationStrategy.getApplicationScope().getApplication().getUuid()); } return indexSize; }
public ReplicatedIndexLocationStrategy(IndexLocationStrategy indexLocationStrategy){ rootName = indexLocationStrategy.getIndexRootName(); indexInitialName = indexLocationStrategy.getIndexInitialName(); applicationScope = indexLocationStrategy.getApplicationScope(); numberShards = indexLocationStrategy.getNumberOfShards(); numberReplicas = indexLocationStrategy.getNumberOfReplicas(); alias = new ReplicatedIndexAlias( indexLocationStrategy.getAlias() ); }
@Inject public EsEntityIndexImpl( final EsProvider provider, final IndexCache indexCache, final IndexFig indexFig, final MetricsFactory metricsFactory, final IndexLocationStrategy indexLocationStrategy ) { this.indexFig = indexFig; this.indexLocationStrategy = indexLocationStrategy; this.failureMonitor = new FailureMonitorImpl( indexFig, provider ); this.esProvider = provider; this.alias = indexLocationStrategy.getAlias(); this.aliasCache = indexCache; this.applicationScope = indexLocationStrategy.getApplicationScope(); this.cursorTimeout = indexFig.getQueryCursorTimeout(); this.queryTimeout = indexFig.getWriteTimeout(); this.searchRequest = new SearchRequestBuilderStrategy(esProvider, applicationScope, alias, cursorTimeout ); this.searchRequestBuilderStrategyV2 = new SearchRequestBuilderStrategyV2( esProvider, applicationScope, alias, cursorTimeout ); this.addTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.add"); this.updateAliasTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.update_alias"); this.mappingTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "index.create_mapping"); this.refreshIndexMeter = metricsFactory.getMeter(EsEntityIndexImpl.class, "index.refresh_index"); this.searchTimer = metricsFactory.getTimer(EsEntityIndexImpl.class, "search"); this.aggregationTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "aggregations" ); this.refreshTimer = metricsFactory.getTimer( EsEntityIndexImpl.class, "index.refresh" ); }
@Test public void testReplication(){ IndexLocationStrategy indexLocationStrategy = indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope); ReplicatedIndexLocationStrategy replicatedIndexLocationStrategy = new ReplicatedIndexLocationStrategy(indexLocationStrategy); assertEquals(replicatedIndexLocationStrategy.getApplicationScope(),indexLocationStrategy.getApplicationScope()); assertEquals(replicatedIndexLocationStrategy.getIndexInitialName(),indexLocationStrategy.getIndexInitialName()); assertEquals(replicatedIndexLocationStrategy.getIndexRootName(),indexLocationStrategy.getIndexRootName()); assertEquals(replicatedIndexLocationStrategy.getNumberOfReplicas(), indexLocationStrategy.getNumberOfReplicas()); assertEquals(replicatedIndexLocationStrategy.getNumberOfShards(),indexLocationStrategy.getNumberOfShards()); assertEquals(replicatedIndexLocationStrategy.getAlias().getReadAlias(),indexLocationStrategy.getAlias().getReadAlias()); assertEquals(replicatedIndexLocationStrategy.getAlias().getWriteAlias(),indexLocationStrategy.getAlias().getWriteAlias()); }