incubator-couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Kocoloski (JIRA)" <>
Subject [jira] Commented: (COUCHDB-786) Make fewer gen_server calls to fsync the db header
Date Mon, 07 Jun 2010 16:37:43 GMT


Adam Kocoloski commented on COUCHDB-786:

I'm worried about the interaction of this patch with COUCHDB-767.  That issue contains a patch
which causes couch_file to spawn a worker process to sync the file.  The idea behind COUCHDB-767
is that reads can proceed even while the file is being synced.

It seems that this patch would have the opposite effect -- all readers would be blocked, not
just while a file is synced, but while the header is being written (which typically involves
2 syncs).

Perhaps it would be a good idea to combine the strategies from both issues, and spawn a function
to do the sync-write-sync dance for write_header?  The challenge is that #file.eof needs to
be updated when the header is written, which is not the case for a simple sync.

> Make fewer gen_server calls to fsync the db header
> --------------------------------------------------
>                 Key: COUCHDB-786
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>    Affects Versions: 0.10.2, 0.11
>            Reporter: Randall Leeds
>             Fix For: 0.12
>         Attachments: 0001-db-header-fsync-with-fewer-gen_server-calls.patch
> Currently the couch_db_updater process is responsible for calling couch_file:sync based
on the fsync options when the db header is written. Instead, this patch just passes the fsync
options down to couch_file so that writing the header can always be performed with a single
gen_server call.
> Writes are serialized through couch_db_updater but reads can have high concurrency. This
patch should boost write performance when the message queue on couch_file is long.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message