You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2016/12/30 15:57:26 UTC
[50/50] [abbrv] lucene-solr:jira/solr-9854: SOLR-9854
MetricsDirectoryFactory needs to delegate all methods. Fix tests.
SOLR-9854 MetricsDirectoryFactory needs to delegate all methods. Fix tests.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/2531fc8a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/2531fc8a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/2531fc8a
Branch: refs/heads/jira/solr-9854
Commit: 2531fc8ae6b9dd9cce8c4bfee71a5ddac6f26fe1
Parents: 1038016
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Fri Dec 30 16:55:41 2016 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Fri Dec 30 16:55:41 2016 +0100
----------------------------------------------------------------------
.../solr/core/MetricsDirectoryFactory.java | 83 +++++++++++++++++++-
.../test/org/apache/solr/core/TestConfig.java | 2 +
.../solr/handler/TestReplicationHandler.java | 13 ++-
.../admin/CoreMergeIndexesAdminHandlerTest.java | 10 ++-
.../solr/handler/admin/MetricsHandlerTest.java | 6 +-
.../apache/solr/update/SolrIndexConfigTest.java | 1 +
.../solr/update/TestIndexingPerformance.java | 3 -
7 files changed, 108 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
index 26ee4ef..7d2024a 100644
--- a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
@@ -26,16 +26,16 @@ import org.apache.lucene.store.FilterDirectory;
import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.store.IndexOutput;
-import org.apache.lucene.store.Lock;
import org.apache.lucene.store.LockFactory;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.metrics.SolrMetricManager;
+import org.apache.solr.util.plugin.SolrCoreAware;
/**
* An implementation of {@link DirectoryFactory} that decorates provided factory by
* adding metrics for directory IO operations.
*/
-public class MetricsDirectoryFactory extends DirectoryFactory {
+public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCoreAware {
private final SolrMetricManager metricManager;
private final String registry;
private final DirectoryFactory in;
@@ -132,6 +132,46 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
}
@Override
+ public boolean isSharedStorage() {
+ return in.isSharedStorage();
+ }
+
+ @Override
+ public boolean isAbsolute(String path) {
+ return in.isAbsolute(path);
+ }
+
+ @Override
+ public boolean searchersReserveCommitPoints() {
+ return in.searchersReserveCommitPoints();
+ }
+
+ @Override
+ public String getDataHome(CoreDescriptor cd) throws IOException {
+ return in.getDataHome(cd);
+ }
+
+ @Override
+ public long size(Directory directory) throws IOException {
+ return in.size(directory);
+ }
+
+ @Override
+ public long size(String path) throws IOException {
+ return in.size(path);
+ }
+
+ @Override
+ public Collection<SolrInfoMBean> offerMBeans() {
+ return in.offerMBeans();
+ }
+
+ @Override
+ public void cleanupOldIndexDirectories(String dataDirPath, String currentIndexDirPath) {
+ in.cleanupOldIndexDirectories(dataDirPath, currentIndexDirPath);
+ }
+
+ @Override
public void remove(String path, boolean afterCoreClose) throws IOException {
in.remove(path, afterCoreClose);
}
@@ -142,6 +182,11 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
}
@Override
+ public void move(Directory fromDir, Directory toDir, String fileName, IOContext ioContext) throws IOException {
+ in.move(fromDir, toDir, fileName, ioContext);
+ }
+
+ @Override
public Directory get(String path, DirContext dirContext, String rawLockType) throws IOException {
Directory dir = in.get(path, dirContext, rawLockType);
if (dir instanceof MetricsDirectory) {
@@ -152,6 +197,31 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
}
@Override
+ public void renameWithOverwrite(Directory dir, String fileName, String toName) throws IOException {
+ super.renameWithOverwrite(dir, fileName, toName);
+ }
+
+ @Override
+ public String normalize(String path) throws IOException {
+ return in.normalize(path);
+ }
+
+ @Override
+ protected boolean deleteOldIndexDirectory(String oldDirPath) throws IOException {
+ return in.deleteOldIndexDirectory(oldDirPath);
+ }
+
+ @Override
+ public void initCoreContainer(CoreContainer cc) {
+ in.initCoreContainer(cc);
+ }
+
+ @Override
+ protected Directory getBaseDir(Directory dir) {
+ return in.getBaseDir(dir);
+ }
+
+ @Override
public void incRef(Directory dir) {
// unwrap
if (dir instanceof MetricsDirectory) {
@@ -166,6 +236,13 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
}
@Override
+ public void inform(SolrCore core) {
+ if (in instanceof SolrCoreAware) {
+ ((SolrCoreAware)in).inform(core);
+ }
+ }
+
+ @Override
public void release(Directory dir) throws IOException {
// unwrap
if (dir instanceof MetricsDirectory) {
@@ -174,6 +251,8 @@ public class MetricsDirectoryFactory extends DirectoryFactory {
in.release(dir);
}
+
+
private static final String SEGMENTS = "segments_";
private static final String TEMP = "temp";
private static final String OTHER = "other";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/core/TestConfig.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java
index 55e1e17..8244b32 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfig.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java
@@ -128,6 +128,8 @@ public class TestConfig extends SolrTestCaseJ4 {
++numDefaultsTested; assertEquals("default infoStream", InfoStream.NO_OUTPUT, sic.infoStream);
+ ++numDefaultsTested; assertNotNull("default metrics", sic.metricsInfo);
+
// mergePolicyInfo and mergePolicyFactoryInfo are mutually exclusive
// so ++ count them only once for both instead of individually
++numDefaultsTested; ++numNullDefaults;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index 685ef99..345b86d 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -66,6 +66,8 @@ import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.CachingDirectoryFactory;
import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.DirectoryFactory;
+import org.apache.solr.core.MetricsDirectoryFactory;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.StandardDirectoryFactory;
import org.apache.solr.core.snapshots.SolrSnapshotMetaDataManager;
@@ -895,12 +897,21 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
}
}
+ private CachingDirectoryFactory getCachingDirectoryFactory(SolrCore core) {
+ DirectoryFactory df = core.getDirectoryFactory();
+ if (df instanceof MetricsDirectoryFactory) {
+ return (CachingDirectoryFactory)((MetricsDirectoryFactory)df).getDelegate();
+ } else {
+ return (CachingDirectoryFactory)df;
+ }
+ }
+
private void checkForSingleIndex(JettySolrRunner jetty) {
CoreContainer cores = jetty.getCoreContainer();
Collection<SolrCore> theCores = cores.getCores();
for (SolrCore core : theCores) {
String ddir = core.getDataDir();
- CachingDirectoryFactory dirFactory = (CachingDirectoryFactory) core.getDirectoryFactory();
+ CachingDirectoryFactory dirFactory = getCachingDirectoryFactory(core);
synchronized (dirFactory) {
Set<String> livePaths = dirFactory.getLivePaths();
// one for data, one for hte index under data and one for the snapshot metadata.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
index 6f1a802..937cc86 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
@@ -24,6 +24,8 @@ import org.apache.lucene.store.LockFactory;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.DirectoryFactory;
+import org.apache.solr.core.MetricsDirectoryFactory;
import org.apache.solr.core.MockFSDirectoryFactory;
import org.apache.solr.core.SolrCore;
import org.apache.solr.response.SolrQueryResponse;
@@ -75,7 +77,13 @@ public class CoreMergeIndexesAdminHandlerTest extends SolrTestCaseJ4 {
final CoreAdminHandler admin = new CoreAdminHandler(cores);
try (SolrCore core = cores.getCore("collection1")) {
- FailingDirectoryFactory dirFactory = (FailingDirectoryFactory)core.getDirectoryFactory();
+ DirectoryFactory df = core.getDirectoryFactory();
+ FailingDirectoryFactory dirFactory;
+ if (df instanceof MetricsDirectoryFactory) {
+ dirFactory = (FailingDirectoryFactory)((MetricsDirectoryFactory)df).getDelegate();
+ } else {
+ dirFactory = (FailingDirectoryFactory)df;
+ }
try {
dirFactory.fail = true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
index 3667285..e15778d 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
@@ -49,9 +49,9 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 {
assertNotNull(values.get("solr.node"));
NamedList nl = (NamedList) values.get("solr.core.collection1");
assertNotNull(nl);
- assertNotNull(nl.get("newSearcherErrors")); // counter type
- assertNotNull(((NamedList) nl.get("newSearcherErrors")).get("requests"));
- assertEquals(0L, ((NamedList) nl.get("newSearcherErrors")).get("requests"));
+ assertNotNull(nl.get("SEARCHER.new.errors")); // counter type
+ assertNotNull(((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
+ assertEquals(0L, ((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
nl = (NamedList) values.get("solr.node");
assertNotNull(nl.get("cores.loaded")); // int gauge
assertEquals(1, ((NamedList) nl.get("cores.loaded")).get("value"));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index 4fec5c3..7d1c4c7 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -197,6 +197,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
} else {
assertNull(m.get("mergedSegmentWarmer"));
}
+ ++mSizeExpected; assertNotNull(m.get("metrics"));
assertEquals(mSizeExpected, m.size());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/2531fc8a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java b/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
index f9f0b58..6aee5bd 100644
--- a/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
+++ b/solr/core/src/test/org/apache/solr/update/TestIndexingPerformance.java
@@ -122,9 +122,6 @@ public class TestIndexingPerformance extends AbstractSolrTestCase {
//discard all the changes
updateHandler.rollback(new RollbackUpdateCommand(req));
- try {
- Thread.sleep(10000000);
- } catch (Exception e) {}
req.close();
}