YUKI Hiroshi
null+****@clear*****
Thu Jul 31 12:01:47 JST 2014
YUKI Hiroshi 2014-07-31 12:01:47 +0900 (Thu, 31 Jul 2014) New Revision: 1f54625d36cd5885d60f62373a4ccd4dac6180d3 https://github.com/droonga/presentation-droonga-meetup-1-introduction/commit/1f54625d36cd5885d60f62373a4ccd4dac6180d3 Message: Use drnbench's utility commands to generate query patterns Removed files: benchmark/generate-patterns.rb Modified files: benchmark/README.md Modified: benchmark/README.md (+9 -3) =================================================================== --- benchmark/README.md 2014-07-30 21:12:02 +0900 (f5b926c) +++ benchmark/README.md 2014-07-31 12:01:47 +0900 (bb0c312) @@ -78,6 +78,8 @@ https://github.com/droonga/wikipedia-search/blob/master/lib/wikipedia-search/tas (変換には7分程度、Groongaへのロードには12分程度を要した) * 30万件のページを各ページごとに最大1000文字までロードすると、データベースは1.1GiB程度になった。 (変換には17分程度、Groongaへのロードには6分程度を要した) + * 150万件のページを各ページごとに最大1000文字までロードすると、データベースは1.1GiB程度になった。 + (変換には53分程度、Groongaへのロードには6分程度を要した) 今回は30万件のページを各ページごとに最大1000文字まで変換したデータに基づく1.1GiBのデータベースを使用した。 @@ -191,14 +193,18 @@ droonga-sendを使うが、スキーマ定義の時は宛先は1ノードだけ ページのタイトルから、検索リクエストのパターンファイルを作成する。 + % base_params="table=Pages&limit=10&match_columns=title,text&output_columns=snippet_html(title),snippet_html(text),categories,_key" % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \ - ruby ./generate-patterns.rb \ + drnbench-extract-searchterms | \ + drnbench-generate-select-patterns --base-params="$base_params" \ > ./patterns-1node.json % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \ - ruby ./generate-patterns.rb 192.168.200.254,192.168.200.3 \ + drnbench-extract-searchterms | \ + drnbench-generate-select-patterns --base-params="$base_params" --hosts=192.168.200.254,192.168.200.3 \ > ./patterns-2nodes.json % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \ - ruby ./generate-patterns.rb 192.168.200.254,192.168.200.3,192.168.200.4 \ + drnbench-extract-searchterms | \ + drnbench-generate-select-patterns --base-params="$base_params" --hosts=192.168.200.254,192.168.200.3,192.168.200.4 \ > ./patterns-3nodes.json patterns-2nodes.json, patterns-3nodes.jsonは、接続先をそれぞれのノードに等分に振り分けるようにした物。 Deleted: benchmark/generate-patterns.rb (+0 -62) 100644 =================================================================== --- benchmark/generate-patterns.rb 2014-07-30 21:12:02 +0900 (8156537) +++ /dev/null @@ -1,62 +0,0 @@ -require "json" - -body = JSON.parse(STDIN.read).last.last -records = body[2..-1] -with_query_params = { - "table" => "Pages", - "limit" => 10, - "match_columns" => "title,text", - "output_columns" => "snippet_html(title),snippet_html(text),categories,_key", -# "drilldown" => "categories", -# "drilldown_limits" => 5, -# "drilldown_sortby" => "-_nsubrecs", -} - -def to_query_params(params) - params.collect do |key, value| - value = value.to_s - .gsub(/[:;]/, " ") - .strip - .gsub(/ +/, "%20") - "#{key}=#{value}" - end.join("&") -end - -$with_query_patterns = records.collect do |record| - title = record.first - params = with_query_params.merge("query" => title) - { - "path" => "/d/select?#{to_query_params(params)}", - } -end - -def add_patterns(patterns, host=nil, frequency=1.0) - suffix = "" - suffix = "-#{host}" unless host.nil? - - patterns["with-query#{suffix}"] = { - "frequency" => frequency, - "method" => "get", - "patterns" => $with_query_patterns, - } - - if host - patterns["with-query#{suffix}"]["host"] = host - end - - patterns -end - -patterns = {} - -hosts=ARGV.first -if hosts.is_a?(String) - hosts = hosts.split(/\s*,\s*/) - hosts.each do |host| - add_patterns(patterns, host, 1.0 / hosts.size) - end -else - add_patterns(patterns) -end - -puts JSON.pretty_generate(patterns) -------------- next part -------------- HTML����������������������������... Download