[ https://issues.apache.org/jira/browse/COUCHDB-1342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152557#comment-13152557 ] 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: https://issues.apache.org/jira/browse/COUCHDB-1342 > 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 http://s.apache.org/TVu > Github Commit: https://github.com/fdmanana/couchdb/commit/e82a673f119b82dddf674ac2e6233cd78c123554 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira