{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2021-05-19T12:03:47.803Z", "attributedTo":"https://epiktistes.com/actors/toddsundsted", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://epiktistes.com/actors/toddsundsted/followers"], "content":"
and commits eb740e1 through 091a1b1 implement a materialized timeline. it replaces a large and complex query for dynamically generating the timeline from activities. the query worked well enough but was slow—over 200ms for a single page in a timeline containing over 4000 objects. the replacement is 3x better, but still builds a b-tree to get the sorted results. the solution, i suspect, is to remove the final two joins, at which point the existing index on created_at
will be used to get the sorted rows. to do that, i'll need to remove deleted actors and objects when they are deleted...