[Groonga-commit] droonga/express-droonga at 943c8e2 [master] Extract definition of serf tag names to a separate file

Back to archive index

YUKI Hiroshi null+****@clear*****
Tue Apr 21 17:31:15 JST 2015


YUKI Hiroshi	2015-04-21 17:31:15 +0900 (Tue, 21 Apr 2015)

  New Revision: 943c8e2bae8b31ea7a75f0246bd67f8402a7e2d4
  https://github.com/droonga/express-droonga/commit/943c8e2bae8b31ea7a75f0246bd67f8402a7e2d4

  Message:
    Extract definition of serf tag names to a separate file

  Added files:
    lib/serf/tag.js
  Modified files:
    lib/serf/agent.js
    lib/serf/client.js

  Modified: lib/serf/agent.js (+3 -2)
===================================================================
--- lib/serf/agent.js    2015-04-21 10:06:04 +0900 (21763c3)
+++ lib/serf/agent.js    2015-04-21 17:31:15 +0900 (77b53c2)
@@ -24,7 +24,8 @@ var EventEmitter = require('events').EventEmitter,
     util  = require('util');
 
 var ConsoleLogger = require('../console-logger').ConsoleLogger,
-    Downloader    = require('./downloader');
+    Downloader    = require('./downloader'),
+    Tag           = require('./tag');
 
 var NODE_NAME_PATTERN = /^([^:]+):(\d+)\/(.+)$/;
 var EVENT_LOG_PATTERN = /\[INFO\] serf: ([^:]+): ([^\s]+)(?: ([^\s]+))?/;
@@ -94,7 +95,7 @@ Agent.prototype.tryStart = function() {
     '-bind', this._hostName + ':' + BIND_PORT,
     '-rpc-addr', this._hostName + ':' + RPC_PORT,
     '-log-level', 'INFO',
-    '-tag', 'type=protocol-adapter'
+    '-tag', Tag.nodeType + '=protocol-adapter'
   ];
   this._otherMembers.forEach(function(address) {
     if (address.indexOf(':') < 0)

  Modified: lib/serf/client.js (+8 -6)
===================================================================
--- lib/serf/client.js    2015-04-21 10:06:04 +0900 (b005eeb)
+++ lib/serf/client.js    2015-04-21 17:31:15 +0900 (3ef9eef)
@@ -26,6 +26,8 @@
 var SerfRPC = require('serf-rpc'),
     Q       = require('q');
 
+var Tag = require('./tag');
+
 var ENGINE_NODE_NAME_PATTERN = /^([^:]+):(\d+)\/(.+)$/;
 var DEFAULT_RPC_PORT = 7373;
 
@@ -78,13 +80,13 @@ Client.prototype = {
     return this.getAllMembers().then((function(members) {
       var clusterIds = {};
       var liveEngineNodes = members.filter(function(member) {
-        if (member.Tags.type != 'engine' ||
-            member.Tags.role != 'service-provider')
+        if (member.Tags[Tag.nodeType] != 'engine' ||
+            member.Tags[Tag.nodeRole] != 'service-provider')
           return false;
 
         var name = member.Name;
         if (members.some(function(member) {
-              return member.Tags["buffered-for-" + name] == "true";
+              return member.Tags[Tag.haveUnprocessedMessagesTagFor(name)] == "true";
             }))
           return false;
 
@@ -94,11 +96,11 @@ Client.prototype = {
 
         if (member.HostName == this._rpcHost ||
             member.Addr     == this._rpcHost)
-          clusterIds.sameHost = member.Tags.cluster_id;
+          clusterIds.sameHost = member.Tags[Tag.clusterId];
         if ((member.HostName &&
              priorityHostsMatcher.test(member.HostName)) ||
             priorityHostsMatcher.test(String(member.Addr)))
-          clusterIds.priority = member.Tags.cluster_id;
+          clusterIds.priority = member.Tags[Tag.clusterId];
 
         return matched &&
                  matched[2] == this._droongaEnginePort &&
@@ -108,7 +110,7 @@ Client.prototype = {
       var clusterId = clusterIds.priority || clusterIds.sameHost;
       if (clusterId)
         liveEngineNodes = liveEngineNodes.filter(function(member) {
-          return member.Tags.cluster_id == clusterId;
+          return member.Tags[Tag.clusterId] == clusterId;
         });
       return {
         clusterIds:      clusterIds,

  Added: lib/serf/tag.js (+21 -0) 100644
===================================================================
--- /dev/null
+++ lib/serf/tag.js    2015-04-21 17:31:15 +0900 (abcc7c0)
@@ -0,0 +1,21 @@
+var HAVE_UNPROCESSED_MESSAGES_TAG_PREFIX = 'buffered-for-';
+
+module.exports = {
+  nodeType:         'type',
+  nodeRole:         'role',
+  internalNodeName: 'internal-name',
+  clusterId:        'cluster_id',
+
+  acceptMessagesNewerThan:       'accept-newer-than',
+  lastProcessedMessageTimestamp: 'last-timestamp',
+
+  haveUnprocessedMessagesTagFor: function(nodeName) {
+    return HAVE_UNPROCESSED_MESSAGES_TAG_PREFIX + nodeName;
+  },
+  isHaveUnprocessedMessagesTag: function(tag) {
+    return tag.indexOf(HAVE_UNPROCESSED_MESSAGES_TAG_PREFIX == 0);
+  },
+  extractNodeNameFromHaveUnprocessedMessagesTag: function(tag) {
+    return tag.replace(HAVE_UNPROCESSED_MESSAGES_TAG_PREFIX, '');
+  }
+};
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index