remits icon indicating copy to clipboard operation
remits copied to clipboard

Idea: Promote Iterators to Logs

Open badtuple opened this issue 5 years ago • 0 comments

Initially, we had the idea for normal Iterators that operated at query time and an optional "Indexed" Iterator that would persist the query to disk so that it could be re-queried without redoing the work.

The more I think about it, the more I'm of the opinion that Indexed Iterators sound a little too much like Logs. What if instead, we could define an Iterator, but promote it to a Log? Then we could have a single concept for a "disk persisted stream".

There's at least one serious question that arises when you go down this route:

  • Do promoted iterators keep the newly formed Log up to date? An indexed iterator would have created the new values as you query them and persist to disk...but that's really not how Logs work.

Right now, Log == Persistence && Iterator == Query is a pretty simple idea in my head. But at the same time, a Log that extends based on another Log seems to violate the initial idea...at that point an Indexed Iterator just seems conceptually more correct.

Just opening the issue for discussion.

badtuple avatar Mar 28 '20 01:03 badtuple