3 ms·
See https://news.ycombinator.com/item?id=31836545 https://news.ycombinator.com/item?id=31836545 To the specifics of my solution, you’re going to visit many les
by jitl 3y ago
See https://news.ycombinator.com/item?id=31836545 https://news.ycombinator.com/item?id=31836545
To the specifics of my solution, you’re going to visit many less than O(subscriptions) rows using a btree index on min & max as I suggested, and I’m sure there’s use case specific data structures that could do an even better job.
You also don’t need to stall the write transaction until subscriptions are notified; you can batch up that work into big chunks and process it on a background queue after the transaction commits.
Finally, you don’t need to have subscribe to read sets that exactly match the query. You can simplify them a lot for those kinds of complex cases because you can tolerate over-subscription, re-running the query even if it hasn’t changed, checking the new result, and then deciding to deliver it to the external subscriber or not.