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