droonga-engine 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/Gemfile +1 -1
  4. data/LICENSE.txt +1 -1
  5. data/Rakefile +1 -1
  6. data/benchmark/benchmark.rb +1 -1
  7. data/benchmark/utils.rb +1 -1
  8. data/benchmark/watch/benchmark-notify.rb +1 -1
  9. data/benchmark/watch/benchmark-publish.rb +1 -1
  10. data/benchmark/watch/benchmark-scan.rb +1 -1
  11. data/bin/droonga-engine +1 -1
  12. data/bin/droonga-engine-absorb-data +48 -8
  13. data/bin/droonga-engine-catalog-generate +1 -1
  14. data/bin/droonga-engine-catalog-modify +1 -1
  15. data/bin/droonga-engine-data-publisher +66 -0
  16. data/bin/droonga-engine-join +72 -17
  17. data/bin/droonga-engine-serf-event-handler +1 -1
  18. data/bin/droonga-engine-service +1 -1
  19. data/bin/droonga-engine-unjoin +11 -4
  20. data/bin/droonga-engine-worker +20 -0
  21. data/doc/text/news.md +8 -0
  22. data/droonga-engine.gemspec +3 -3
  23. data/lib/droonga/adapter.rb +1 -1
  24. data/lib/droonga/adapter_runner.rb +1 -1
  25. data/lib/droonga/address.rb +69 -0
  26. data/lib/droonga/buffered_tcp_socket.rb +44 -22
  27. data/lib/droonga/catalog/base.rb +1 -1
  28. data/lib/droonga/catalog/collection_volume.rb +1 -1
  29. data/lib/droonga/catalog/dataset.rb +8 -8
  30. data/lib/droonga/catalog/errors.rb +1 -1
  31. data/lib/droonga/catalog/schema.rb +1 -1
  32. data/lib/droonga/catalog/single_volume.rb +6 -8
  33. data/lib/droonga/catalog/slice.rb +1 -1
  34. data/lib/droonga/catalog/version1.rb +2 -2
  35. data/lib/droonga/catalog/version2.rb +6 -6
  36. data/lib/droonga/catalog/version2_validator.rb +1 -1
  37. data/lib/droonga/catalog/volume.rb +1 -1
  38. data/lib/droonga/catalog/volume_collection.rb +2 -2
  39. data/lib/droonga/catalog_generator.rb +49 -53
  40. data/lib/droonga/catalog_loader.rb +1 -1
  41. data/lib/droonga/collector.rb +1 -1
  42. data/lib/droonga/collector_message.rb +1 -1
  43. data/lib/droonga/collector_runner.rb +1 -1
  44. data/lib/droonga/collectors/and.rb +1 -1
  45. data/lib/droonga/collectors/or.rb +1 -1
  46. data/lib/droonga/collectors/sum.rb +1 -1
  47. data/lib/droonga/collectors.rb +1 -1
  48. data/lib/droonga/command/droonga_engine.rb +103 -55
  49. data/lib/droonga/command/droonga_engine_service.rb +22 -67
  50. data/lib/droonga/command/droonga_engine_worker.rb +232 -0
  51. data/lib/droonga/command/serf_event_handler.rb +126 -46
  52. data/lib/droonga/data_absorber.rb +32 -14
  53. data/lib/droonga/dispatcher.rb +15 -11
  54. data/lib/droonga/distributed_command_planner.rb +1 -1
  55. data/lib/droonga/distributor.rb +1 -1
  56. data/lib/droonga/engine/version.rb +2 -2
  57. data/lib/droonga/engine.rb +8 -3
  58. data/lib/droonga/engine_state.rb +15 -6
  59. data/lib/droonga/error.rb +1 -1
  60. data/lib/droonga/error_messages.rb +1 -1
  61. data/lib/droonga/event_loop.rb +1 -1
  62. data/lib/droonga/farm.rb +9 -1
  63. data/lib/droonga/file_observer.rb +1 -1
  64. data/lib/droonga/fluent_message_receiver.rb +11 -5
  65. data/lib/droonga/fluent_message_sender.rb +14 -17
  66. data/lib/droonga/forwarder.rb +23 -13
  67. data/lib/droonga/handler.rb +1 -1
  68. data/lib/droonga/handler_message.rb +1 -1
  69. data/lib/droonga/handler_messenger.rb +2 -2
  70. data/lib/droonga/handler_runner.rb +2 -2
  71. data/lib/droonga/input_message.rb +1 -1
  72. data/lib/droonga/internal_fluent_message_receiver.rb +3 -2
  73. data/lib/droonga/job_protocol.rb +1 -1
  74. data/lib/droonga/job_pusher.rb +1 -1
  75. data/lib/droonga/job_receiver.rb +1 -1
  76. data/lib/droonga/line_buffer.rb +1 -1
  77. data/lib/droonga/live_nodes_list_loader.rb +1 -1
  78. data/lib/droonga/loggable.rb +1 -1
  79. data/lib/droonga/logger.rb +3 -3
  80. data/lib/droonga/message_matcher.rb +1 -1
  81. data/lib/droonga/output_message.rb +1 -1
  82. data/lib/droonga/path.rb +5 -1
  83. data/lib/droonga/planner.rb +1 -1
  84. data/lib/droonga/pluggable.rb +1 -1
  85. data/lib/droonga/plugin/metadata/adapter_input_message.rb +1 -1
  86. data/lib/droonga/plugin/metadata/adapter_output_message.rb +1 -1
  87. data/lib/droonga/plugin/metadata/collector_message.rb +1 -1
  88. data/lib/droonga/plugin/metadata/handler_action.rb +1 -1
  89. data/lib/droonga/plugin/metadata/input_message.rb +1 -1
  90. data/lib/droonga/plugin.rb +2 -1
  91. data/lib/droonga/plugin_loader.rb +1 -1
  92. data/lib/droonga/plugin_registry.rb +3 -1
  93. data/lib/droonga/plugins/basic.rb +1 -1
  94. data/lib/droonga/plugins/crud.rb +1 -1
  95. data/lib/droonga/plugins/dump.rb +13 -2
  96. data/lib/droonga/plugins/error.rb +1 -1
  97. data/lib/droonga/plugins/groonga/column_create.rb +1 -1
  98. data/lib/droonga/plugins/groonga/column_list.rb +1 -1
  99. data/lib/droonga/plugins/groonga/column_remove.rb +1 -1
  100. data/lib/droonga/plugins/groonga/column_rename.rb +1 -1
  101. data/lib/droonga/plugins/groonga/delete.rb +1 -1
  102. data/lib/droonga/plugins/groonga/generic_command.rb +1 -1
  103. data/lib/droonga/plugins/groonga/generic_response.rb +1 -1
  104. data/lib/droonga/plugins/groonga/select.rb +1 -1
  105. data/lib/droonga/plugins/groonga/table_create.rb +1 -1
  106. data/lib/droonga/plugins/groonga/table_list.rb +1 -1
  107. data/lib/droonga/plugins/groonga/table_remove.rb +1 -1
  108. data/lib/droonga/plugins/groonga.rb +1 -1
  109. data/lib/droonga/plugins/search/distributed_search_planner.rb +1 -1
  110. data/lib/droonga/plugins/search.rb +1 -1
  111. data/lib/droonga/plugins/system.rb +1 -1
  112. data/lib/droonga/plugins/watch.rb +1 -1
  113. data/lib/droonga/{service_control_protocol.rb → process_control_protocol.rb} +2 -2
  114. data/lib/droonga/process_supervisor.rb +91 -0
  115. data/lib/droonga/processor.rb +1 -1
  116. data/lib/droonga/reducer.rb +1 -1
  117. data/lib/droonga/replier.rb +2 -2
  118. data/lib/droonga/safe_file_writer.rb +1 -1
  119. data/lib/droonga/schema_applier.rb +1 -1
  120. data/lib/droonga/searcher/mecab_filter.rb +1 -1
  121. data/lib/droonga/searcher.rb +31 -19
  122. data/lib/droonga/serf.rb +81 -14
  123. data/lib/droonga/serf_downloader.rb +2 -2
  124. data/lib/droonga/session.rb +1 -1
  125. data/lib/droonga/single_step.rb +1 -1
  126. data/lib/droonga/single_step_definition.rb +1 -1
  127. data/lib/droonga/slice.rb +30 -28
  128. data/lib/droonga/status_code.rb +1 -1
  129. data/lib/droonga/step_runner.rb +1 -1
  130. data/lib/droonga/supervisor.rb +170 -0
  131. data/lib/droonga/sweeper.rb +1 -1
  132. data/lib/droonga/test/stub_handler.rb +1 -1
  133. data/lib/droonga/test/stub_handler_message.rb +1 -1
  134. data/lib/droonga/test/stub_handler_messenger.rb +1 -1
  135. data/lib/droonga/test/stub_planner.rb +1 -1
  136. data/lib/droonga/test.rb +1 -1
  137. data/lib/droonga/watch_schema.rb +2 -2
  138. data/lib/droonga/watcher.rb +1 -1
  139. data/lib/droonga/worker_process_agent.rb +111 -0
  140. data/sample/cluster/Rakefile +150 -0
  141. data/test/command/config/default/catalog.json +1 -34
  142. data/test/command/config/version1/catalog.json +3 -12
  143. data/test/command/run-test.rb +1 -1
  144. data/test/command/suite/dump/column/index.expected +19 -82
  145. data/test/command/suite/dump/column/scalar.expected +5 -36
  146. data/test/command/suite/dump/column/vector.expected +5 -39
  147. data/test/command/suite/dump/record/vector/reference.expected +24 -93
  148. data/test/command/suite/dump/table/array.expected +0 -19
  149. data/test/command/suite/dump/table/double_array_trie.expected +0 -20
  150. data/test/command/suite/dump/table/hash.expected +0 -20
  151. data/test/command/suite/dump/table/patricia_trie.expected +0 -20
  152. data/test/command/suite/search/condition/query/nonexistent_column.expected +0 -11
  153. data/test/command/suite/search/condition/query/syntax_error.expected +0 -11
  154. data/test/command/suite/search/error/unknown-source.expected +0 -12
  155. data/test/command/suite/search/output/attributes/invalid.expected +0 -10
  156. data/test/command/suite/search/output/attributes/reference_vector.catalog.json +27 -0
  157. data/test/command/suite/search/output/attributes/reference_vector.expected +30 -0
  158. data/test/command/suite/search/output/attributes/reference_vector.test +32 -0
  159. data/test/command/suite/watch/subscribe.catalog.json +23 -0
  160. data/test/command/suite/watch/subscribe.test +2 -0
  161. data/test/command/suite/watch/unsubscribe.catalog.json +23 -0
  162. data/test/command/suite/watch/unsubscribe.test +2 -0
  163. data/test/performance/run-test.rb +1 -1
  164. data/test/unit/catalog/test_collection_volume.rb +1 -1
  165. data/test/unit/catalog/test_dataset.rb +1 -1
  166. data/test/unit/catalog/test_schema.rb +1 -1
  167. data/test/unit/catalog/test_single_volume.rb +27 -19
  168. data/test/unit/catalog/test_slice.rb +2 -2
  169. data/test/unit/catalog/test_version1.rb +1 -1
  170. data/test/unit/catalog/test_version2.rb +1 -1
  171. data/test/unit/catalog/test_version2_validator.rb +1 -1
  172. data/test/unit/catalog/test_volume_collection.rb +1 -1
  173. data/test/unit/helper/distributed_search_planner_helper.rb +1 -1
  174. data/test/unit/helper/fixture.rb +1 -1
  175. data/test/unit/helper/plugin_helper.rb +1 -1
  176. data/test/unit/helper/sandbox.rb +1 -1
  177. data/test/unit/helper/stub_worker.rb +1 -1
  178. data/test/unit/helper/watch_helper.rb +1 -1
  179. data/test/unit/helper.rb +1 -1
  180. data/test/unit/plugins/crud/test_add.rb +1 -1
  181. data/test/unit/plugins/groonga/select/test_adapter_input.rb +1 -1
  182. data/test/unit/plugins/groonga/select/test_adapter_output.rb +1 -1
  183. data/test/unit/plugins/groonga/test_column_create.rb +1 -1
  184. data/test/unit/plugins/groonga/test_column_list.rb +1 -1
  185. data/test/unit/plugins/groonga/test_column_remove.rb +1 -1
  186. data/test/unit/plugins/groonga/test_column_rename.rb +1 -1
  187. data/test/unit/plugins/groonga/test_delete.rb +1 -1
  188. data/test/unit/plugins/groonga/test_table_create.rb +1 -1
  189. data/test/unit/plugins/groonga/test_table_list.rb +1 -1
  190. data/test/unit/plugins/groonga/test_table_remove.rb +1 -1
  191. data/test/unit/plugins/search/planner/test_basic.rb +1 -1
  192. data/test/unit/plugins/search/planner/test_group_by.rb +1 -1
  193. data/test/unit/plugins/search/planner/test_output.rb +1 -1
  194. data/test/unit/plugins/search/planner/test_sort_by.rb +1 -1
  195. data/test/unit/plugins/search/test_collector.rb +1 -1
  196. data/test/unit/plugins/search/test_handler.rb +1 -1
  197. data/test/unit/plugins/search/test_planner.rb +1 -1
  198. data/test/unit/plugins/system/test_status.rb +1 -1
  199. data/test/unit/plugins/test_basic.rb +1 -1
  200. data/test/unit/plugins/test_groonga.rb +1 -1
  201. data/test/unit/plugins/test_watch.rb +1 -1
  202. data/test/unit/run-test.rb +1 -1
  203. data/test/unit/test_address.rb +53 -0
  204. data/test/unit/test_catalog_generator.rb +59 -1
  205. data/test/unit/test_line_buffer.rb +1 -1
  206. data/test/unit/test_message_matcher.rb +1 -1
  207. data/test/unit/test_schema_applier.rb +1 -1
  208. data/test/unit/test_sweeper.rb +1 -1
  209. data/test/unit/test_watch_schema.rb +1 -1
  210. data/test/unit/test_watcher.rb +1 -1
  211. metadata +39 -24
  212. data/lib/droonga/server.rb +0 -45
  213. data/lib/droonga/worker.rb +0 -66
  214. data/sample/cluster/catalog.json +0 -42
  215. data/test/command/config/default/fluentd.conf +0 -11
  216. data/test/command/config/version1/fluentd.conf +0 -11
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  class DistributedSearchPlannerSortByTest < Test::Unit::TestCase
17
17
  include DistributedSearchPlannerHelper
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/search"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/search"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/search"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/system"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/basic"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/plugins/groonga"
17
17
 
