[Groonga-commit] droonga/drnbench at 6526f5a [master] Don't touch Runner's subscribers from GradualRunner directly

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Jan 21 12:30:19 JST 2014


Kouhei Sutou	2014-01-21 12:30:19 +0900 (Tue, 21 Jan 2014)

  New Revision: 6526f5a777c00858c68e93f3dc118a4575892f79
  https://github.com/droonga/drnbench/commit/6526f5a777c00858c68e93f3dc118a4575892f79

  Message:
    Don't touch Runner's subscribers from GradualRunner directly

  Modified files:
    lib/drnbench/publish-subscribe/gradual-runner.rb
    lib/drnbench/publish-subscribe/runner.rb

  Modified: lib/drnbench/publish-subscribe/gradual-runner.rb (+5 -3)
===================================================================
--- lib/drnbench/publish-subscribe/gradual-runner.rb    2014-01-21 12:29:09 +0900 (f1ba061)
+++ lib/drnbench/publish-subscribe/gradual-runner.rb    2014-01-21 12:30:19 +0900 (d6022a5)
@@ -15,9 +15,10 @@ module Drnbench
 
       def run
         results = []
-        @config.n_steps.times do |try_count|
-          @runner.add_subscribers(@runner.subscribers.size) if try_count > 0
-          label = "#{@runner.subscribers.size} subscribers"
+        @runner.setup
+        @config.n_steps.times do
+          @runner.increase_subscribers
+          label = "#{@runner.n_subscribers} subscribers"
           percentage = nil
           result = Benchmark.bm do |benchmark|
             benchmark.report(label) do
@@ -35,6 +36,7 @@ module Drnbench
           end
           results << [label, qps]
         end
+        @runner.teardown
         @total_results = [
           ["case", "qps"],
         ]

  Modified: lib/drnbench/publish-subscribe/runner.rb (+22 -12)
===================================================================
--- lib/drnbench/publish-subscribe/runner.rb    2014-01-21 12:29:09 +0900 (ae5aa7d)
+++ lib/drnbench/publish-subscribe/runner.rb    2014-01-21 12:30:19 +0900 (9e8f83b)
@@ -11,25 +11,40 @@ require "drnbench/server/protocol-adapter"
 module Drnbench
   module PublishSubscribe
     class Runner
-      attr_reader :subscribers
-
       def initialize(config)
         @config = config
         @published_messages = Queue.new
       end
 
-      def run
+      def n_subscribers
+        @subscribers.size
+      end
+
+      def setup
         setup_server
         setup_subscribers
+      end
 
+      def teardown
+        teardown_subscribers
+        teardown_server
+      end
+
+      def run
         publishing_times =****@confi*****_publishings
         n_will_be_published_messages =****@subsc***** * publishing_times
 
         do_feed(publishing_times)
-        published_messages = receive_messages(n_will_be_published_messages)
+        receive_messages(n_will_be_published_messages)
+      end
 
-        teardown_server
-        published_messages
+      def increase_subscribers
+        if****@subsc*****?
+          new_n_subscribers =****@confi*****_n_subscribers
+        else
+          new_n_subscribers =****@subsc*****
+        end
+        add_subscribers(new_n_subscribers)
       end
 
       private
@@ -48,8 +63,6 @@ module Drnbench
 
       def setup_subscribers
         @subscribers = []
-        add_subscribers(@config.start_n_subscribers,
-                        @config.n_publishings)
       end
 
       def teardown_subscribers
@@ -58,18 +71,15 @@ module Drnbench
         end
       end
 
-      def add_subscribers(n_subscribers, n_expected_messages)
+      def add_subscribers(n_subscribers)
         progressbar = ProgressBar.new("subscribe", n_subscribers, STDERR)
         n_subscribers.times do
           message =****@confi*****_subscribe_request
           client = Droonga::Client.new(:protocol => :http,
                                        :host => @config.protocol_adapter.host,
                                        :port => @config.protocol_adapter.port)
-          n_received_messages = 0
           client.subscribe(message) do |published_message|
             @published_messages.push(published_message)
-            n_received_messages += 1
-            break if n_received_messages == n_expected_messages
           end
           @subscribers << client
           progressbar.inc
-------------- next part --------------
HTML����������������������������...
Download 



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