From 529d25480ab6f23e7273f796ca719b0843c32e49 Mon Sep 17 00:00:00 2001 From: Craig Taverner Date: Wed, 20 Apr 2016 11:58:32 +0200 Subject: [PATCH] Merge remote-tracking branch 'upstream/2.3' into 3.0 --- .../impl/api/index/sampling/NonUniqueIndexSampler.java | 7 ++++++- .../impl/schema/sampler/NonUniqueLuceneIndexSampler.java | 7 +++++-- .../java/org/neo4j/index/IndexSamplingIntegrationTest.java | 5 +++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/NonUniqueIndexSampler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/NonUniqueIndexSampler.java index 978c92e279fea..dba409e73fe63 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/NonUniqueIndexSampler.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/NonUniqueIndexSampler.java @@ -77,6 +77,11 @@ public void exclude( String value, long decrement ) } public IndexSample result() + { + return result( -1 ); + } + + public IndexSample result( int numDocs ) { if ( !values.isEmpty() ) { @@ -86,7 +91,7 @@ public IndexSample result() long uniqueValues = sampledSteps != 0 ? accumulatedUniqueValues / sampledSteps : 0; long sampledSize = sampledSteps != 0 ? accumulatedSampledSize / sampledSteps : 0; - return new IndexSample( accumulatedSampledSize, uniqueValues, sampledSize ); + return new IndexSample( numDocs < 0 ? accumulatedSampledSize : numDocs, uniqueValues, sampledSize ); } private void nextStep() diff --git a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/sampler/NonUniqueLuceneIndexSampler.java b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/sampler/NonUniqueLuceneIndexSampler.java index 040b051bc15bb..a5e6d47e04752 100644 --- a/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/sampler/NonUniqueLuceneIndexSampler.java +++ b/community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/schema/sampler/NonUniqueLuceneIndexSampler.java @@ -20,6 +20,7 @@ package org.neo4j.kernel.api.impl.schema.sampler; import org.apache.lucene.index.Fields; +import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.Terms; import org.apache.lucene.index.TermsEnum; @@ -58,7 +59,8 @@ public NonUniqueLuceneIndexSampler( IndexSearcher indexSearcher, TaskControl tas protected IndexSample performSampling() throws IndexNotFoundKernelException { NonUniqueIndexSampler sampler = new NonUniqueIndexSampler( indexSamplingConfig.bufferSize() ); - for ( LeafReaderContext readerContext : indexSearcher.getIndexReader().leaves() ) + IndexReader indexReader = indexSearcher.getIndexReader(); + for ( LeafReaderContext readerContext : indexReader.leaves() ) { try { @@ -83,8 +85,9 @@ protected IndexSample performSampling() throws IndexNotFoundKernelException throw new RuntimeException( e ); } } + Thread.dumpStack(); - return sampler.result(); + return sampler.result( indexReader.numDocs() ); } private static Set getFieldNamesToSample( LeafReaderContext readerContext ) throws IOException diff --git a/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java b/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java index 6f42beee93334..96babcf696810 100644 --- a/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java +++ b/community/neo4j/src/test/java/org/neo4j/index/IndexSamplingIntegrationTest.java @@ -206,10 +206,11 @@ private DoubleLongRegister fetchIndexSizeValues( GraphDatabaseService db ) try { // Then - db = new TestGraphDatabaseFactory().newEmbeddedDatabase( testDirectory.graphDbDir().getAbsolutePath() ); + db = new TestGraphDatabaseFactory().newEmbeddedDatabase( testDirectory.graphDbDir() ); @SuppressWarnings( "deprecation" ) GraphDatabaseAPI api = (GraphDatabaseAPI) db; - CountsTracker countsTracker = api.getDependencyResolver().resolveDependency( NeoStore.class ).getCounts(); + CountsTracker countsTracker = api.getDependencyResolver().resolveDependency( RecordStorageEngine.class ) + .testAccessNeoStores().getCounts(); IndexStatisticsKey key = CountsKeyFactory.indexStatisticsKey( 0, 0 ); // cheating a bit... return countsTracker.get( key, Registers.newDoubleLongRegister() ); }