@@ -13,7 +13,7 @@
13
13
  #
14
14
  # You should have received a copy of the GNU Lesser General Public
15
15
  # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 
18
18
  require "droonga/plugins/watch"
19
19
 
@@ -14,7 +14,7 @@
14
14
  #
15
15
  # You should have received a copy of the GNU Lesser General Public
16
16
  # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
18
 
19
19
  require "pathname"
20
20
 
@@ -0,0 +1,53 @@
1
+ # Copyright (C) 2014 Droonga Project
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License version 2.1 as published by the Free Software Foundation.
6
+ #
7
+ # This library is distributed in the hope that it will be useful,
8
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
9
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
+ # Lesser General Public License for more details.
11
+ #
12
+ # You should have received a copy of the GNU Lesser General Public
13
+ # License along with this library; if not, write to the Free Software
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
+
16
+ require "droonga/address"
17
+
18
+ class AddressTest < Test::Unit::TestCase
19
+ def address(host, port, tag, name)
20
+ Droonga::Address.new(:host => host,
21
+ :port => port,
22
+ :tag => tag,
23
+ :name => name)
24
+ end
25
+
26
+ class ParseTest < self
27
+ def parse(string)
28
+ Droonga::Address.parse(string)
29
+ end
30
+
31
+ def test_full
32
+ assert_equal(address("192.168.0.1", 2929, "droonga", "name"),
33
+ parse("192.168.0.1:2929/droonga.name"))
34
+ end
35
+
36
+ def test_internal_name
37
+ assert_equal(address("192.168.0.1", 2929, "droonga", "#1"),
38
+ parse("192.168.0.1:2929/droonga.\#1"))
39
+ end
40
+
41
+ def test_no_name
42
+ assert_equal(address("192.168.0.1", 2929, "droonga", nil),
43
+ parse("192.168.0.1:2929/droonga"))
44
+ end
45
+ end
46
+
47
+ class FormatterTest < self
48
+ def test_node
49
+ assert_equal("192.168.0.1:2929/droonga",
50
+ address("192.168.0.1", 2929, "droonga", "000").node)
51
+ end
52
+ end
53
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/catalog_generator"
17
17
 
