Skip to content

Commit fcbb052

Browse files
committed
min/max and windows size
1 parent 6675cd1 commit fcbb052

File tree

2 files changed

+37
-30
lines changed

2 files changed

+37
-30
lines changed

src/pool/bbpool.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,17 @@ def rotate_belt(self, belt_index, flush=False):
159159
# have previous time - meaning this is at least second rotate
160160
# can calculate belt speed
161161
window_size = now - self.prev_time
162-
buckets_per_sec = (self.buckets_count - self.prev_buckets_count)/window_size
163-
items_per_sec = (self.items_count - self.prev_items_count) / window_size
164-
logging.info(
165-
'buckets_per_sec:%f items_per_sec:%f for last %d sec',
166-
buckets_per_sec,
167-
items_per_sec,
168-
window_size
169-
)
162+
if window_size > 0:
163+
buckets_per_sec = (self.buckets_count - self.prev_buckets_count)/window_size
164+
items_per_sec = (self.items_count - self.prev_items_count) / window_size
165+
logging.info(
166+
'PERF - buckets_per_sec:%f items_per_sec:%f for last %d sec',
167+
buckets_per_sec,
168+
items_per_sec,
169+
window_size
170+
)
171+
else:
172+
logging.info("PERF - buckets window size=0 can not calc performance for this window")
170173

171174
self.prev_time = now
172175
self.prev_buckets_count = self.buckets_count

src/reader/mysqlreader.py

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,26 @@ def __init__(
6969
resume_stream=self.resume_stream,
7070
)
7171

72-
def performance_report(self, start, rows_num, rows_per_event_min=-1, rows_per_event_max=-1, now=None):
72+
def performance_report(self, start, rows_num, rows_num_per_event_min=None, rows_num_per_event_max=None, now=None):
7373
# time to calc stat
7474

7575
if now is None:
7676
now = time.time()
7777

7878
window_size = now - start
79-
rows_per_sec = rows_num / window_size
80-
logging.info(
81-
'rows_per_sec:%f rows_per_event_min: %d rows_per_event_max: %d for last %d rows %f sec',
82-
rows_per_sec,
83-
rows_per_event_min,
84-
rows_per_event_max,
85-
rows_num,
86-
window_size,
87-
)
79+
if window_size > 0:
80+
rows_per_sec = rows_num / window_size
81+
logging.info(
82+
'PERF - rows_per_sec:%f rows_per_event_min: %d rows_per_event_max: %d for last %d rows %f sec',
83+
rows_per_sec,
84+
rows_num_per_event_min if rows_num_per_event_min is not None else -1,
85+
rows_num_per_event_max if rows_num_per_event_max is not None else -1,
86+
rows_num,
87+
window_size,
88+
)
89+
else:
90+
logging.info("PERF - rows window size=0 can not calc performance for this window")
91+
8892

8993
def read(self):
9094
start_timestamp = int(time.time())
@@ -96,20 +100,20 @@ def read(self):
96100
start = time.time()
97101
rows_num = 0
98102
rows_num_since_interim_performance_report = 0
99-
rows_per_event = 0
100-
rows_per_event_min = 0
101-
rows_per_event_max = 0
103+
rows_num_per_event = 0
104+
rows_num_per_event_min = None
105+
rows_num_per_event_max = None
102106

103107

104108
# fetch available events from MySQL
105109
for mysql_event in self.binlog_stream:
106110
if isinstance(mysql_event, WriteRowsEvent):
107111

108-
rows_per_event = len(mysql_event.rows)
109-
if rows_per_event < rows_per_event_min:
110-
rows_per_event_min = rows_per_event
111-
if rows_per_event > rows_per_event_max:
112-
rows_per_event_max = rows_per_event
112+
rows_num_per_event = len(mysql_event.rows)
113+
if (rows_num_per_event_min is None) or (rows_num_per_event < rows_num_per_event_min):
114+
rows_num_per_event_min = rows_num_per_event
115+
if (rows_num_per_event_max is None) or (rows_num_per_event > rows_num_per_event_max):
116+
rows_num_per_event_max = rows_num_per_event
113117

114118
if self.subscribers('WriteRowsEvent'):
115119
self.write_rows_event_num += 1
@@ -139,12 +143,12 @@ def read(self):
139143
self.performance_report(
140144
start=start,
141145
rows_num=rows_num,
142-
rows_per_event_min=rows_per_event_min,
143-
rows_per_event_max=rows_per_event_max,
146+
rows_num_per_event_min=rows_num_per_event_min,
147+
rows_num_per_event_max=rows_num_per_event_max,
144148
)
145149
rows_num_since_interim_performance_report = 0
146-
rows_per_event_min = 0
147-
rows_per_event_max = 0
150+
rows_num_per_event_min = None
151+
rows_num_per_event_max = None
148152
else:
149153
# skip non-insert events
150154
pass

0 commit comments

Comments
 (0)