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

[1/7] usergrid git commit: Fix delete so that it doesn't return null

Repository: usergrid
Updated Branches:
  refs/heads/release 9bc22410d -> 9bfbc531c


Fix delete so that it doesn't return null


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

Branch: refs/heads/release
Commit: 88f6feae8c8d635598954ee9a5d239eda42653bd
Parents: 9bc2241
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Nov 19 09:43:36 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Nov 19 09:43:36 2015 -0800

----------------------------------------------------------------------
 .../asyncevents/EventBuilderImpl.java           | 39 +++++++++-----------
 1 file changed, 17 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/88f6feae/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index d819f39..9b68c4c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -125,42 +125,37 @@ public class EventBuilderImpl implements EventBuilder {
         log.debug( "Deleting entity id from index in app scope {} with entityId {} }", applicationScope, entityId );
 
         final EntityCollectionManager ecm = entityCollectionManagerFactory.createCollectionManager( applicationScope );
-
         final GraphManager gm = graphManagerFactory.createEdgeManager( applicationScope );
 
+        //TODO USERGRID-1123: Implement so we don't iterate logs twice (latest DELETED version, then to get all DELETED)
 
-        //TODO: change this to be an observable
-        //so we get these versions and loop through them until we find the MvccLogEntry that is marked as delete.
-        //TODO: evauluate this to possibly be an observable to pass to the nextmethod.
         MvccLogEntry mostRecentlyMarked = ecm.getVersions( entityId ).toBlocking()
                                              .firstOrDefault( null,
                                                  mvccLogEntry -> mvccLogEntry.getState() == MvccLogEntry.State.DELETED );
 
-        //If there is nothing marked then we shouldn't return any results.
-        //TODO: evaluate if we want to return null or return empty observable when we don't have any results marked as deleted.
-        if(mostRecentlyMarked == null)
-            return null;
+        // De-indexing and entity deletes don't check log entiries.  We must do that first. If no DELETED logs, then
+        // return an empty observable as our no-op.
+        Observable<IndexOperationMessage> deIndexObservable = Observable.empty();
+        Observable<List<MvccLogEntry>> ecmDeleteObservable = Observable.empty();
 
-        //observable of index operation messages
-        //this method will need the most recent version.
-        //When we go to compact the graph make sure you turn on the debugging mode for the deleted nodes so
-        //we can verify that we mark them. That said that part seems kinda done. as we also delete the mvcc buffers.
-        final Observable<IndexOperationMessage> edgeObservable =
-            indexService.deleteEntityIndexes( applicationScope, entityId, mostRecentlyMarked.getVersion() );
+        if(mostRecentlyMarked != null){
+            deIndexObservable =
+                indexService.deleteEntityIndexes( applicationScope, entityId, mostRecentlyMarked.getVersion() );
 
+            ecmDeleteObservable =
+                ecm.getVersions( entityId )
+                    .filter( mvccLogEntry-> mvccLogEntry.getState() == MvccLogEntry.State.DELETED)
+                    .buffer( serializationFig.getBufferSize() )
+                    .doOnNext( buffer -> ecm.delete( buffer ) );
 
-        //TODO: not sure what we need the list of versions here when we search for the mark above
-        //observable of entries as the batches are deleted
-        final Observable<List<MvccLogEntry>> entries =
-            ecm.getVersions( entityId ).buffer( serializationFig.getBufferSize() )
-               .doOnNext( buffer -> ecm.delete( buffer ) );
 
+        }
 
-        // observable of the edge delete from graph
-        final Observable<Id> compactedNode = gm.compactNode(entityId);
 
+        // Graph compaction checks the versions inside compactNode, just build this up for the caller to subscribe to
+        final Observable<Id> graphCompactObservable = gm.compactNode(entityId);
 
-        return new EntityDeleteResults( edgeObservable, entries, compactedNode );
+        return new EntityDeleteResults( deIndexObservable, ecmDeleteObservable, graphCompactObservable );
     }
 
 


[7/7] usergrid git commit: formatting change only. This closes #442

Posted by sn...@apache.org.
formatting change only. This closes #442


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

