You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/10/21 18:19:31 UTC

usergrid git commit: Adds trace logging for debugging purposes to diagnose issue

Repository: usergrid
Updated Branches:
  refs/heads/USERGRID-1052 [created] c417099d6


Adds trace logging for debugging purposes to diagnose issue


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/c417099d
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/c417099d
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/c417099d

Branch: refs/heads/USERGRID-1052
Commit: c417099d6260163ad391c76162b673efb861bf3a
Parents: a09485a
Author: Todd Nine <tn...@apigee.com>
Authored: Wed Oct 21 10:19:28 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Wed Oct 21 10:19:28 2015 -0600

----------------------------------------------------------------------
 .../corepersistence/index/IndexServiceImpl.java |  3 +-
 .../core/astyanax/MultiRowColumnIterator.java   | 46 +++++++-------------
 .../shard/impl/ShardGroupColumnIterator.java    | 11 +++++
 .../impl/shard/impl/ShardsColumnIterator.java   | 10 +++++
 4 files changed, 38 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/c417099d/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
index d160aac..ccb6221 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/IndexServiceImpl.java
@@ -204,8 +204,9 @@ public class IndexServiceImpl implements IndexService {
 
         //If we get no search results, its possible that something was already deleted or
         //that it wasn't indexed yet. In either case we can't delete anything and return an empty observable..
-        if(crs.isEmpty())
+        if(crs.isEmpty()) {
             return Observable.empty();
+        }
 
         UUID timeUUID = UUIDUtils.isTimeBased(entityId.getUuid()) ? entityId.getUuid() : UUIDUtils.newTimeUUID();
         //not actually sure about the timestamp but ah well. works.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/c417099d/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/MultiRowColumnIterator.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/MultiRowColumnIterator.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/MultiRowColumnIterator.java
index 667992c..c6c1a12 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/MultiRowColumnIterator.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/astyanax/MultiRowColumnIterator.java
@@ -50,7 +50,7 @@ import com.netflix.astyanax.util.RangeBuilder;
  */
 public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
 
-    private static final Logger LOG = LoggerFactory.getLogger( MultiRowColumnIterator.class );
+    private static final Logger logger = LoggerFactory.getLogger( MultiRowColumnIterator.class );
 
     private final int pageSize;
 
@@ -148,6 +148,9 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
 
     public void advance() {
 
+
+        logger.trace( "Advancing multi row column iterator" );
+
         /**
          * If the edge is present, we need to being seeking from this
          */
@@ -156,7 +159,6 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
 
 
 
-        //TODO, finalize why this isn't working as expected
         final int selectSize = skipFirstColumn ? pageSize + 1 : pageSize;
 
         final RangeBuilder rangeBuilder = new RangeBuilder();
@@ -174,6 +176,7 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
 
         rangeBuilder.setLimit( selectSize );
 
+        logger.trace( "Executing cassandra query" );
 
         /**
          * Get our list of slices
@@ -242,7 +245,7 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
 
         currentColumnIterator = mergedResults.iterator();
 
-        LOG.trace( "Finished parsing {} rows for results", rowKeys.size() );
+        logger.trace( "Finished parsing {} rows for results", rowKeys.size() );
     }
 
 
@@ -275,6 +278,7 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
      */
     private List<T> singleRowResult( final Rows<R, C> result ) {
 
+        logger.trace( "Only a single row has columns.  Parsing directly" );
 
         for ( R key : result.getKeys() ) {
             final ColumnList<C> columnList = result.getRow( key ).getColumns();
@@ -307,6 +311,8 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
      */
     private List<T> mergeResults( final Rows<R, C> result, final int maxSize ) {
 
+        logger.trace( "Multiple rows have columns.  Merging" );
+
 
         final List<T> mergedResults = new ArrayList<>(maxSize);
 
@@ -354,50 +360,28 @@ public class MultiRowColumnIterator<R, C, T> implements Iterator<T> {
                     continue;
                 }
 
+                logger.trace( "Adding value {} to merged set at index {}", returnedValue, insertIndex );
+
                 mergedResults.add( insertIndex, returnedValue );
 
 
                 //prune the mergedResults
                 while ( mergedResults.size() > maxSize ) {
+
+                    logger.trace( "Trimming results to size {}", maxSize );
+
                     //just remove from our tail until the size falls to the correct value
                     mergedResults.remove(mergedResults.size()-1);
                 }
             }
 
-            LOG.trace( "Candidate result set size is {}", mergedResults.size() );
+            logger.trace( "Candidate result set size is {}", mergedResults.size() );
 
         }
         return mergedResults;
     }
 
 
-    /**
-     * Iterator wrapper that parses as it iterates for single row cases
-     */
-    private class SingleRowIterator implements Iterator<T> {
-
-        private Iterator<Column<C>> columnIterator;
-
-        private SingleRowIterator (final ColumnList<C> columns){
-            this.columnIterator = columns.iterator();
-        }
-        @Override
-        public boolean hasNext() {
-            return columnIterator.hasNext();
-        }
-
-
-        @Override
-        public T next() {
-            return columnParser.parseColumn( columnIterator.next() );
-        }
-
-
-        @Override
-        public void remove() {
-          throw new UnsupportedOperationException( "Unable to remove single row" );
-        }
-    }
 }
 
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/c417099d/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupColumnIterator.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupColumnIterator.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupColumnIterator.java
index 8779b96..a794a16 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupColumnIterator.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardGroupColumnIterator.java
@@ -28,6 +28,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.usergrid.persistence.core.astyanax.ColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.MultiKeyColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.MultiTennantColumnFamily;
@@ -51,6 +54,8 @@ import com.netflix.astyanax.util.RangeBuilder;
 public abstract class ShardGroupColumnIterator<T> implements Iterator<T> {
 
 
+    private static final Logger logger = LoggerFactory.getLogger( ShardGroupColumnIterator.class );
+
     private final Iterator<ShardEntryGroup> entryGroupIterator;
     private Iterator<T> elements;
 
@@ -108,21 +113,27 @@ public abstract class ShardGroupColumnIterator<T> implements Iterator<T> {
 
     public boolean advance(){
 
+        logger.trace( "Advancing from shard entry group iterator" );
+
         while(entryGroupIterator.hasNext()){
 
             final ShardEntryGroup group = entryGroupIterator.next();
 
+            logger.trace( "Shard entry group is {}.  Searching for edges in the shard", group );
+
             elements = getIterator( group.getReadShards() );
 
             /**
              * We're done, we have some columns to return
              */
             if(elements.hasNext()){
+                logger.trace( "Found edges in shard entry group {}", group );
                 return true;
             }
 
         }
 
+        logger.trace( "Completed iterating shard group iterator" );
 
         return false;
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/c417099d/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardsColumnIterator.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardsColumnIterator.java b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardsColumnIterator.java
index e35107c..4411c25 100644
--- a/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardsColumnIterator.java
+++ b/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/impl/ShardsColumnIterator.java
@@ -6,6 +6,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.usergrid.persistence.core.astyanax.ColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.MultiKeyColumnNameIterator;
 import org.apache.usergrid.persistence.core.astyanax.MultiRowColumnIterator;
@@ -28,6 +31,9 @@ import com.netflix.astyanax.util.RangeBuilder;
  */
 public class ShardsColumnIterator<R, C, T> implements Iterator<T> {
 
+
+    private static final Logger logger = LoggerFactory.getLogger( ShardsColumnIterator.class );
+
     private final EdgeSearcher<R, C, T> searcher;
 
     private final MultiTennantColumnFamily<ScopedRowKey<R>, C> cf;
@@ -87,6 +93,8 @@ public class ShardsColumnIterator<R, C, T> implements Iterator<T> {
      */
     private void startIterator() {
 
+        logger.trace( "Starting shards column iterator" );
+
 
         /**
          * If the edge is present, we need to being seeking from this
@@ -105,6 +113,8 @@ public class ShardsColumnIterator<R, C, T> implements Iterator<T> {
          */
         final List<ScopedRowKey<R>> rowKeys = searcher.getRowKeys();
 
+        logger.trace( "Searching with row keys {}", rowKeys );
+
         currentColumnIterator = new MultiRowColumnIterator<>( keyspace, cf,  consistencyLevel, searcher, searcher, searcher.getComparator(), rowKeys, pageSize);