From b12119c55b89ece2495e84fba229d96439e8219b Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 30 Jul 2010 14:52:40 +0000
Subject: [PATCH] Implements index analysis features. There are 2 components: Index Filter Analyzer : Part of DatabaseEnvironmentProvider, it gathers search filter statistics and displays the index filter, number of hits, max matching entries, and a message. Compound filters are broken down to their basic elements. f an index was not utilized while evaluating the search filter, max matching entries will be -1 and a diagnostic message will be included. The monitor entry also includes when the analyzer was enabled along with the number of total index and unindexed searches processed.
---
opends/src/server/org/opends/server/backends/jeb/IndexQuery.java | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/jeb/IndexQuery.java b/opends/src/server/org/opends/server/backends/jeb/IndexQuery.java
index a811623..ca5e097 100644
--- a/opends/src/server/org/opends/server/backends/jeb/IndexQuery.java
+++ b/opends/src/server/org/opends/server/backends/jeb/IndexQuery.java
@@ -22,14 +22,18 @@
* CDDL HEADER END
*
*
- * Copyright 2009 Sun Microsystems, Inc.
+ * Copyright 2009-2010 Sun Microsystems, Inc.
*/
package org.opends.server.backends.jeb;
+import org.opends.messages.Message;
+
import java.util.Collection;
+import java.util.List;
+
import static org.opends.server.backends.jeb.IndexFilter.*;
@@ -47,9 +51,12 @@
/**
* Evaluates the index query and returns the EntryIDSet.
*
+ * @param debugMessages If not null, diagnostic messages will be written
+ * which will help to determine why the returned
+ * EntryIDSet is not defined.
* @return The EntryIDSet as a result of evaulation of this query.
*/
- public abstract EntryIDSet evaluate();
+ public abstract EntryIDSet evaluate(List<Message> debugMessages);
@@ -107,9 +114,10 @@
{
/**
* {@inheritDoc}
+ * @param debugMessages
*/
@Override
- public EntryIDSet evaluate()
+ public EntryIDSet evaluate(List<Message> debugMessages)
{
return new EntryIDSet();
}
@@ -143,20 +151,21 @@
/**
* {@inheritDoc}
+ * @param debugMessages
*/
@Override
- public EntryIDSet evaluate()
+ public EntryIDSet evaluate(List<Message> debugMessages)
{
EntryIDSet entryIDs = null;
for (IndexQuery query : subIndexQueries)
{
if (entryIDs == null)
{
- entryIDs = query.evaluate();
+ entryIDs = query.evaluate(debugMessages);
}
else
{
- entryIDs.retainAll(query.evaluate());
+ entryIDs.retainAll(query.evaluate(debugMessages));
}
if (entryIDs.isDefined()
&& entryIDs.size() <= FILTER_CANDIDATE_THRESHOLD)
@@ -195,20 +204,21 @@
/**
* {@inheritDoc}
+ * @param debugMessages
*/
@Override
- public EntryIDSet evaluate()
+ public EntryIDSet evaluate(List<Message> debugMessages)
{
EntryIDSet entryIDs = null;
for (IndexQuery query : subIndexQueries)
{
if (entryIDs == null)
{
- entryIDs = query.evaluate();
+ entryIDs = query.evaluate(debugMessages);
}
else
{
- entryIDs.addAll(query.evaluate());
+ entryIDs.addAll(query.evaluate(debugMessages));
}
if (entryIDs.isDefined()
&& entryIDs.size() <= FILTER_CANDIDATE_THRESHOLD)
--
Gitblit v1.10.0