YUKI Hiroshi
null+****@clear*****
Sun Nov 30 04:13:32 JST 2014
YUKI Hiroshi 2014-11-30 04:13:32 +0900 (Sun, 30 Nov 2014) New Revision: beedfb493f1cef003028a59e4cf15c0269336075 https://github.com/droonga/droonga-engine/commit/beedfb493f1cef003028a59e4cf15c0269336075 Message: Set cluster's id based on a hash of all nodes Modified files: lib/droonga/command/droonga_engine.rb lib/droonga/serf.rb Modified: lib/droonga/command/droonga_engine.rb (+1 -0) =================================================================== --- lib/droonga/command/droonga_engine.rb 2014-11-30 04:02:57 +0900 (70abe9b) +++ lib/droonga/command/droonga_engine.rb 2014-11-30 04:13:32 +0900 (3a1acbb) @@ -382,6 +382,7 @@ module Droonga catalog_observer = FileObserver.new(@loop, Path.catalog) catalog_observer.on_change = lambda do restart_graceful + @serf.update_cluster_id if @serf and****@serf*****? end catalog_observer.start catalog_observer Modified: lib/droonga/serf.rb (+17 -0) =================================================================== --- lib/droonga/serf.rb 2014-11-30 04:02:57 +0900 (b806c3b) +++ lib/droonga/serf.rb 2014-11-30 04:13:32 +0900 (944d446) @@ -71,6 +71,7 @@ module Droonga "-event-handler", "droonga-engine-serf-event-handler", "-log-level", log_level, "-tag", "role=engine", + "-tag", "cluster_id=#{cluster_id}", *retry_joins) logger.trace("start: done") end @@ -141,6 +142,22 @@ module Droonga nodes end + def set_tag(tag_name, value) + ensure_serf + run_once("tags", "-set", "#{name}=#{value}") + end + + def update_cluster_id + set_tag("cluster_id", cluster_id) + end + + def cluster_id + loader = CatalogLoader.new(Path.catalog.to_s) + catalog = loader.load + raw_id = catalog.all_nodes.sort.join(",") + Digest::SHA1.hexdigest(raw_id) + end + private def ensure_serf @serf = find_system_serf -------------- next part -------------- HTML����������������������������... 下載