Messing with selecting insertion event extremeties

pull/10419/head
Eric Eastwood 2021-07-06 23:37:54 -05:00
parent 36f1565884
commit 05d6c513f6
3 changed files with 37 additions and 12 deletions

View File

@ -65,4 +65,4 @@ if [[ -n "$1" ]]; then
fi
# Run the tests!
go test -v -tags synapse_blacklist,msc2946,msc3083,msc2716 -count=1 $EXTRA_COMPLEMENT_ARGS ./tests -run TestBackfillingHistory/parallel/Backfilled_historical_events_resolve_with_proper_state_in_correct_order
go test -v -tags synapse_blacklist,msc2946,msc3083,msc2716 -count=1 $EXTRA_COMPLEMENT_ARGS ./tests -run TestBackfillingHistory/parallel/Historical_messages_are_visible_when_joining_on_federated_server

View File

@ -1057,7 +1057,9 @@ class FederationHandler(BaseHandler):
self, room_id: str, current_depth: int, limit: int
) -> bool:
extremities = await self.store.get_oldest_events_with_depth_in_room(room_id)
logger.info("_maybe_backfill_inner extremities=%s", extremities)
logger.info(
"_maybe_backfill_inner extremities(%d)=%s", len(extremities), extremities
)
if not extremities:
logger.debug("Not backfilling as no extremeties found.")

View File

@ -657,20 +657,42 @@ class EventFederationWorkerStore(EventsWorkerStore, SignatureWorkerStore, SQLBas
)
def get_oldest_events_with_depth_in_room_txn(self, txn, room_id):
# sql = (
# "SELECT b.event_id, MAX(e.depth) FROM events as e"
# " INNER JOIN event_edges as g"
# " ON g.event_id = e.event_id"
# " INNER JOIN event_backward_extremities as b"
# " ON g.prev_event_id = b.event_id"
# # TODO
# # " INNER JOIN insertion_event_extremeties as i"
# # " ON g.event_id = i.insertion_prev_event_id"
# " WHERE b.room_id = ? AND g.is_state is ?"
# " GROUP BY b.event_id"
# )
# txn.execute(sql, (room_id, False))
sqlAsdf = "SELECT * FROM insertion_event_extremeties as i"
txn.execute(sqlAsdf)
logger.info("wfeafewawafeawg %s", dict(txn))
sqlAsdf = "SELECT * FROM insertion_event_extremeties as i WHERE i.room_id = ?"
txn.execute(sqlAsdf, (room_id,))
logger.info("awfeawefw %s", dict(txn))
sql = (
"SELECT b.event_id, MAX(e.depth) FROM events as e"
" INNER JOIN event_edges as g"
" ON g.event_id = e.event_id"
" INNER JOIN event_backward_extremities as b"
" ON g.prev_event_id = b.event_id"
"SELECT i.insertion_event_id, MAX(e.depth) FROM events as e"
# " INNER JOIN event_edges as g"
# " ON g.event_id = e.event_id"
# " INNER JOIN event_backward_extremities as b"
# " ON g.prev_event_id = b.event_id"
# TODO
# " INNER JOIN insertion_event_extremeties as i"
# " ON g.event_id = i.insertion_prev_event_id"
" WHERE b.room_id = ? AND g.is_state is ?"
" GROUP BY b.event_id"
" INNER JOIN insertion_event_extremeties as i"
" ON e.event_id = i.insertion_prev_event_id"
" WHERE i.room_id = ?"
" GROUP BY i.insertion_event_id"
)
txn.execute(sql, (room_id, False))
txn.execute(sql, (room_id,))
return dict(txn)
@ -923,6 +945,7 @@ class EventFederationWorkerStore(EventsWorkerStore, SignatureWorkerStore, SQLBas
# We want to make sure that we do a breadth-first, "depth" ordered
# search.
# TODO
query = (
"SELECT depth, prev_event_id FROM event_edges"
" INNER JOIN events"