start trending calculation as wallet server sync nears best height
This commit is contained in:
parent
b8897223ec
commit
c2fbbadc69
4 changed files with 10 additions and 6 deletions
|
@ -82,7 +82,7 @@ class LBRYBlockProcessor(BlockProcessor):
|
||||||
def advance_txs(self, height, txs, header):
|
def advance_txs(self, height, txs, header):
|
||||||
timer = self.timer.sub_timers['advance_blocks']
|
timer = self.timer.sub_timers['advance_blocks']
|
||||||
undo = timer.run(super().advance_txs, height, txs, header, timer_name='super().advance_txs')
|
undo = timer.run(super().advance_txs, height, txs, header, timer_name='super().advance_txs')
|
||||||
timer.run(self.sql.advance_txs, height, txs, header, forward_timer=True)
|
timer.run(self.sql.advance_txs, height, txs, header, self.daemon.cached_height(), forward_timer=True)
|
||||||
if (height % 10000 == 0 or not self.db.first_sync) and self.logger.isEnabledFor(20):
|
if (height % 10000 == 0 or not self.db.first_sync) and self.logger.isEnabledFor(20):
|
||||||
self.timer.show(height=height)
|
self.timer.show(height=height)
|
||||||
return undo
|
return undo
|
||||||
|
|
|
@ -413,7 +413,7 @@ class SQLDB:
|
||||||
r(self._update_effective_amount, height)
|
r(self._update_effective_amount, height)
|
||||||
r(self._perform_overtake, height, [], [])
|
r(self._perform_overtake, height, [], [])
|
||||||
|
|
||||||
def advance_txs(self, height, all_txs, header, timer):
|
def advance_txs(self, height, all_txs, header, daemon_height, timer):
|
||||||
insert_claims = set()
|
insert_claims = set()
|
||||||
update_claims = set()
|
update_claims = set()
|
||||||
delete_claim_hashes = set()
|
delete_claim_hashes = set()
|
||||||
|
@ -457,8 +457,7 @@ class SQLDB:
|
||||||
r(self.update_claims, update_claims, header)
|
r(self.update_claims, update_claims, header)
|
||||||
r(self.insert_supports, insert_supports)
|
r(self.insert_supports, insert_supports)
|
||||||
r(self.update_claimtrie, height, recalculate_claim_hashes, deleted_claim_names, forward_timer=True)
|
r(self.update_claimtrie, height, recalculate_claim_hashes, deleted_claim_names, forward_timer=True)
|
||||||
if not self.main.first_sync:
|
r(calculate_trending, self.db, height, self.main.first_sync, daemon_height)
|
||||||
r(calculate_trending, self.db, height)
|
|
||||||
|
|
||||||
def get_claims(self, cols, **constraints):
|
def get_claims(self, cols, **constraints):
|
||||||
if 'order_by' in constraints:
|
if 'order_by' in constraints:
|
||||||
|
|
|
@ -47,7 +47,11 @@ def register_trending_functions(connection):
|
||||||
connection.create_aggregate("zscore", 1, ZScore)
|
connection.create_aggregate("zscore", 1, ZScore)
|
||||||
|
|
||||||
|
|
||||||
def calculate_trending(db, height):
|
def calculate_trending(db, height, is_first_sync, final_height):
|
||||||
|
# don't start tracking until we're at the end of initial sync
|
||||||
|
if is_first_sync and height < (final_height - (TRENDING_WINDOW*TRENDING_DATA_POINTS)):
|
||||||
|
return
|
||||||
|
|
||||||
if height % TRENDING_WINDOW != 0:
|
if height % TRENDING_WINDOW != 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ class TestSQLDB(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.first_sync = False
|
self.first_sync = False
|
||||||
|
self.daemon_height = 1
|
||||||
self.sql = SQLDB(self, ':memory:')
|
self.sql = SQLDB(self, ':memory:')
|
||||||
self.timer = Timer('BlockProcessor')
|
self.timer = Timer('BlockProcessor')
|
||||||
self.sql.open()
|
self.sql.open()
|
||||||
|
@ -115,7 +116,7 @@ class TestSQLDB(unittest.TestCase):
|
||||||
|
|
||||||
def advance(self, height, txs):
|
def advance(self, height, txs):
|
||||||
self._current_height = height
|
self._current_height = height
|
||||||
self.sql.advance_txs(height, txs, {'timestamp': 1}, self.timer)
|
self.sql.advance_txs(height, txs, {'timestamp': 1}, self.daemon_height, self.timer)
|
||||||
return [otx[0].tx.outputs[0] for otx in txs]
|
return [otx[0].tx.outputs[0] for otx in txs]
|
||||||
|
|
||||||
def state(self, controlling=None, active=None, accepted=None):
|
def state(self, controlling=None, active=None, accepted=None):
|
||||||
|
|
Loading…
Reference in a new issue