Author: thomasm
Date: Wed Mar 26 14:55:02 2014
New Revision: 1581876
URL: http://svn.apache.org/r1581876
Log:
OAK-382 JMX service to configure auto-cancel or long running queries
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/QueryEngineSettingsMBean.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
Modified:
jackrabbit/oak/trunk/oak-core/pom.xml
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1581876&r1=1581875&r2=1581876&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Wed Mar 26 14:55:02 2014
@@ -89,6 +89,7 @@
org.apache.jackrabbit.oak.spi.state,
org.apache.jackrabbit.oak.spi.whiteboard,
org.apache.jackrabbit.oak.spi.xml,
+ org.apache.jackrabbit.oak.query,
org.apache.jackrabbit.oak.query.fulltext,
org.apache.jackrabbit.oak.security
</Export-Package>
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java?rev=1581876&r1=1581875&r2=1581876&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
Wed Mar 26 14:55:02 2014
@@ -53,6 +53,7 @@ import org.apache.jackrabbit.oak.api.Con
import org.apache.jackrabbit.oak.api.ContentSession;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
+import org.apache.jackrabbit.oak.api.jmx.QueryEngineSettingsMBean;
import org.apache.jackrabbit.oak.api.jmx.RepositoryManagementMBean;
import org.apache.jackrabbit.oak.core.ContentRepositoryImpl;
import org.apache.jackrabbit.oak.management.RepositoryManager;
@@ -508,6 +509,9 @@ public class Oak {
registerMBean(whiteboard, IndexStatsMBean.class,
task.getIndexStats(), IndexStatsMBean.TYPE, name);
}
+
+ registerMBean(whiteboard, QueryEngineSettingsMBean.class,
+ queryEngineSettings, QueryEngineSettingsMBean.TYPE,
"settings");
// FIXME: OAK-810 move to proper workspace initialization
// initialize default workspace
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/QueryEngineSettingsMBean.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/QueryEngineSettingsMBean.java?rev=1581876&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/QueryEngineSettingsMBean.java
(added)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/jmx/QueryEngineSettingsMBean.java
Wed Mar 26 14:55:02 2014
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.api.jmx;
+
+public interface QueryEngineSettingsMBean {
+ String TYPE = "QueryEngineSettings";
+
+ /**
+ * Get the limit on how many nodes a query may read at most into memory,
for
+ * "order by" and "distinct" queries. If this limit is exceeded, the query
+ * throws an exception.
+ *
+ * @return the limit
+ */
+ long getLimitInMemory();
+
+ /**
+ * Change the limit.
+ *
+ * @param limitInMemory the new limit
+ */
+ void setLimitInMemory(long limitInMemory);
+
+ /**
+ * Get the limit on how many nodes a query may read at most (raw read
+ * operations, including skipped nodes). If this limit is exceeded, the
+ * query throws an exception.
+ *
+ * @return the limit
+ */
+ long getLimitReads();
+
+ /**
+ * Change the limit.
+ *
+ * @param limitReads the new limit
+ */
+ void setLimitReads(long limitReads);
+
+}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java?rev=1581876&r1=1581875&r2=1581876&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
Wed Mar 26 14:55:02 2014
@@ -18,10 +18,12 @@
*/
package org.apache.jackrabbit.oak.query;
+import org.apache.jackrabbit.oak.api.jmx.QueryEngineSettingsMBean;
+
/**
* Settings of the query engine.
*/
-public class QueryEngineSettings {
+public class QueryEngineSettings implements QueryEngineSettingsMBean {
private static final int DEFAULT_QUERY_LIMIT_IN_MEMORY =
Integer.getInteger("oak.queryLimitInMemory", 10000);
@@ -40,6 +42,7 @@ public class QueryEngineSettings {
*
* @return the limit
*/
+ @Override
public long getLimitInMemory() {
return limitInMemory;
}
@@ -49,6 +52,7 @@ public class QueryEngineSettings {
*
* @param limitInMemory the new limit
*/
+ @Override
public void setLimitInMemory(long limitInMemory) {
this.limitInMemory = limitInMemory;
}
@@ -60,6 +64,7 @@ public class QueryEngineSettings {
*
* @return the limit
*/
+ @Override
public long getLimitReads() {
return limitReads;
}
@@ -69,6 +74,7 @@ public class QueryEngineSettings {
*
* @param limitReads the new limit
*/
+ @Override
public void setLimitReads(long limitReads) {
this.limitReads = limitReads;
}
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java?rev=1581876&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
(added)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/package-info.java
Wed Mar 26 14:55:02 2014
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+@Version("0.16")
+@Export(optional = "provide:=true")
+package org.apache.jackrabbit.oak.query;
+
+import aQute.bnd.annotation.Version;
+import aQute.bnd.annotation.Export;
\ No newline at end of file