public void insertFull ( Collection < ? extends IMetric > metrics , boolean isRecordingDelayedMetrics , Clock clock ) throws ConnectionException { Timer . Context ctx = Instrumentation . getWriteTimerContext ( CassandraModel . CF_METRICS_FULL_NAME ) ; try { MutationBatch mutationBatch = keyspace . prepareMutationBatch ( ) ; for ( IMetric metric : metrics ) { final Locator locator = metric . getLocator ( ) ; // key = shard // col = locator (acct + entity + check + dimension.metric) // value = <nothing> if ( ! LocatorCache . getInstance ( ) . isLocatorCurrentInBatchLayer ( locator ) ) { if ( mutationBatch != null ) insertLocator ( locator , mutationBatch ) ; LocatorCache . getInstance ( ) . setLocatorCurrentInBatchLayer ( locator ) ; } if ( isRecordingDelayedMetrics ) { //retaining the same conditional logic that was used to insertLocator(locator, batch) above. if ( mutationBatch != null ) { insertLocatorIfDelayed ( metric , mutationBatch , clock ) ; } } insertMetric ( metric , mutationBatch ) ; Instrumentation . markFullResMetricWritten ( ) ; } // insert it try { mutationBatch . execute ( ) ; } catch ( ConnectionException e ) { Instrumentation . markWriteError ( e ) ; log . error ( "Connection exception during insertFull" , e ) ; throw e ; } } finally { ctx . stop ( ) ; } }
single column updates ) .