Curt Sampson <cjs@cynic.net> writes:
> Back when I was working out how to do this, I reckoned that you could
> use mmap by keeping a write queue for each modified page. Reading,
> you'd have to read the datum from the page and then check the write
> queue for that page to see if that datum had been updated, using the
> new value if it's there. Writing, you'd add the modified datum to the
> write queue, but not apply the write queue to the page until you'd had
> confirmation that the corresponding transaction log entry had been
> written. So multiple writes are no big deal; they just all queue up in
> the write queue, and at any time you can apply as much of the write
> queue to the page itself as the current log entry will allow.
Seems to me the overhead of any such scheme would swamp the savings from
avoiding kernel/userspace copies ... the locking issues alone would be
painful.
regards, tom lane