summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Hui Jiang <jiangph@cn.ibm.com>2019-11-05 13:34:29 +0800
committerGitHub <noreply@github.com>2019-11-05 13:34:29 +0800
commitd60551d89100dccb5c649dd6cad3b7c7ec1371e0 (patch)
treee0625d7b1a20bdc8ef6cbf1fb514c9f5faf02a25
parentb9aa4e81815c38859edbb3b19e2a3639c30e9b1f (diff)
parent367d17aebf8954ca2204823af34022280472869a (diff)
downloadcouchdb-d60551d89100dccb5c649dd6cad3b7c7ec1371e0.tar.gz
Merge pull request #2130 from apache/close-lru
Close LRU by database path for deleted database/index
-rw-r--r--src/dreyfus/src/clouseau_rpc.erl7
-rw-r--r--src/dreyfus/src/dreyfus_index_manager.erl1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/dreyfus/src/clouseau_rpc.erl b/src/dreyfus/src/clouseau_rpc.erl
index b8190b32c..215adaee9 100644
--- a/src/dreyfus/src/clouseau_rpc.erl
+++ b/src/dreyfus/src/clouseau_rpc.erl
@@ -22,7 +22,7 @@
-export([group1/7, group2/2]).
-export([delete/2, update/3, cleanup/1, cleanup/2, rename/1]).
-export([analyze/2, version/0, disk_size/1]).
--export([set_purge_seq/2, get_purge_seq/1, get_root_dir/0]).
+-export([set_purge_seq/2, get_purge_seq/1, get_root_dir/0, close_lru/0, close_lru/1]).
-export([connected/0]).
open_index(Peer, Path, Analyzer) ->
@@ -32,6 +32,10 @@ disk_size(Path) ->
rpc({main, clouseau()}, {disk_size, Path}).
get_root_dir() ->
rpc({main, clouseau()}, {get_root_dir}).
+close_lru() ->
+ rpc({main, clouseau()}, {close_lru}).
+close_lru(DbName) ->
+ rpc({main, clouseau()}, {close_lru_by_path, DbName}).
await(Ref, MinSeq) ->
rpc(Ref, {await, MinSeq}).
@@ -81,6 +85,7 @@ cleanup(DbName) ->
gen_server:cast({cleanup, clouseau()}, {cleanup, DbName}).
rename(DbName) ->
+ close_lru(DbName),
gen_server:cast({cleanup, clouseau()}, {rename, DbName}).
cleanup(DbName, ActiveSigs) ->
diff --git a/src/dreyfus/src/dreyfus_index_manager.erl b/src/dreyfus/src/dreyfus_index_manager.erl
index 47f254243..e0fee5e40 100644
--- a/src/dreyfus/src/dreyfus_index_manager.erl
+++ b/src/dreyfus/src/dreyfus_index_manager.erl
@@ -123,6 +123,7 @@ handle_db_event(DbName, deleted, _St) ->
"enable_database_recovery", false),
case RecoveryEnabled of
true ->
+ clouseau_rpc:close_lru(DbName),
gen_server:cast(?MODULE, {rename, DbName});
false ->
gen_server:cast(?MODULE, {cleanup, DbName})