couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Joseph Davis (Commented) (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1342) Asynchronous file writes
Date Fri, 18 Nov 2011 01:16:51 GMT


Paul Joseph Davis commented on COUCHDB-1342:

Damn it JIRA just ate a comment.

Short and skinny of it was that I just remembered that there's an (unmeasured) optimization
in zip_server that I learned from gen_server2. The basic idea is to pull all messages out
of the mailbox and then process them off a queue. The original idea was that it'd prevent
pattern matching from running away scanning for messages though I think writer_loop's repeated
implementation. Might be worth a check but I only note this cause the thought occurred. Feel
free to ignore.

Also, just to be clear I'm not suggesting the use of zip_server or anything nutty like that.
It just occurred to me that it might help inform the current discussion.
> Asynchronous file writes
> ------------------------
>                 Key: COUCHDB-1342
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>            Reporter: Jan Lehnardt
>             Fix For: 1.3
>         Attachments: COUCHDB-1342.patch
> This change updates the file module so that it can do
> asynchronous writes. Basically it replies immediately
> to process asking to write something to the file, with
> the position where the chunks will be written to the
> file, while a dedicated child process keeps collecting
> chunks and write them to the file (and batching them
> when possible). After issuing a series of write request
> to the file module, the caller can call its 'flush'
> function which will block the caller until all the
> chunks it requested to write are effectively written
> to the file.
> This maximizes the IO subsystem, as for example, while
> the updater is traversing and modifying the btrees and
> doing CPU bound tasks, the writes are happening in
> parallel.
> Originally described at
> Github Commit:

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message