You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2010/06/12 21:14:17 UTC

svn commit: r954044 - in /couchdb/trunk/src/couchdb: couch_db_updater.erl couch_file.erl

Author: kocolosk
Date: Sat Jun 12 19:14:16 2010
New Revision: 954044

URL: http://svn.apache.org/viewvc?rev=954044&view=rev
Log:
more efficient header commits. COUCHDB-767

Modified:
    couchdb/trunk/src/couchdb/couch_db_updater.erl
    couchdb/trunk/src/couchdb/couch_file.erl

Modified: couchdb/trunk/src/couchdb/couch_db_updater.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_db_updater.erl?rev=954044&r1=954043&r2=954044&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_db_updater.erl (original)
+++ couchdb/trunk/src/couchdb/couch_db_updater.erl Sat Jun 12 19:14:16 2010
@@ -681,6 +681,7 @@ commit_data(Db, true) ->
 commit_data(Db, _) ->
     #db{
         fd = Fd,
+        filepath = Filepath,
         header = OldHeader,
         fsync_options = FsyncOptions,
         waiting_delayed_commit = Timer
@@ -691,14 +692,14 @@ commit_data(Db, _) ->
         Db;
     Header ->
         case lists:member(before_header, FsyncOptions) of
-        true -> ok = couch_file:sync(Fd);
+        true -> ok = couch_file:sync(Filepath);
         _    -> ok
         end,
 
         ok = couch_file:write_header(Fd, Header),
 
         case lists:member(after_header, FsyncOptions) of
-        true -> ok = couch_file:sync(Fd);
+        true -> ok = couch_file:sync(Filepath);
         _    -> ok
         end,
 

Modified: couchdb/trunk/src/couchdb/couch_file.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_file.erl?rev=954044&r1=954043&r2=954044&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_file.erl (original)
+++ couchdb/trunk/src/couchdb/couch_file.erl Sat Jun 12 19:14:16 2010
@@ -146,6 +146,9 @@ truncate(Fd, Pos) ->
 %%  or {error, Reason}.
 %%----------------------------------------------------------------------
 
+sync(Filepath) when is_list(Filepath) ->
+    {ok, Fd} = file:open(Filepath, [read, raw]),
+    try file:sync(Fd) after file:close(Fd) end;
 sync(Fd) ->
     gen_server:call(Fd, sync, infinity).