@@ -150,23 +150,30 @@ void run_stats::set_end_time(struct timeval* end_time)
150150 end_time = &tv;
151151 }
152152 m_end_time = *end_time;
153+ summarize_current_second ();
153154 m_stats.push_back (m_cur_stats);
154155}
155156
157+ void run_stats::summarize_current_second (){
158+ m_cur_stats.m_get_cmd .summarize_quantiles (inst_m_get_latency_histogram,quantiles_list);
159+ m_cur_stats.m_set_cmd .summarize_quantiles (inst_m_set_latency_histogram,quantiles_list);
160+ m_cur_stats.m_wait_cmd .summarize_quantiles (inst_m_wait_latency_histogram,quantiles_list);
161+ m_cur_stats.m_total_cmd .summarize_quantiles (inst_m_totals_latency_histogram,quantiles_list);
162+ for (unsigned int i=0 ; i<m_cur_stats.m_ar_commands .size (); i++) {
163+ m_cur_stats.m_ar_commands [i].summarize_quantiles (inst_m_ar_commands_latency_histograms[i],quantiles_list);
164+ hdr_reset (inst_m_ar_commands_latency_histograms[i]);
165+ }
166+ hdr_reset (inst_m_get_latency_histogram);
167+ hdr_reset (inst_m_set_latency_histogram);
168+ hdr_reset (inst_m_wait_latency_histogram);
169+ hdr_reset (inst_m_totals_latency_histogram);
170+ }
171+
156172void run_stats::roll_cur_stats (struct timeval * ts)
157173{
158174 const unsigned int sec = ts_diff (m_start_time, *ts) / 1000000 ;
159175 if (sec > m_cur_stats.m_second ) {
160- m_cur_stats.m_get_cmd .summarize_quantiles (inst_m_get_latency_histogram,quantiles_list);
161- m_cur_stats.m_set_cmd .summarize_quantiles (inst_m_set_latency_histogram,quantiles_list);
162- m_cur_stats.m_wait_cmd .summarize_quantiles (inst_m_wait_latency_histogram,quantiles_list);
163- for (unsigned int i=0 ; i<m_cur_stats.m_ar_commands .size (); i++) {
164- m_cur_stats.m_ar_commands [i].summarize_quantiles (inst_m_ar_commands_latency_histograms[i],quantiles_list);
165- hdr_reset (inst_m_ar_commands_latency_histograms[i]);
166- }
167- hdr_reset (inst_m_get_latency_histogram);
168- hdr_reset (inst_m_set_latency_histogram);
169- hdr_reset (inst_m_wait_latency_histogram);
176+ summarize_current_second ();
170177 m_stats.push_back (m_cur_stats);
171178 m_cur_stats.reset (sec);
172179 }
@@ -176,104 +183,134 @@ void run_stats::update_get_op(struct timeval* ts, unsigned int bytes_rx, unsigne
176183{
177184 roll_cur_stats (ts);
178185 m_cur_stats.m_get_cmd .update_op (bytes_rx, bytes_tx, latency, hits, misses);
186+ m_cur_stats.m_total_cmd .update_op (bytes_rx, bytes_tx, latency, hits, misses);
179187 m_totals.update_op (bytes_rx, bytes_tx, latency);
180188 hdr_record_value (m_get_latency_histogram,latency);
181189 hdr_record_value (inst_m_get_latency_histogram,latency);
190+ hdr_record_value (m_totals_latency_histogram,latency);
191+ hdr_record_value (inst_m_totals_latency_histogram,latency);
182192}
183193
184194void run_stats::update_set_op (struct timeval * ts, unsigned int bytes_rx, unsigned int bytes_tx, unsigned int latency)
185195{
186196 roll_cur_stats (ts);
187197
188198 m_cur_stats.m_set_cmd .update_op (bytes_rx, bytes_tx, latency);
199+ m_cur_stats.m_total_cmd .update_op (bytes_rx, bytes_tx, latency);
189200 m_totals.update_op (bytes_rx, bytes_tx, latency);
190201 hdr_record_value (m_set_latency_histogram,latency);
191202 hdr_record_value (inst_m_set_latency_histogram,latency);
203+ hdr_record_value (m_totals_latency_histogram,latency);
204+ hdr_record_value (inst_m_totals_latency_histogram,latency);
192205}
193206
194207void run_stats::update_moved_get_op (struct timeval * ts, unsigned int bytes_rx, unsigned int bytes_tx, unsigned int latency)
195208{
196209 roll_cur_stats (ts);
197210
198211 m_cur_stats.m_get_cmd .update_moved_op (bytes_rx, bytes_tx, latency);
212+ m_cur_stats.m_total_cmd .update_op (bytes_rx, bytes_tx, latency);
199213 m_totals.update_op (bytes_rx, bytes_tx, latency);
200214 hdr_record_value (m_get_latency_histogram,latency);
201215 hdr_record_value (inst_m_get_latency_histogram,latency);
216+ hdr_record_value (m_totals_latency_histogram,latency);
217+ hdr_record_value (inst_m_totals_latency_histogram,latency);
202218}
203219
204220void run_stats::update_moved_set_op (struct timeval * ts, unsigned int bytes_rx, unsigned int bytes_tx, unsigned int latency)
205221{
206222 roll_cur_stats (ts);
207223
208224 m_cur_stats.m_set_cmd .update_moved_op (bytes_rx, bytes_tx, latency);
225+ m_cur_stats.m_total_cmd .update_moved_op (bytes_rx, bytes_tx, latency);
209226 m_totals.update_op (bytes_rx, bytes_tx, latency);
210227 hdr_record_value (m_set_latency_histogram,latency);
211228 hdr_record_value (inst_m_set_latency_histogram,latency);
229+ hdr_record_value (m_totals_latency_histogram,latency);
230+ hdr_record_value (inst_m_totals_latency_histogram,latency);
212231}
213232
214233void run_stats::update_moved_arbitrary_op (struct timeval *ts, unsigned int bytes_rx, unsigned int bytes_tx,
215234 unsigned int latency, size_t request_index) {
216235 roll_cur_stats (ts);
217236
218237 m_cur_stats.m_ar_commands .at (request_index).update_moved_op (bytes_rx, bytes_tx, latency);
238+ m_cur_stats.m_total_cmd .update_op (bytes_rx, bytes_tx, latency);
219239 m_totals.update_op (bytes_rx, bytes_tx, latency);
220240
221241 struct hdr_histogram * hist = m_ar_commands_latency_histograms.at (request_index);
222242 hdr_record_value (hist,latency);
243+ hdr_record_value (m_totals_latency_histogram,latency);
244+ hdr_record_value (inst_m_totals_latency_histogram,latency);
223245}
224246
225247void run_stats::update_ask_get_op (struct timeval * ts, unsigned int bytes_rx, unsigned int bytes_tx, unsigned int latency)
226248{
227249 roll_cur_stats (ts);
228250
229251 m_cur_stats.m_get_cmd .update_ask_op (bytes_rx, bytes_tx, latency);
252+ m_cur_stats.m_total_cmd .update_ask_op (bytes_rx, bytes_tx, latency);
230253 m_totals.update_op (bytes_rx, bytes_tx, latency);
231254 hdr_record_value (m_get_latency_histogram,latency);
232255 hdr_record_value (inst_m_get_latency_histogram,latency);
256+ hdr_record_value (m_totals_latency_histogram,latency);
257+ hdr_record_value (inst_m_totals_latency_histogram,latency);
233258}
234259
235260void run_stats::update_ask_set_op (struct timeval * ts, unsigned int bytes_rx, unsigned int bytes_tx, unsigned int latency)
236261{
237262 roll_cur_stats (ts);
238263
239264 m_cur_stats.m_set_cmd .update_ask_op (bytes_rx, bytes_tx, latency);
265+ m_cur_stats.m_total_cmd .update_ask_op (bytes_rx, bytes_tx, latency);
240266 m_totals.update_op (bytes_rx, bytes_tx, latency);
241267 hdr_record_value (m_set_latency_histogram,latency);
242268 hdr_record_value (inst_m_set_latency_histogram,latency);
269+ hdr_record_value (m_totals_latency_histogram,latency);
270+ hdr_record_value (inst_m_totals_latency_histogram,latency);
243271}
244272
245273void run_stats::update_ask_arbitrary_op (struct timeval *ts, unsigned int bytes_rx, unsigned int bytes_tx,
246274 unsigned int latency, size_t request_index) {
247275 roll_cur_stats (ts);
248276
249277 m_cur_stats.m_ar_commands .at (request_index).update_ask_op (bytes_rx, bytes_tx, latency);
278+ m_cur_stats.m_total_cmd .update_ask_op (bytes_rx, bytes_tx, latency);
250279 m_totals.update_op (bytes_rx, bytes_tx, latency);
251280
252281 struct hdr_histogram * hist = m_ar_commands_latency_histograms.at (request_index);
253282 hdr_record_value (hist,latency);
283+ hdr_record_value (m_totals_latency_histogram,latency);
284+ hdr_record_value (inst_m_totals_latency_histogram,latency);
254285}
255286
256287void run_stats::update_wait_op (struct timeval *ts, unsigned int latency)
257288{
258289 roll_cur_stats (ts);
259290
260291 m_cur_stats.m_wait_cmd .update_op (0 ,0 , latency);
292+ m_cur_stats.m_total_cmd .update_op (0 ,0 , latency);
261293 m_totals.update_op (0 ,0 , latency);
262294 hdr_record_value (m_wait_latency_histogram,latency);
263295 hdr_record_value (inst_m_wait_latency_histogram,latency);
296+ hdr_record_value (m_totals_latency_histogram,latency);
297+ hdr_record_value (inst_m_totals_latency_histogram,latency);
264298}
265299
266300void run_stats::update_arbitrary_op (struct timeval *ts, unsigned int bytes_rx, unsigned int bytes_tx,
267301 unsigned int latency, size_t request_index) {
268302 roll_cur_stats (ts);
269303
270304 m_cur_stats.m_ar_commands .at (request_index).update_op (bytes_rx, bytes_tx, latency);
305+ m_cur_stats.m_total_cmd .update_op (bytes_rx, bytes_tx, latency);
271306 m_totals.update_op (bytes_rx, bytes_tx, latency);
272307
273308 struct hdr_histogram * hist = m_ar_commands_latency_histograms.at (request_index);
274309 struct hdr_histogram * inst_hist = inst_m_ar_commands_latency_histograms.at (request_index);
275310 hdr_record_value (hist,latency);
276311 hdr_record_value (inst_hist,latency);
312+ hdr_record_value (m_totals_latency_histogram,latency);
313+ hdr_record_value (inst_m_totals_latency_histogram,latency);
277314}
278315
279316unsigned int run_stats::get_duration (void )
@@ -384,17 +421,9 @@ std::vector<one_sec_cmd_stats> run_stats::get_one_sec_cmd_stats_wait() {
384421std::vector<one_sec_cmd_stats> run_stats::get_one_sec_cmd_stats_totals () {
385422 std::vector<one_sec_cmd_stats> result;
386423 result.reserve (m_stats.size ());
387- for (std::list<one_second_stats>::iterator i = m_stats.begin (); i != m_stats.end (); ++i)
388- {
389- one_second_stats current_second_stats = *i;
390- one_sec_cmd_stats total_stat = one_sec_cmd_stats (current_second_stats.m_get_cmd );
391- total_stat.merge (current_second_stats.m_set_cmd );
392- total_stat.merge (current_second_stats.m_wait_cmd );
393- for (size_t j = 0 ; j < current_second_stats.m_ar_commands .size (); j++)
394- {
395- total_stat.merge (current_second_stats.m_ar_commands .at (j));
396- }
397- result.push_back (total_stat);
424+ for (std::list<one_second_stats>::iterator i = m_stats.begin ();
425+ i != m_stats.end (); i++) {
426+ result.push_back (i->m_total_cmd );
398427 }
399428 return result;
400429}
@@ -734,6 +763,7 @@ void run_stats::aggregate_average(const std::vector<run_stats>& all_stats)
734763 hdr_add (m_get_latency_histogram,i->m_get_latency_histogram );
735764 hdr_add (m_set_latency_histogram,i->m_set_latency_histogram );
736765 hdr_add (m_wait_latency_histogram,i->m_wait_latency_histogram );
766+ hdr_add (m_totals_latency_histogram,i->m_totals_latency_histogram );
737767
738768 for (unsigned int j=0 ; j < i->m_ar_commands_latency_histograms .size (); j++) {
739769 hdr_add (m_ar_commands_latency_histograms.at (j),i->m_ar_commands_latency_histograms .at (j));
@@ -743,6 +773,7 @@ void run_stats::aggregate_average(const std::vector<run_stats>& all_stats)
743773 m_totals.m_set_cmd .aggregate_average (all_stats.size ());
744774 m_totals.m_get_cmd .aggregate_average (all_stats.size ());
745775 m_totals.m_wait_cmd .aggregate_average (all_stats.size ());
776+ m_totals.m_total_cmd .aggregate_average (all_stats.size ());
746777 m_totals.m_ar_commands .aggregate_average (all_stats.size ());
747778 m_totals.m_ops_sec /= all_stats.size ();
748779 m_totals.m_hits_sec /= all_stats.size ();
@@ -790,7 +821,7 @@ void run_stats::merge(const run_stats& other, int iteration)
790821 m_totals.add (other.m_totals );
791822
792823 // aggregate latency data
793- // hdr_add(m_totals.latency_histogram ,other.m_totals.latency_histogram);
824+ hdr_add (m_totals_latency_histogram ,other.m_totals .latency_histogram );
794825 hdr_add (m_get_latency_histogram,other.m_get_latency_histogram );
795826 hdr_add (m_set_latency_histogram,other.m_set_latency_histogram );
796827 hdr_add (m_wait_latency_histogram,other.m_wait_latency_histogram );
0 commit comments