You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by to...@apache.org on 2016/02/24 22:06:23 UTC
[1/2] mem3 commit: updated refs/heads/2953-ushards-mm to bfd83b4
Repository: couchdb-mem3
Updated Branches:
refs/heads/2953-ushards-mm [created] bfd83b4e9
Remove maintenace modes from ushards
COUCHDB-2953
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/commit/f9dcbc21
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/tree/f9dcbc21
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/diff/f9dcbc21
Branch: refs/heads/2953-ushards-mm
Commit: f9dcbc213c7590358222a751691ca0343f7a17af
Parents: f208437
Author: Tony Sun <to...@cloudant.com>
Authored: Wed Feb 24 12:38:25 2016 -0800
Committer: Tony Sun <to...@cloudant.com>
Committed: Wed Feb 24 13:05:48 2016 -0800
----------------------------------------------------------------------
src/mem3.erl | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-mem3/blob/f9dcbc21/src/mem3.erl
----------------------------------------------------------------------
diff --git a/src/mem3.erl b/src/mem3.erl
index 405d7e5..48c7335 100644
--- a/src/mem3.erl
+++ b/src/mem3.erl
@@ -126,7 +126,7 @@ shards_int(DbName, DocId, Options) ->
-spec ushards(DbName::iodata()) -> [#shard{}].
ushards(DbName) ->
- Nodes = [node()|erlang:nodes()],
+ Nodes = non_maintenance_nodes(),
ZoneMap = zone_map(Nodes),
Shards = ushards(DbName, live_shards(DbName, Nodes, [ordered]), ZoneMap),
mem3_util:downcast(Shards).
@@ -254,6 +254,11 @@ allowed_nodes() ->
nodes_in_zone(Nodes, Zone) ->
[Node || Node <- Nodes, Zone == mem3:node_info(Node, <<"zone">>)].
+non_maintenance_nodes() ->
+ Nodes = [node() | erlang:nodes()],
+ {Modes, _} = rpc:multicall(config, get, ["couchdb", "maintenance_mode"]),
+ [N || {N, Mode} <- lists:zip(Nodes, Modes), Mode =/= "true", Mode =/= "nolb"].
+
live_shards(DbName, Nodes) ->
live_shards(DbName, Nodes, []).
[2/2] mem3 commit: updated refs/heads/2953-ushards-mm to bfd83b4
Posted by to...@apache.org.
Add test for ushards
COUCHDB-2953
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/commit/bfd83b4e
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/tree/bfd83b4e
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mem3/diff/bfd83b4e
Branch: refs/heads/2953-ushards-mm
Commit: bfd83b4e952a7f9f62ecd89c0e424c851b10128e
Parents: f9dcbc2
Author: Tony Sun <to...@cloudant.com>
Authored: Wed Feb 24 13:02:52 2016 -0800
Committer: Tony Sun <to...@cloudant.com>
Committed: Wed Feb 24 13:05:57 2016 -0800
----------------------------------------------------------------------
test/mem3_ushards_test.erl | 57 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-mem3/blob/bfd83b4e/test/mem3_ushards_test.erl
----------------------------------------------------------------------
diff --git a/test/mem3_ushards_test.erl b/test/mem3_ushards_test.erl
new file mode 100644
index 0000000..d2b51c4
--- /dev/null
+++ b/test/mem3_ushards_test.erl
@@ -0,0 +1,57 @@
+% Licensed under the Apache License, Version 2.0 (the "License"); you may not
+% use this file except in compliance with the License. You may obtain a copy of
+% the License at
+%
+% http://www.apache.org/licenses/LICENSE-2.0
+%
+% Unless required by applicable law or agreed to in writing, software
+% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+% License for the specific language governing permissions and limitations under
+% the License.
+
+-module(mem3_ushards_test).
+
+-include_lib("couch/include/couch_eunit.hrl").
+-include_lib("couch/include/couch_db.hrl").
+-include_lib("mem3/include/mem3.hrl").
+
+-define(TIMEOUT, 10000).
+
+setup() ->
+ DbName = ?tempdb(),
+ ok = fabric:create_db(DbName, [?ADMIN_CTX]),
+ DbName.
+
+teardown(DbName) ->
+ ok = fabric:delete_db(DbName, [?ADMIN_CTX]).
+
+ushard_test_() ->
+ {
+ "Maintenance node test",
+ {
+ setup,
+ fun() -> test_util:start_couch([mem3]) end,
+ fun test_util:stop/1,
+ {
+ foreach,
+ fun setup/0, fun teardown/1,
+ [
+ fun maintenance_mode_true/1,
+ fun maintenance_mode_nolb/1
+ ]
+ }
+ }
+ }.
+
+maintenance_mode_true(DbName) ->
+ config:set("couchdb", "maintenance_mode", "true"),
+ UShards = mem3:ushards(DbName),
+ Nodes = [Node || #shard{node=Node} <- UShards, Node =:= node()],
+ ?_assertEqual([], Nodes).
+
+maintenance_mode_nolb(DbName) ->
+ config:set("couchdb", "maintenance_mode", "nolb"),
+ UShards = mem3:ushards(DbName),
+ Nodes = [Node || #shard{node=Node} <- UShards, Node =:= node()],
+ ?_assertEqual([], Nodes).
\ No newline at end of file