Branch: refs/heads/release
Commit: 9bfbc531c4e70eedaff435033512e0d48f8df25c
Parents: e5b9730
Author: Dave Johnson <sn...@apache.org>
Authored: Thu Nov 19 15:34:44 2015 -0500
Committer: Dave Johnson <sn...@apache.org>
Committed: Thu Nov 19 15:34:44 2015 -0500

----------------------------------------------------------------------
 .../usergrid/persistence/model/entity/MapToEntityConverter.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/9bfbc531/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
index a225820..aff7439 100644
--- a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
+++ b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
@@ -47,7 +47,8 @@ public class MapToEntityConverter{
         return fromMap( entity, map, null, null, topLevel );
     }
 
-    public Entity fromMap(final Entity entity,final  Map<String, Object> map,final  SchemaManager schemaManager, final String entityType, boolean topLevel) {
+    public Entity fromMap(final Entity entity,final  Map<String, Object> map,final
+        SchemaManager schemaManager, final String entityType, boolean topLevel) {
 
         for ( String fieldName : map.keySet() ) {
 


[3/7] usergrid git commit: Don't filter out properties that have name of 'size'. The internal size prop is noted in our metadata object, not at the root fields level.

Posted by sn...@apache.org.
Don't filter out properties that have name of 'size'.  The internal size prop is noted in our metadata object, not at the root fields level.


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

Branch: refs/heads/release
Commit: aea926411c29e57e6d65cd50cbacf921821b16e1
Parents: faa234a
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Nov 19 11:07:55 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Nov 19 11:07:55 2015 -0800

----------------------------------------------------------------------
 .../usergrid/persistence/model/entity/MapToEntityConverter.java  | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/aea92641/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
index 2357a57..a225820 100644
--- a/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
+++ b/stack/corepersistence/model/src/main/java/org/apache/usergrid/persistence/model/entity/MapToEntityConverter.java
@@ -50,9 +50,7 @@ public class MapToEntityConverter{
     public Entity fromMap(final Entity entity,final  Map<String, Object> map,final  SchemaManager schemaManager, final String entityType, boolean topLevel) {
 
         for ( String fieldName : map.keySet() ) {
-            if(fieldName.equals("size")){
-                continue;
-            }
+
             Object value = map.get( fieldName );
             boolean unique = schemaManager == null ? topLevel :  topLevel && schemaManager.isPropertyUnique(entityType, fieldName);
             //cannot store fields that aren't locations


[6/7] usergrid git commit: format change only

Posted by sn...@apache.org.
format change only


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

Branch: refs/heads/release
Commit: e5b97304ebe2dcccce32ea18c7d7994130ca5738
Parents: be9bcb0
Author: Dave Johnson <sn...@apache.org>
Authored: Thu Nov 19 15:29:39 2015 -0500
Committer: Dave Johnson <sn...@apache.org>
Committed: Thu Nov 19 15:29:39 2015 -0500

----------------------------------------------------------------------
 .../corepersistence/asyncevents/EventBuilderImpl.java       | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/e5b97304/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index 48df8d0..d624132 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -131,8 +131,7 @@ public class EventBuilderImpl implements EventBuilder {
         //TODO USERGRID-1123: Implement so we don't iterate logs twice (latest DELETED version, then to get all DELETED)
 
         MvccLogEntry mostRecentlyMarked = ecm.getVersions( entityId ).toBlocking()
-                                             .firstOrDefault( null,
-                                                 mvccLogEntry -> mvccLogEntry.getState() == MvccLogEntry.State.DELETED );
+            .firstOrDefault( null, mvccLogEntry -> mvccLogEntry.getState() == MvccLogEntry.State.DELETED );
 
         // De-indexing and entity deletes don't check log entiries.  We must do that first. If no DELETED logs, then
         // return an empty observable as our no-op.
@@ -145,14 +144,12 @@ public class EventBuilderImpl implements EventBuilder {
 
             ecmDeleteObservable =
                 ecm.getVersions( entityId )
-                    .filter( mvccLogEntry-> UUIDUtils.compare(mvccLogEntry.getVersion(), mostRecentlyMarked.getVersion()) <= 0)
+                    .filter( mvccLogEntry->
+                        UUIDUtils.compare(mvccLogEntry.getVersion(), mostRecentlyMarked.getVersion()) <= 0)
                     .buffer( serializationFig.getBufferSize() )
                     .doOnNext( buffer -> ecm.delete( buffer ) );
-
-
         }
 
-
         // Graph compaction checks the versions inside compactNode, just build this up for the caller to subscribe to
         final Observable<Id> graphCompactObservable = gm.compactNode(entityId);
 


[5/7] usergrid git commit: Fix it to be <=

Posted by sn...@apache.org.
Fix it to be <=


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

Branch: refs/heads/release
Commit: be9bcb0b3f84f2ba09db22f7ea25c42762a44ddd
Parents: 1b1ed8b
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Nov 19 12:23:44 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Nov 19 12:23:44 2015 -0800

----------------------------------------------------------------------
 .../usergrid/corepersistence/asyncevents/EventBuilderImpl.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/be9bcb0b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index c9ae6da..48df8d0 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -145,7 +145,7 @@ public class EventBuilderImpl implements EventBuilder {
 
             ecmDeleteObservable =
                 ecm.getVersions( entityId )
-                    .filter( mvccLogEntry-> UUIDUtils.compare(mvccLogEntry.getVersion(), mostRecentlyMarked.getVersion()) < 0)
+                    .filter( mvccLogEntry-> UUIDUtils.compare(mvccLogEntry.getVersion(), mostRecentlyMarked.getVersion()) <= 0)
                     .buffer( serializationFig.getBufferSize() )
                     .doOnNext( buffer -> ecm.delete( buffer ) );
 


[4/7] usergrid git commit: Use UUID compare for more precision.

Posted by sn...@apache.org.
Use UUID compare for more precision.


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

Branch: refs/heads/release
Commit: 1b1ed8b63bbfd3c5fcf6f0e4a09f2009e8709d53
Parents: aea9264
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Nov 19 12:21:48 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Nov 19 12:21:48 2015 -0800

----------------------------------------------------------------------
 .../usergrid/corepersistence/asyncevents/EventBuilderImpl.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/1b1ed8b6/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index f7f7ba3..c9ae6da 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -22,6 +22,7 @@ package org.apache.usergrid.corepersistence.asyncevents;
 
 import java.util.List;
 
+import org.apache.usergrid.utils.UUIDUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -144,7 +145,7 @@ public class EventBuilderImpl implements EventBuilder {
 
             ecmDeleteObservable =
                 ecm.getVersions( entityId )
-                    .filter( mvccLogEntry-> mvccLogEntry.getVersion().timestamp() <= mostRecentlyMarked.getVersion().timestamp())
+                    .filter( mvccLogEntry-> UUIDUtils.compare(mvccLogEntry.getVersion(), mostRecentlyMarked.getVersion()) < 0)
                     .buffer( serializationFig.getBufferSize() )
                     .doOnNext( buffer -> ecm.delete( buffer ) );
 


[2/7] usergrid git commit: Update filter to allow removal of all entities older than the last marked version.

Posted by sn...@apache.org.
Update filter to allow removal of all entities older than the last marked version.


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

Branch: refs/heads/release
Commit: faa234a85f1526a17a6f7d3049a7cb0820816190
Parents: 88f6fea
Author: Michael Russo <mi...@gmail.com>
Authored: Thu Nov 19 10:51:22 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Thu Nov 19 10:51:22 2015 -0800

----------------------------------------------------------------------
 .../usergrid/corepersistence/asyncevents/EventBuilderImpl.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/faa234a8/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
index 9b68c4c..f7f7ba3 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/EventBuilderImpl.java
@@ -144,7 +144,7 @@ public class EventBuilderImpl implements EventBuilder {
 
             ecmDeleteObservable =
                 ecm.getVersions( entityId )
-                    .filter( mvccLogEntry-> mvccLogEntry.getState() == MvccLogEntry.State.DELETED)
+                    .filter( mvccLogEntry-> mvccLogEntry.getVersion().timestamp() <= mostRecentlyMarked.getVersion().timestamp())
                     .buffer( serializationFig.getBufferSize() )
                     .doOnNext( buffer -> ecm.delete( buffer ) );