This is an automated email from the ASF dual-hosted git repository.

rnewson pushed a commit to branch view-compaction-duration-log
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit c1a9f86afcbaec61f2737d75443c1d70f81e31f9
Author: Robert Newson <[email protected]>
AuthorDate: Fri Jan 23 14:34:56 2026 +0000

    log the time it takes to compact a view and swap it into use
---
 src/couch_mrview/include/couch_mrview.hrl       |  3 ++-
 src/couch_mrview/src/couch_mrview_compactor.erl | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/couch_mrview/include/couch_mrview.hrl 
b/src/couch_mrview/include/couch_mrview.hrl
index 6ba226aad..ae1e0288f 100644
--- a/src/couch_mrview/include/couch_mrview.hrl
+++ b/src/couch_mrview/include/couch_mrview.hrl
@@ -30,7 +30,8 @@
     doc_queue,
     write_queue,
     qserver=nil,
-    view_info=#{}
+    view_info=#{},
+    start_time
 }).
 
 
diff --git a/src/couch_mrview/src/couch_mrview_compactor.erl 
b/src/couch_mrview/src/couch_mrview_compactor.erl
index a534dd0e8..3dbfd6773 100644
--- a/src/couch_mrview/src/couch_mrview_compactor.erl
+++ b/src/couch_mrview/src/couch_mrview_compactor.erl
@@ -26,6 +26,8 @@
     total_changes
 }).
 
+-compile({no_auto_import,[now/0]}).
+
 -define(DEFAULT_RECOMPACT_RETRY_COUNT, 3).
 
 compact(_Db, State, Opts) ->
@@ -129,7 +131,8 @@ compact(State) ->
     {ok, EmptyState#mrst{
         id_btree = NewIdBtree,
         views = NewViews,
-        update_seq = Seq
+        update_seq = Seq,
+        start_time = now()
     }}.
 
 recompact(State) ->
@@ -248,10 +251,12 @@ swap_compacted(OldState, NewState) ->
 
     {ok, Pre} = couch_file:bytes(Fd),
     {ok, Post} = couch_file:bytes(NewFd),
-    couch_log:notice("Compaction swap for view ~s ~p ~p", [
+    Duration = now() - NewState#mrst.start_time,
+    couch_log:notice("Compaction swap for view ~s ~p ~p ~Bs", [
         IndexFName,
         Pre,
-        Post
+        Post,
+        Duration
     ]),
     ok = couch_file:delete(RootDir, IndexFName),
     ok = file:rename(CompactFName, IndexFName),
@@ -259,7 +264,7 @@ swap_compacted(OldState, NewState) ->
     unlink(OldState#mrst.fd),
     demonitor(OldState#mrst.fd_monitor, [flush]),
 
-    {ok, NewState#mrst{fd_monitor = Ref}}.
+    {ok, NewState#mrst{fd_monitor = Ref, start_time = now()}}.
 
 remove_compacted(#mrst{sig = Sig, db_name = DbName} = State) ->
     RootDir = couch_index_util:root_dir(),
@@ -267,6 +272,9 @@ remove_compacted(#mrst{sig = Sig, db_name = DbName} = 
State) ->
     ok = couch_file:delete(RootDir, CompactFName),
     {ok, State}.
 
+now() ->
+    erlang:monotonic_time(second).
+
 -ifdef(TEST).
 -include_lib("eunit/include/eunit.hrl").
 

Reply via email to