private void DisplayBarrierStatistics() { LogRecordStats barrierStats = null; LogRecordStats beginTransactionStats = null; if (this.recordStats.TryGetValue(LogRecordType.Barrier, out barrierStats) && this.recordStats.TryGetValue(LogRecordType.BeginTransaction, out beginTransactionStats)) { double barrierCount = Math.Max(barrierStats.Count, 1); double transactionCount = beginTransactionStats.Count; Console.WriteLine(); Console.WriteLine("Transactions per Barrier:\t\t{0}", Math.Round(transactionCount / barrierCount, digits: 2)); } }
public void ProcessRecord(LogRecord record) { LogRecordStats stats = null; if (!this.recordStats.TryGetValue(record.RecordType, out stats)) { stats = LogRecordStatsUtil.GetStatsForRecordType(record.RecordType); this.recordStats.Add(record.RecordType, stats); } // Accumulate statistics about the records. this.TotalRecordCount++; this.TotalRecordBytes += record.RecordSize; // Allow the record stats type to process additional information about the record. stats.ProcessRecord(record); }
private OperationLogRecordStats GetOperationStats(LogRecordType recordType) { LogRecordStats stats = null; if (this.recordStats.TryGetValue(recordType, out stats)) { if (stats is OperationLogRecordStats) { return(stats as OperationLogRecordStats); } throw new ArgumentException("Record type is not an 'operation' log record.", "recordType"); } // Return an empty stats to make the math easier. return(new OperationLogRecordStats(recordType)); }