@@ -89,5 +89,63 @@ class CatalogGeneratorTest < Test::Unit::TestCase
89
89
  @generator.add_dataset("Droonga", :fact => "Entries")
90
90
  assert_equal("Entries", generate["datasets"]["Droonga"]["fact"])
91
91
  end
92
+
93
+ class LoadTest < self
94
+ def test_replicas
95
+ dataset = {
96
+ "nWorkers" => 4,
97
+ "plugins" => ["groonga", "search", "crud", "dump", "system"],
98
+ "schema" => [],
99
+ "replicas" => [
100
+ {
101
+ "dimension" => "_key",
102
+ "slicer" => "hash",
103
+ "slices" => [
104
+ {
105
+ "volume" => {
106
+ "address" => "127.0.0.1:10031/droonga.000",
107
+ },
108
+ "weight" => 100,
109
+ },
110
+ ],
111
+ },
112
+ ],
113
+ }
114
+ catalog = {
115
+ "datasets" => {
116
+ "Default" => dataset,
117
+ }
118
+ }
119
+ @generator.load(catalog)
120
+ assert_equal(dataset, generate["datasets"]["Default"])
121
+ end
122
+ end
123
+ end
124
+
125
+ class ReplicasTest < self
126
+ def test_catalog
127
+ replicas = [
128
+ {
129
+ "dimension" => "_key",
130
+ "slicer" => "hash",
131
+ "slices" => [
132
+ {
133
+ "volume" => {
134
+ "address" => "127.0.0.1:10031/droonga.000",
135
+ },
136
+ "weight" => 100,
137
+ },
138
+ ],
139
+ },
140
+ ]
141
+ @generator.add_dataset("Droonga", :replicas => replicas)
142
+ dataset = {
143
+ "nWorkers" => 4,
144
+ "plugins" => ["groonga", "search", "crud", "dump", "system"],
145
+ "schema" => {},
146
+ "replicas" => replicas,
147
+ }
148
+ assert_equal(dataset, generate["datasets"]["Droonga"])
149
+ end
92
150
  end
93
151
  end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/line_buffer"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/message_matcher"
17
17
 
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "droonga/schema_applier"
17
17
 
@@ -13,7 +13,7 @@
13
13
  #
14
14
  # You should have received a copy of the GNU Lesser General Public
15
15
  # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 
18
18
  require "droonga/watcher"
19
19
  require "droonga/sweeper"
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # You should have received a copy of the GNU Lesser General Public
13
13
  # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
15
 
16
16
  require "helper"
17
17
 
@@ -13,7 +13,7 @@
13
13
  #
14
14
  # You should have received a copy of the GNU Lesser General Public
15
15
  # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 
18
18
  require "droonga/watcher"
19
19
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droonga-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Droonga Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-28 00:00:00.000000000 Z
11
+ date: 2014-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rroonga
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.0
19
+ version: 4.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.1.0
26
+ version: 4.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: groonga-command-parser
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,35 +67,35 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: serverengine
70
+ name: droonga-message-pack-packer
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '>='
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 1.0.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 1.0.1
83
83
  - !ruby/object:Gem::Dependency
84
- name: droonga-message-pack-packer
84
+ name: faraday
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '>='
88
88
  - !ruby/object:Gem::Version
89
- version: 1.0.1
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '>='
95
95
  - !ruby/object:Gem::Version
96
- version: 1.0.1
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: faraday
98
+ name: faraday_middleware
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: faraday_middleware
112
+ name: archive-zip
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '>='
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: archive-zip
126
+ name: sigdump
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '>='
@@ -137,19 +137,19 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: sigdump
140
+ name: droonga-client
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '>='
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: 0.1.9
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '>='
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: 0.1.9
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: drndump
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -271,10 +271,12 @@ executables:
271
271
  - droonga-engine-absorb-data
272
272
  - droonga-engine-catalog-generate
273
273
  - droonga-engine-catalog-modify
274
+ - droonga-engine-data-publisher
274
275
  - droonga-engine-join
275
276
  - droonga-engine-serf-event-handler
276
277
  - droonga-engine-service
277
278
  - droonga-engine-unjoin
279
+ - droonga-engine-worker
278
280
  extensions: []
279
281
  extra_rdoc_files: []
280
282
  files:
@@ -296,14 +298,17 @@ files:
296
298
  - bin/droonga-engine-absorb-data
297
299
  - bin/droonga-engine-catalog-generate
298
300
  - bin/droonga-engine-catalog-modify
301
+ - bin/droonga-engine-data-publisher
299
302
  - bin/droonga-engine-join
300
303
  - bin/droonga-engine-serf-event-handler
301
304
  - bin/droonga-engine-service
302
305
  - bin/droonga-engine-unjoin
306
+ - bin/droonga-engine-worker
303
307
  - doc/text/news.md
304
308
  - droonga-engine.gemspec
305
309
  - lib/droonga/adapter.rb
306
310
  - lib/droonga/adapter_runner.rb
311
+ - lib/droonga/address.rb
307
312
  - lib/droonga/buffered_tcp_socket.rb
308
313
  - lib/droonga/catalog/base.rb
309
314
  - lib/droonga/catalog/collection_volume.rb
@@ -328,6 +333,7 @@ files:
328
333
  - lib/droonga/collectors/sum.rb
329
334
  - lib/droonga/command/droonga_engine.rb
330
335
  - lib/droonga/command/droonga_engine_service.rb
336
+ - lib/droonga/command/droonga_engine_worker.rb
331
337
  - lib/droonga/command/serf_event_handler.rb
332
338
  - lib/droonga/data_absorber.rb
333
339
  - lib/droonga/dispatcher.rb
@@ -390,6 +396,8 @@ files:
390
396
  - lib/droonga/plugins/search/distributed_search_planner.rb
391
397
  - lib/droonga/plugins/system.rb
392
398
  - lib/droonga/plugins/watch.rb
399
+ - lib/droonga/process_control_protocol.rb
400
+ - lib/droonga/process_supervisor.rb
393
401
  - lib/droonga/processor.rb
394
402
  - lib/droonga/reducer.rb
395
403
  - lib/droonga/replier.rb
@@ -399,14 +407,13 @@ files:
399
407
  - lib/droonga/searcher/mecab_filter.rb
400
408
  - lib/droonga/serf.rb
401
409
  - lib/droonga/serf_downloader.rb
402
- - lib/droonga/server.rb
403
- - lib/droonga/service_control_protocol.rb
404
410
  - lib/droonga/session.rb
405
411
  - lib/droonga/single_step.rb
406
412
  - lib/droonga/single_step_definition.rb
407
413
  - lib/droonga/slice.rb
408
414
  - lib/droonga/status_code.rb
409
415
  - lib/droonga/step_runner.rb
416
+ - lib/droonga/supervisor.rb
410
417
  - lib/droonga/sweeper.rb
411
418
  - lib/droonga/test.rb
412
419
  - lib/droonga/test/stub_handler.rb
@@ -415,16 +422,14 @@ files:
415
422
  - lib/droonga/test/stub_planner.rb
416
423
  - lib/droonga/watch_schema.rb
417
424
  - lib/droonga/watcher.rb
418
- - lib/droonga/worker.rb
419
- - sample/cluster/catalog.json
425
+ - lib/droonga/worker_process_agent.rb
426
+ - sample/cluster/Rakefile
420
427
  - sample/mecab_filter/data.grn
421
428
  - sample/mecab_filter/ddl.grn
422
429
  - sample/mecab_filter/search_with_mecab_filter.json
423
430
  - sample/mecab_filter/search_without_mecab_filter.json
424
431
  - test/command/config/default/catalog.json
425
- - test/command/config/default/fluentd.conf
426
432
  - test/command/config/version1/catalog.json
427
- - test/command/config/version1/fluentd.conf
428
433
  - test/command/fixture/documents.jsons
429
434
  - test/command/fixture/event.jsons
430
435
  - test/command/fixture/user-table-array.jsons
@@ -591,6 +596,9 @@ files:
591
596
  - test/command/suite/search/output/attributes/invalid.catalog.json
592
597
  - test/command/suite/search/output/attributes/invalid.expected
593
598
  - test/command/suite/search/output/attributes/invalid.test
599
+ - test/command/suite/search/output/attributes/reference_vector.catalog.json
600
+ - test/command/suite/search/output/attributes/reference_vector.expected
601
+ - test/command/suite/search/output/attributes/reference_vector.test
594
602
  - test/command/suite/search/output/attributes/star.catalog.json
595
603
  - test/command/suite/search/output/attributes/star.expected
596
604
  - test/command/suite/search/output/attributes/star.test
@@ -617,8 +625,10 @@ files:
617
625
  - test/command/suite/search/sort/invisible-column.test
618
626
  - test/command/suite/system/status.expected
619
627
  - test/command/suite/system/status.test
628
+ - test/command/suite/watch/subscribe.catalog.json
620
629
  - test/command/suite/watch/subscribe.expected
621
630
  - test/command/suite/watch/subscribe.test
631
+ - test/command/suite/watch/unsubscribe.catalog.json
622
632
  - test/command/suite/watch/unsubscribe.expected
623
633
  - test/command/suite/watch/unsubscribe.test
624
634
  - test/performance/run-test.rb
@@ -671,6 +681,7 @@ files:
671
681
  - test/unit/plugins/test_groonga.rb
672
682
  - test/unit/plugins/test_watch.rb
673
683
  - test/unit/run-test.rb
684
+ - test/unit/test_address.rb
674
685
  - test/unit/test_catalog_generator.rb
675
686
  - test/unit/test_line_buffer.rb
676
687
  - test/unit/test_message_matcher.rb
@@ -703,9 +714,7 @@ specification_version: 4
703
714
  summary: Droonga engine
704
715
  test_files:
705
716
  - test/command/config/default/catalog.json
706
- - test/command/config/default/fluentd.conf
707
717
  - test/command/config/version1/catalog.json
708
- - test/command/config/version1/fluentd.conf
709
718
  - test/command/fixture/documents.jsons
710
719
  - test/command/fixture/event.jsons
711
720
  - test/command/fixture/user-table-array.jsons
@@ -872,6 +881,9 @@ test_files:
872
881
  - test/command/suite/search/output/attributes/invalid.catalog.json
873
882
  - test/command/suite/search/output/attributes/invalid.expected
874
883
  - test/command/suite/search/output/attributes/invalid.test
884
+ - test/command/suite/search/output/attributes/reference_vector.catalog.json
885
+ - test/command/suite/search/output/attributes/reference_vector.expected
886
+ - test/command/suite/search/output/attributes/reference_vector.test
875
887
  - test/command/suite/search/output/attributes/star.catalog.json
876
888
  - test/command/suite/search/output/attributes/star.expected
877
889
  - test/command/suite/search/output/attributes/star.test
@@ -898,8 +910,10 @@ test_files:
898
910
  - test/command/suite/search/sort/invisible-column.test
899
911
  - test/command/suite/system/status.expected
900
912
  - test/command/suite/system/status.test
913
+ - test/command/suite/watch/subscribe.catalog.json
901
914
  - test/command/suite/watch/subscribe.expected
902
915
  - test/command/suite/watch/subscribe.test
916
+ - test/command/suite/watch/unsubscribe.catalog.json
903
917
  - test/command/suite/watch/unsubscribe.expected
904
918
  - test/command/suite/watch/unsubscribe.test
905
919
  - test/performance/run-test.rb
@@ -952,6 +966,7 @@ test_files:
952
966
  - test/unit/plugins/test_groonga.rb
953
967
  - test/unit/plugins/test_watch.rb
954
968
  - test/unit/run-test.rb
969
+ - test/unit/test_address.rb
955
970
  - test/unit/test_catalog_generator.rb
956
971
  - test/unit/test_line_buffer.rb
957
972
  - test/unit/test_message_matcher.rb
@@ -1,45 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 Droonga Project
4
- #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License version 2.1 as published by the Free Software Foundation.
8
- #
9
- # This library is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
- # Lesser General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU Lesser General Public
15
- # License along with this library; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
-
18
- require "droonga/logger"
19
-
20
- module Droonga
21
- module Server
22
- def before_run
23
- Droonga.logger.trace("#{log_tag}: before_run: start")
24
- config[:job_pusher].close
25
- config.delete(:job_pusher)
26
- Droonga.logger.trace("#{log_tag}: before_run: done")
27
- end
28
-
29
- def after_run
30
- Droonga.logger.trace("#{log_tag}: after_run: start")
31
- Droonga.logger.trace("#{log_tag}: after_run: done")
32
- end
33
-
34
- def stop(stop_gracefully)
35
- Droonga.logger.trace("#{log_tag}: stop: start")
36
- super(stop_gracefully)
37
- Droonga.logger.trace("#{log_tag}: stop: done")
38
- end
39
-
40
- private
41
- def log_tag
42
- "[#{Process.ppid}][#{Process.pid}] server"
43
- end
44
- end
45
- end
@@ -1,66 +0,0 @@
1
- # Copyright (C) 2013-2014 Droonga Project
2
- #
3
- # This library is free software; you can redistribute it and/or
4
- # modify it under the terms of the GNU Lesser General Public
5
- # License version 2.1 as published by the Free Software Foundation.
6
- #
7
- # This library is distributed in the hope that it will be useful,
8
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
9
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
- # Lesser General Public License for more details.
11
- #
12
- # You should have received a copy of the GNU Lesser General Public
13
- # License along with this library; if not, write to the Free Software
14
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15
-
16
- require "droonga/event_loop"
17
- require "droonga/handler_runner"
18
- require "droonga/job_receiver"
19
-
20
- module Droonga
21
- module Worker
22
- def initialize
23
- @raw_loop = Coolio::Loop.new
24
- @loop = EventLoop.new(@raw_loop)
25
- @forwarder = Forwarder.new(@loop)
26
- @handler_runner = HandlerRunner.new(@loop,
27
- config.merge(:dispatcher => nil,
28
- :engine_state => nil,
29
- :forwarder => @forwarder))
30
- receive_socket_path = config[:job_receive_socket_path]
31
- @job_receiver = JobReceiver.new(@loop, receive_socket_path) do |message|
32
- process(message)
33
- end
34
- end
35
-
36
- def run
37
- Droonga.logger.trace("#{log_tag}: run: start")
38
- @forwarder.start
39
- @handler_runner.start
40
- @job_receiver.start
41
- @raw_loop.run
42
- @handler_runner.shutdown
43
- @forwarder.shutdown
44
- Droonga.logger.trace("#{log_tag}: run: done")
45
- end
46
-
47
- def stop
48
- Droonga.logger.trace("#{log_tag}: stop: start")
49
- @job_receiver.shutdown
50
- @raw_loop.stop
51
- @loop.break_current_loop
52
- Droonga.logger.trace("#{log_tag}: stop: done")
53
- end
54
-
55
- private
56
- def process(message)
57
- Droonga.logger.trace("#{log_tag}: process: start")
58
- @handler_runner.process(message)
59
- Droonga.logger.trace("#{log_tag}: process: done")
60
- end
61
-
62
- def log_tag
63
- "[#{Process.ppid}][#{Process.pid}] worker"
64
- end
65
- end
66
- end