You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2014/03/17 14:47:12 UTC

svn commit: r1578373 - in /incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector: CassandraSirona.java pathtracking/CassandraPathTrackingDataStore.java

Author: olamy
Date: Mon Mar 17 13:47:11 2014
New Revision: 1578373

URL: http://svn.apache.org/r1578373
Log:
fix possible insertion issue on non embeded cassandra

Modified:
    incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java
    incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java

Modified: incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java?rev=1578373&r1=1578372&r2=1578373&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/CassandraSirona.java Mon Mar 17 13:47:11 2014
@@ -92,11 +92,12 @@ public class CassandraSirona {
         pathTracking.setComparatorType( ComparatorType.UTF8TYPE );
 
         // creating indexes for cql query
+
         BasicColumnDefinition levelColumn = new BasicColumnDefinition();
         levelColumn.setName( StringSerializer.get().toByteBuffer("level"));
         levelColumn.setIndexName("level");
         levelColumn.setIndexType( ColumnIndexType.KEYS);
-        levelColumn.setValidationClass(ComparatorType.INTEGERTYPE.getClassName());
+        levelColumn.setValidationClass(ComparatorType.LONGTYPE.getClassName());
         pathTracking.addColumnDefinition( levelColumn  );
 
         BasicColumnDefinition startTimeColumn = new BasicColumnDefinition();
@@ -106,6 +107,15 @@ public class CassandraSirona {
         startTimeColumn.setValidationClass(ComparatorType.LONGTYPE.getClassName());
         pathTracking.addColumnDefinition( startTimeColumn  );
 
+        // force the validation class for this column as can fail on non embeded cassandra
+        BasicColumnDefinition executionTimeColumn = new BasicColumnDefinition();
+        executionTimeColumn.setName( StringSerializer.get().toByteBuffer("executionTime"));
+        //startTimeColumn.setIndexName("startTime");
+        //startTimeColumn.setIndexType( ColumnIndexType.KEYS);
+        executionTimeColumn.setValidationClass(ComparatorType.LONGTYPE.getClassName());
+        pathTracking.addColumnDefinition( executionTimeColumn  );
+
+
         final ColumnFamilyDefinition markerPathTracking =
             HFactory.createColumnFamilyDefinition( keyspaceName, builder.getMarkerPathTrackingColumFamily(), ComparatorType.UTF8TYPE);
 

Modified: incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java?rev=1578373&r1=1578372&r2=1578373&view=diff
==============================================================================
--- incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/server/store/cassandra/src/main/java/org/apache/sirona/cassandra/collector/pathtracking/CassandraPathTrackingDataStore.java Mon Mar 17 13:47:11 2014
@@ -23,8 +23,10 @@ import me.prettyprint.hector.api.Keyspac
 import me.prettyprint.hector.api.beans.ColumnSlice;
 import me.prettyprint.hector.api.beans.OrderedRows;
 import me.prettyprint.hector.api.beans.Row;
+import me.prettyprint.hector.api.exceptions.HInvalidRequestException;
 import me.prettyprint.hector.api.factory.HFactory;
 import me.prettyprint.hector.api.query.QueryResult;
+import org.apache.cassandra.thrift.InvalidRequestException;
 import org.apache.sirona.cassandra.DynamicDelegatedSerializer;
 import org.apache.sirona.cassandra.collector.CassandraSirona;
 import org.apache.sirona.configuration.ioc.IoCs;
@@ -99,18 +101,26 @@ public class CassandraPathTrackingDataSt
         {
             final String id = id( pathTrackingEntry );
 
-            HFactory.createMutator( keyspace, StringSerializer.get() )
-                //  values
-                .addInsertion( id, family, column( "trackingId", pathTrackingEntry.getTrackingId() ) ) //
-                .addInsertion( id, family, column( "nodeId", pathTrackingEntry.getNodeId() ) ) //
-                .addInsertion( id, family, column( "className", pathTrackingEntry.getClassName() ) ) //
-                .addInsertion( id, family, column( "methodName", pathTrackingEntry.getMethodName() ) ) //
-                .addInsertion( id, family, column( "startTime", pathTrackingEntry.getStartTime() ) ) //
-                .addInsertion( id, family, column( "executionTime", pathTrackingEntry.getExecutionTime() ) ) //
+            try
+            {
+                HFactory.createMutator( keyspace, StringSerializer.get() )
+                    //  values
+                    .addInsertion( id, family, column( "trackingId", pathTrackingEntry.getTrackingId() ) ) //
+                    .addInsertion( id, family, column( "nodeId", pathTrackingEntry.getNodeId() ) ) //
+                    .addInsertion( id, family, column( "className", pathTrackingEntry.getClassName() ) ) //
+                    .addInsertion( id, family, column( "methodName", pathTrackingEntry.getMethodName() ) ) //
+                    .addInsertion( id, family, column( "startTime", pathTrackingEntry.getStartTime() ) ) //
+                    .addInsertion( id, family, column( "executionTime", pathTrackingEntry.getExecutionTime() ) ) //
                     // we force level as long to be able to do slice queries include filtering on level, startTime
-                .addInsertion( id, family, column( "level", Long.valueOf( pathTrackingEntry.getLevel() ) ) ) //
-                .addInsertion( "PATH_TRACKING", markerFamilly, emptyColumn( id ) ) //
-                .execute();
+                    .addInsertion( id, family, column( "level", Long.valueOf( pathTrackingEntry.getLevel() ) ) ) //
+                    .addInsertion( "PATH_TRACKING", markerFamilly, emptyColumn( id ) ) //
+                    .execute();
+            }
+            catch ( HInvalidRequestException e )
+            {
+                // ignore but log it
+                e.printStackTrace();
+            }
         }
     }