droonga-engine 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +7 -0
  5. data/Rakefile +6 -2
  6. data/bin/droonga-engine +2 -2
  7. data/bin/{droonga-catalog-generate → droonga-engine-catalog-generate} +15 -3
  8. data/bin/droonga-engine-serf-event-handler +20 -0
  9. data/bin/droonga-engine-service +2 -2
  10. data/doc/text/news.md +21 -1
  11. data/droonga-engine.gemspec +5 -2
  12. data/lib/droonga/catalog/collection_volume.rb +12 -0
  13. data/lib/droonga/catalog/dataset.rb +25 -0
  14. data/lib/droonga/catalog/single_volume.rb +10 -0
  15. data/lib/droonga/catalog/slice.rb +4 -0
  16. data/lib/droonga/catalog/version1.rb +59 -48
  17. data/lib/droonga/catalog/version2.rb +10 -20
  18. data/lib/droonga/catalog/volume_collection.rb +27 -4
  19. data/lib/droonga/catalog_generator.rb +12 -5
  20. data/lib/droonga/catalog_observer.rb +17 -35
  21. data/lib/droonga/command/droonga_engine.rb +436 -0
  22. data/lib/droonga/command/droonga_engine_service.rb +273 -0
  23. data/lib/droonga/command/serf_event_handler.rb +85 -0
  24. data/lib/droonga/dispatcher.rb +8 -8
  25. data/lib/droonga/engine.rb +90 -26
  26. data/lib/droonga/engine/version.rb +1 -1
  27. data/lib/droonga/engine_state.rb +29 -3
  28. data/lib/droonga/internal_fluent_message_receiver.rb +100 -0
  29. data/lib/droonga/live_nodes_list_loader.rb +48 -0
  30. data/lib/droonga/live_nodes_list_observer.rb +72 -0
  31. data/lib/droonga/path.rb +47 -0
  32. data/lib/droonga/plugins/dump.rb +279 -38
  33. data/lib/droonga/plugins/groonga/select.rb +26 -14
  34. data/lib/droonga/plugins/search.rb +30 -2
  35. data/lib/droonga/plugins/search/distributed_search_planner.rb +28 -11
  36. data/lib/droonga/processor.rb +4 -0
  37. data/lib/droonga/searcher.rb +26 -0
  38. data/lib/droonga/serf.rb +119 -0
  39. data/lib/droonga/serf_downloader.rb +90 -0
  40. data/lib/droonga/server.rb +2 -2
  41. data/lib/droonga/service_control_protocol.rb +26 -0
  42. data/sample/cluster/catalog.json +1 -1
  43. data/test/command/config/default/catalog.json +2 -2
  44. data/test/command/config/version1/catalog.json +1 -1
  45. data/test/command/fixture/documents.jsons +18 -18
  46. data/test/command/fixture/event.jsons +4 -4
  47. data/test/command/fixture/user-table-array.jsons +4 -4
  48. data/test/command/fixture/user-table.jsons +5 -5
  49. data/test/command/suite/add/dimension/column.catalog.json +1 -1
  50. data/test/command/suite/add/dimension/column.test +4 -4
  51. data/test/command/suite/add/dimension/integer.catalog.json +1 -1
  52. data/test/command/suite/add/dimension/integer.test +4 -4
  53. data/test/command/suite/add/error/invalid-integer.test +1 -1
  54. data/test/command/suite/add/error/invalid-time.test +1 -1
  55. data/test/command/suite/add/error/missing-key.test +1 -1
  56. data/test/command/suite/add/error/missing-table.test +1 -1
  57. data/test/command/suite/add/error/unknown-column.test +1 -1
  58. data/test/command/suite/add/error/unknown-table.test +1 -1
  59. data/test/command/suite/add/minimum.test +1 -1
  60. data/test/command/suite/add/vector/short_text.catalog.json +26 -0
  61. data/test/command/suite/add/vector/short_text.expected +42 -0
  62. data/test/command/suite/add/vector/short_text.test +35 -0
  63. data/test/command/suite/add/with-values.test +1 -1
  64. data/test/command/suite/add/without-key.test +1 -1
  65. data/test/command/suite/dump/column/index.catalog.json +40 -0
  66. data/test/command/suite/dump/column/index.expected +195 -0
  67. data/test/command/suite/dump/column/index.test +5 -0
  68. data/test/command/suite/dump/column/scalar.catalog.json +19 -0
  69. data/test/command/suite/dump/column/scalar.expected +99 -0
  70. data/test/command/suite/dump/column/scalar.test +5 -0
  71. data/test/command/suite/dump/column/vector.catalog.json +22 -0
  72. data/test/command/suite/dump/column/vector.expected +108 -0
  73. data/test/command/suite/dump/column/vector.test +5 -0
  74. data/test/command/suite/dump/record/vector/reference.catalog.json +27 -0
  75. data/test/command/suite/dump/record/vector/reference.expected +213 -0
  76. data/test/command/suite/dump/record/vector/reference.test +21 -0
  77. data/test/command/suite/dump/table/array.catalog.json +13 -0
  78. data/test/command/suite/dump/table/array.expected +63 -0
  79. data/test/command/suite/dump/table/array.test +5 -0
  80. data/test/command/suite/dump/table/double_array_trie.catalog.json +14 -0
  81. data/test/command/suite/dump/table/double_array_trie.expected +66 -0
  82. data/test/command/suite/dump/table/double_array_trie.test +5 -0
  83. data/test/command/suite/dump/table/hash.catalog.json +14 -0
  84. data/test/command/suite/dump/table/hash.expected +66 -0
  85. data/test/command/suite/dump/table/hash.test +5 -0
  86. data/test/command/suite/dump/table/patricia_trie.catalog.json +14 -0
  87. data/test/command/suite/dump/table/patricia_trie.expected +66 -0
  88. data/test/command/suite/dump/table/patricia_trie.test +5 -0
  89. data/test/command/suite/groonga/column_create/scalar.test +2 -2
  90. data/test/command/suite/groonga/column_create/unknown-table.test +1 -1
  91. data/test/command/suite/groonga/column_create/vector.test +2 -2
  92. data/test/command/suite/groonga/column_list/success.test +3 -3
  93. data/test/command/suite/groonga/column_list/unknown-table.test +1 -1
  94. data/test/command/suite/groonga/column_remove/success.test +3 -3
  95. data/test/command/suite/groonga/column_remove/unknown-column.test +2 -2
  96. data/test/command/suite/groonga/column_remove/unknown-table.test +1 -1
  97. data/test/command/suite/groonga/column_rename/success.test +3 -3
  98. data/test/command/suite/groonga/column_rename/unknown-column.test +2 -2
  99. data/test/command/suite/groonga/column_rename/unknown-table.test +1 -1
  100. data/test/command/suite/groonga/delete/duplicated-identifiers.test +2 -2
  101. data/test/command/suite/groonga/delete/filter.test +2 -2
  102. data/test/command/suite/groonga/delete/invalid-filter.test +1 -1
  103. data/test/command/suite/groonga/delete/no-identifier.test +2 -2
  104. data/test/command/suite/groonga/delete/success.test +2 -2
  105. data/test/command/suite/groonga/delete/unknown-table.test +1 -1
  106. data/test/command/suite/groonga/select/minimum.expected +24 -1
  107. data/test/command/suite/groonga/select/minimum.test +1 -1
  108. data/test/command/suite/groonga/select/type/time.catalog.json +19 -0
  109. data/test/command/suite/groonga/select/type/time.expected +37 -0
  110. data/test/command/suite/groonga/select/type/time.test +35 -0
  111. data/test/command/suite/groonga/table_create/array.test +1 -1
  112. data/test/command/suite/groonga/table_create/hash.test +1 -1
  113. data/test/command/suite/groonga/table_list/success.test +2 -2
  114. data/test/command/suite/groonga/table_remove/success.test +1 -1
  115. data/test/command/suite/groonga/table_remove/unknown-table.test +1 -1
  116. data/test/command/suite/message/error/unknown-type.expected +1 -1
  117. data/test/command/suite/message/error/unknown-type.test +1 -1
  118. data/test/command/suite/search/adjusters/multiple.catalog.json +1 -1
  119. data/test/command/suite/search/adjusters/multiple.test +3 -3
  120. data/test/command/suite/search/adjusters/one.catalog.json +1 -1
  121. data/test/command/suite/search/adjusters/one.test +3 -3
  122. data/test/command/suite/search/attributes/array.expected +7 -0
  123. data/test/command/suite/search/attributes/array.test +1 -1
  124. data/test/command/suite/search/attributes/hash.expected +18 -0
  125. data/test/command/suite/search/attributes/hash.test +1 -1
  126. data/test/command/suite/search/complex.expected +12 -0
  127. data/test/command/suite/search/complex.test +1 -1
  128. data/test/command/suite/search/condition/nested.catalog.json +37 -0
  129. data/test/command/suite/search/condition/nested.expected +7 -0
  130. data/test/command/suite/search/condition/nested.test +103 -2
  131. data/test/command/suite/search/condition/query.catalog.json +37 -0
  132. data/test/command/suite/search/condition/query.expected +7 -0
  133. data/test/command/suite/search/condition/query.test +103 -2
  134. data/test/command/suite/search/condition/query/nonexistent_column.catalog.json +1 -1
  135. data/test/command/suite/search/condition/query/nonexistent_column.test +2 -2
  136. data/test/command/suite/search/condition/query/syntax_error.catalog.json +1 -1
  137. data/test/command/suite/search/condition/query/syntax_error.test +2 -2
  138. data/test/command/suite/search/condition/script.catalog.json +37 -0
  139. data/test/command/suite/search/condition/script.expected +7 -0
  140. data/test/command/suite/search/condition/script.test +103 -2
  141. data/test/command/suite/search/error/cyclic-source.test +1 -1
  142. data/test/command/suite/search/error/deeply-cyclic-source.test +1 -1
  143. data/test/command/suite/search/error/missing-source-parameter.test +1 -1
  144. data/test/command/suite/search/error/no-query.test +1 -1
  145. data/test/command/suite/search/error/unknown-source.test +1 -1
  146. data/test/command/suite/search/group/count.test +1 -1
  147. data/test/command/suite/search/group/limit.test +1 -1
  148. data/test/command/suite/search/group/string.catalog.json +41 -0
  149. data/test/command/suite/search/group/string.expected +18 -18
  150. data/test/command/suite/search/group/string.test +67 -22
  151. data/test/command/suite/search/group/subrecord/with-sort.catalog.json +1 -1
  152. data/test/command/suite/search/group/subrecord/with-sort.test +5 -5
  153. data/test/command/suite/search/multiple/chained.catalog.json +37 -0
  154. data/test/command/suite/search/multiple/chained.expected +14 -0
  155. data/test/command/suite/search/multiple/chained.test +103 -2
  156. data/test/command/suite/search/multiple/parallel.expected +14 -0
  157. data/test/command/suite/search/multiple/parallel.test +1 -1
  158. data/test/command/suite/search/output/attributes/invalid.catalog.json +1 -1
  159. data/test/command/suite/search/output/attributes/invalid.test +2 -2
  160. data/test/command/suite/search/output/attributes/star.catalog.json +23 -0
  161. data/test/command/suite/search/output/attributes/star.expected +27 -0
  162. data/test/command/suite/search/output/attributes/star.test +32 -0
  163. data/test/command/suite/search/range/only-output.expected +7 -0
  164. data/test/command/suite/search/range/only-output.test +1 -1
  165. data/test/command/suite/search/range/only-sort.expected +7 -0
  166. data/test/command/suite/search/range/only-sort.test +1 -1
  167. data/test/command/suite/search/range/sort-and-output.expected +7 -0
  168. data/test/command/suite/search/range/sort-and-output.test +1 -1
  169. data/test/command/suite/search/range/too-large-output-offset.expected +8 -0
  170. data/test/command/suite/search/range/too-large-output-offset.test +1 -1
  171. data/test/command/suite/search/range/too-large-sort-offset.expected +8 -0
  172. data/test/command/suite/search/range/too-large-sort-offset.test +1 -1
  173. data/test/command/suite/search/response/elapsed_time.catalog.json +1 -1
  174. data/test/command/suite/search/response/elapsed_time.test +2 -2
  175. data/test/command/suite/search/response/records/value/time.expected +12 -0
  176. data/test/command/suite/search/response/records/value/time.test +1 -1
  177. data/test/command/suite/search/simple.expected +12 -0
  178. data/test/command/suite/search/simple.test +1 -1
  179. data/test/command/suite/search/sort/default-offset-limit.expected +7 -0
  180. data/test/command/suite/search/sort/default-offset-limit.test +1 -1
  181. data/test/command/suite/search/sort/invisible-column.expected +7 -0
  182. data/test/command/suite/search/sort/invisible-column.test +1 -1
  183. data/test/unit/catalog/test_collection_volume.rb +16 -0
  184. data/test/unit/catalog/test_dataset.rb +36 -0
  185. data/test/unit/catalog/test_single_volume.rb +9 -0
  186. data/test/unit/catalog/test_slice.rb +11 -0
  187. data/test/unit/catalog/test_version1.rb +7 -12
  188. data/test/unit/catalog/test_version2.rb +7 -0
  189. data/test/unit/catalog/test_volume_collection.rb +28 -0
  190. data/test/unit/fixtures/catalog/version1.json +10 -3
  191. data/test/unit/fixtures/catalog/version2.json +2 -2
  192. data/test/unit/plugins/groonga/select/test_adapter_output.rb +8 -14
  193. data/test/unit/plugins/groonga/test_column_create.rb +5 -5
  194. data/test/unit/plugins/groonga/test_column_remove.rb +2 -2
  195. data/test/unit/plugins/groonga/test_column_rename.rb +2 -2
  196. data/test/unit/plugins/groonga/test_delete.rb +2 -2
  197. data/test/unit/plugins/groonga/test_table_create.rb +9 -9
  198. data/test/unit/plugins/groonga/test_table_remove.rb +1 -1
  199. data/test/unit/test_catalog_generator.rb +1 -1
  200. data/test/unit/test_schema_applier.rb +2 -2
  201. data/test/unit/test_watch_schema.rb +4 -4
  202. metadata +241 -72
  203. data/lib/droonga/engine/command/droonga_engine.rb +0 -441
@@ -80,7 +80,7 @@ class ColumnRenameTest < GroongaHandlerTest
80
80
  process(:column_rename,
81
81
  {"table" => "Books", "name" => "title", "new_name" => "label"})
82
82
  assert_equal(<<-SCHEMA, dump)
83
- table_create Books TABLE_HASH_KEY --key_type ShortText
83
+ table_create Books TABLE_HASH_KEY ShortText
84
84
  column_create Books label COLUMN_SCALAR ShortText
85
85
  SCHEMA
86
86
  end
@@ -96,7 +96,7 @@ column_create Books label COLUMN_SCALAR ShortText
96
96
  process(:column_rename,
97
97
  {"table" => "Books", "name" => "title", "new_name" => "label"})
98
98
  assert_equal(<<-SCHEMA, dump)
99
- table_create Books TABLE_HASH_KEY --key_type ShortText
99
+ table_create Books TABLE_HASH_KEY ShortText
100
100
  column_create Books label COLUMN_SCALAR ShortText
101
101
 
102
102
  column_create Books entry_title COLUMN_INDEX Books label
@@ -88,7 +88,7 @@ class DeleteTest < GroongaHandlerTest
88
88
  process(:delete,
89
89
  {"table" => "Books", "key" => "sample"})
90
90
  assert_equal(<<-DUMP, dump)
91
- table_create Books TABLE_HASH_KEY --key_type ShortText
91
+ table_create Books TABLE_HASH_KEY ShortText
92
92
  DUMP
93
93
  end
94
94
 
@@ -114,7 +114,7 @@ table_create Ages TABLE_NO_KEY
114
114
  process(:delete,
115
115
  {"table" => "Books", "filter" => '_key @^ "D"'})
116
116
  assert_equal(<<-DUMP, dump)
117
- table_create Books TABLE_HASH_KEY --key_type ShortText
117
+ table_create Books TABLE_HASH_KEY ShortText
118
118
 
119
119
  load --table Books
120
120
  [
@@ -40,7 +40,7 @@ class TableCreateTest < GroongaHandlerTest
40
40
  def test_name
41
41
  process(:table_create, {"name" => "Books"})
42
42
  assert_equal(<<-SCHEMA, dump)
43
- table_create Books TABLE_HASH_KEY --key_type ShortText
43
+ table_create Books TABLE_HASH_KEY ShortText
44
44
  SCHEMA
45
45
  end
46
46
 
@@ -55,25 +55,25 @@ table_create Books TABLE_NO_KEY
55
55
  "TABLE_HASH_KEY" => {
56
56
  :flags => "TABLE_HASH_KEY",
57
57
  :schema => <<-SCHEMA,
58
- table_create Books TABLE_HASH_KEY --key_type ShortText
58
+ table_create Books TABLE_HASH_KEY ShortText
59
59
  SCHEMA
60
60
  },
61
61
  "TABLE_PAT_KEY" => {
62
62
  :flags => "TABLE_PAT_KEY",
63
63
  :schema => <<-SCHEMA,
64
- table_create Books TABLE_PAT_KEY --key_type ShortText
64
+ table_create Books TABLE_PAT_KEY ShortText
65
65
  SCHEMA
66
66
  },
67
67
  "TABLE_DAT_KEY" => {
68
68
  :flags => "TABLE_DAT_KEY",
69
69
  :schema => <<-SCHEMA,
70
- table_create Books TABLE_DAT_KEY --key_type ShortText
70
+ table_create Books TABLE_DAT_KEY ShortText
71
71
  SCHEMA
72
72
  },
73
73
  "KEY_WITH_SIS with TABLE_PAT_KEY" => {
74
74
  :flags => "KEY_WITH_SIS|TABLE_PAT_KEY",
75
75
  :schema => <<-SCHEMA,
76
- table_create Books TABLE_PAT_KEY|KEY_WITH_SIS --key_type ShortText
76
+ table_create Books TABLE_PAT_KEY|KEY_WITH_SIS ShortText
77
77
  SCHEMA
78
78
  },
79
79
  "KEY_WITH_SIS without TABLE_PAT_KEY" => {
@@ -101,7 +101,7 @@ table_create Books TABLE_NO_KEY
101
101
  }
102
102
  process(:table_create, request)
103
103
  assert_equal(<<-SCHEMA, dump)
104
- table_create Books TABLE_HASH_KEY --key_type Int32
104
+ table_create Books TABLE_HASH_KEY Int32
105
105
  SCHEMA
106
106
  end
107
107
  end
@@ -114,7 +114,7 @@ table_create Books TABLE_HASH_KEY --key_type Int32
114
114
  }
115
115
  process(:table_create, request)
116
116
  assert_equal(<<-SCHEMA, dump)
117
- table_create Books TABLE_HASH_KEY --key_type ShortText --value_type Int32
117
+ table_create Books TABLE_HASH_KEY ShortText --value_type Int32
118
118
  SCHEMA
119
119
  end
120
120
  end
@@ -127,7 +127,7 @@ table_create Books TABLE_HASH_KEY --key_type ShortText --value_type Int32
127
127
  }
128
128
  process(:table_create, request)
129
129
  assert_equal(<<-SCHEMA, dump)
130
- table_create Books TABLE_HASH_KEY --key_type ShortText --default_tokenizer TokenBigram
130
+ table_create Books TABLE_HASH_KEY ShortText --default_tokenizer TokenBigram
131
131
  SCHEMA
132
132
  end
133
133
  end
@@ -140,7 +140,7 @@ table_create Books TABLE_HASH_KEY --key_type ShortText --default_tokenizer Token
140
140
  }
141
141
  process(:table_create, request)
142
142
  assert_equal(<<-SCHEMA, dump)
143
- table_create Books TABLE_HASH_KEY --key_type ShortText --normalizer NormalizerAuto
143
+ table_create Books TABLE_HASH_KEY ShortText --normalizer NormalizerAuto
144
144
  SCHEMA
145
145
  end
146
146
  end
@@ -55,7 +55,7 @@ class TableRemoveTest < GroongaHandlerTest
55
55
  def test_unknown_table
56
56
  process(:table_remove, {"name" => "Unknown"})
57
57
  assert_equal(<<-SCHEMA, dump)
58
- table_create Books TABLE_HASH_KEY --key_type ShortText
58
+ table_create Books TABLE_HASH_KEY ShortText
59
59
  SCHEMA
60
60
  end
61
61
  end
@@ -55,7 +55,7 @@ class CatalogGeneratorTest < Test::Unit::TestCase
55
55
  @generator.add_dataset("Droonga", {})
56
56
  dataset = {
57
57
  "nWorkers" => 4,
58
- "plugins" => ["groonga", "search", "crud"],
58
+ "plugins" => ["groonga", "search", "crud", "dump"],
59
59
  "schema" => {},
60
60
  "replicas" => [
61
61
  {
@@ -51,9 +51,9 @@ class SchemaCreatorTest < Test::Unit::TestCase
51
51
  }
52
52
  apply(schema_data)
53
53
  assert_equal(<<-DUMP, dump)
54
- table_create Names TABLE_HASH_KEY --key_type ShortText
54
+ table_create Names TABLE_HASH_KEY ShortText
55
55
 
56
- table_create Users TABLE_HASH_KEY --key_type Names
56
+ table_create Users TABLE_HASH_KEY Names
57
57
  DUMP
58
58
  end
59
59
  end
@@ -35,13 +35,13 @@ class WatchSchemaTest < Test::Unit::TestCase
35
35
  :database => database)
36
36
  end
37
37
  assert_equal(<<-SCHEMA, dumped_commands)
38
- table_create Keyword TABLE_PAT_KEY --key_type ShortText --normalizer NormalizerAuto
38
+ table_create Keyword TABLE_PAT_KEY ShortText --normalizer NormalizerAuto
39
39
 
40
- table_create Query TABLE_HASH_KEY --key_type ShortText
40
+ table_create Query TABLE_HASH_KEY ShortText
41
41
 
42
- table_create Route TABLE_HASH_KEY --key_type ShortText
42
+ table_create Route TABLE_HASH_KEY ShortText
43
43
 
44
- table_create Subscriber TABLE_HASH_KEY --key_type ShortText
44
+ table_create Subscriber TABLE_HASH_KEY ShortText
45
45
  column_create Subscriber last_modified COLUMN_SCALAR Time
46
46
 
47
47
  column_create Query keywords COLUMN_VECTOR Keyword
metadata CHANGED
@@ -1,177 +1,261 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droonga-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
- prerelease:
4
+ version: 1.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Droonga Project
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-05-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rroonga
16
- requirement: &81609640 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.1.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *81609640
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.1.0
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: groonga-command-parser
27
- requirement: &81609430 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *81609430
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: json
38
- requirement: &81609200 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *81609200
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: cool.io
49
- requirement: &81608990 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :runtime
56
63
  prerelease: false
57
- version_requirements: *81608990
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: serverengine
60
- requirement: &81608780 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - '>='
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :runtime
67
77
  prerelease: false
68
- version_requirements: *81608780
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: droonga-message-pack-packer
71
- requirement: &81608570 !ruby/object:Gem::Requirement
72
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.1
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: listen
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '2.7'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '2.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday
113
+ requirement: !ruby/object:Gem::Requirement
73
114
  requirements:
74
- - - ! '>='
115
+ - - '>='
75
116
  - !ruby/object:Gem::Version
76
117
  version: '0'
77
118
  type: :runtime
78
119
  prerelease: false
79
- version_requirements: *81608570
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
80
125
  - !ruby/object:Gem::Dependency
81
- name: rake
82
- requirement: &81608360 !ruby/object:Gem::Requirement
83
- none: false
126
+ name: faraday_middleware
127
+ requirement: !ruby/object:Gem::Requirement
84
128
  requirements:
85
- - - ! '>='
129
+ - - '>='
86
130
  - !ruby/object:Gem::Version
87
131
  version: '0'
88
- type: :development
132
+ type: :runtime
89
133
  prerelease: false
90
- version_requirements: *81608360
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
91
139
  - !ruby/object:Gem::Dependency
92
- name: bundler
93
- requirement: &81608150 !ruby/object:Gem::Requirement
94
- none: false
140
+ name: archive-zip
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rake
155
+ requirement: !ruby/object:Gem::Requirement
95
156
  requirements:
96
- - - ! '>='
157
+ - - '>='
97
158
  - !ruby/object:Gem::Version
98
159
  version: '0'
99
160
  type: :development
100
161
  prerelease: false
101
- version_requirements: *81608150
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
102
167
  - !ruby/object:Gem::Dependency
103
- name: droonga-client
104
- requirement: &81607940 !ruby/object:Gem::Requirement
105
- none: false
168
+ name: bundler
169
+ requirement: !ruby/object:Gem::Requirement
106
170
  requirements:
107
- - - ! '>='
171
+ - - '>='
108
172
  - !ruby/object:Gem::Version
109
173
  version: '0'
110
174
  type: :development
111
175
  prerelease: false
112
- version_requirements: *81607940
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
113
181
  - !ruby/object:Gem::Dependency
114
182
  name: test-unit
115
- requirement: &81607730 !ruby/object:Gem::Requirement
116
- none: false
183
+ requirement: !ruby/object:Gem::Requirement
117
184
  requirements:
118
- - - ! '>='
185
+ - - '>='
119
186
  - !ruby/object:Gem::Version
120
187
  version: '0'
121
188
  type: :development
122
189
  prerelease: false
123
- version_requirements: *81607730
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
124
195
  - !ruby/object:Gem::Dependency
125
196
  name: test-unit-notify
126
- requirement: &81607520 !ruby/object:Gem::Requirement
127
- none: false
197
+ requirement: !ruby/object:Gem::Requirement
128
198
  requirements:
129
- - - ! '>='
199
+ - - '>='
130
200
  - !ruby/object:Gem::Version
131
201
  version: '0'
132
202
  type: :development
133
203
  prerelease: false
134
- version_requirements: *81607520
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
135
209
  - !ruby/object:Gem::Dependency
136
210
  name: test-unit-rr
137
- requirement: &81607310 !ruby/object:Gem::Requirement
138
- none: false
211
+ requirement: !ruby/object:Gem::Requirement
139
212
  requirements:
140
- - - ! '>='
213
+ - - '>='
141
214
  - !ruby/object:Gem::Version
142
215
  version: '0'
143
216
  type: :development
144
217
  prerelease: false
145
- version_requirements: *81607310
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
146
223
  - !ruby/object:Gem::Dependency
147
224
  name: packnga
148
- requirement: &81607100 !ruby/object:Gem::Requirement
149
- none: false
225
+ requirement: !ruby/object:Gem::Requirement
150
226
  requirements:
151
- - - ! '>='
227
+ - - '>='
152
228
  - !ruby/object:Gem::Version
153
229
  version: '0'
154
230
  type: :development
155
231
  prerelease: false
156
- version_requirements: *81607100
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
157
237
  - !ruby/object:Gem::Dependency
158
238
  name: kramdown
159
- requirement: &81606890 !ruby/object:Gem::Requirement
160
- none: false
239
+ requirement: !ruby/object:Gem::Requirement
161
240
  requirements:
162
- - - ! '>='
241
+ - - '>='
163
242
  - !ruby/object:Gem::Version
164
243
  version: '0'
165
244
  type: :development
166
245
  prerelease: false
167
- version_requirements: *81606890
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
168
251
  description: Droonga engine is a core component in Droonga system. Droonga is a scalable
169
252
  data processing engine based on Groonga. Droonga means Distributed Groonga.
170
253
  email:
171
254
  - droonga@groonga.org
172
255
  executables:
173
- - droonga-catalog-generate
174
256
  - droonga-engine
257
+ - droonga-engine-catalog-generate
258
+ - droonga-engine-serf-event-handler
175
259
  - droonga-engine-service
176
260
  extensions: []
177
261
  extra_rdoc_files: []
@@ -190,8 +274,9 @@ files:
190
274
  - benchmark/watch/benchmark-notify.sh
191
275
  - benchmark/watch/benchmark-publish.rb
192
276
  - benchmark/watch/benchmark-scan.rb
193
- - bin/droonga-catalog-generate
194
277
  - bin/droonga-engine
278
+ - bin/droonga-engine-catalog-generate
279
+ - bin/droonga-engine-serf-event-handler
195
280
  - bin/droonga-engine-service
196
281
  - doc/text/news.md
197
282
  - droonga-engine.gemspec
@@ -219,11 +304,13 @@ files:
219
304
  - lib/droonga/collectors/and.rb
220
305
  - lib/droonga/collectors/or.rb
221
306
  - lib/droonga/collectors/sum.rb
307
+ - lib/droonga/command/droonga_engine.rb
308
+ - lib/droonga/command/droonga_engine_service.rb
309
+ - lib/droonga/command/serf_event_handler.rb
222
310
  - lib/droonga/dispatcher.rb
223
311
  - lib/droonga/distributed_command_planner.rb
224
312
  - lib/droonga/distributor.rb
225
313
  - lib/droonga/engine.rb
226
- - lib/droonga/engine/command/droonga_engine.rb
227
314
  - lib/droonga/engine/version.rb
228
315
  - lib/droonga/engine_state.rb
229
316
  - lib/droonga/error.rb
@@ -238,13 +325,17 @@ files:
238
325
  - lib/droonga/handler_messenger.rb
239
326
  - lib/droonga/handler_runner.rb
240
327
  - lib/droonga/input_message.rb
328
+ - lib/droonga/internal_fluent_message_receiver.rb
241
329
  - lib/droonga/job_protocol.rb
242
330
  - lib/droonga/job_pusher.rb
243
331
  - lib/droonga/job_receiver.rb
332
+ - lib/droonga/live_nodes_list_loader.rb
333
+ - lib/droonga/live_nodes_list_observer.rb
244
334
  - lib/droonga/loggable.rb
245
335
  - lib/droonga/logger.rb
246
336
  - lib/droonga/message_matcher.rb
247
337
  - lib/droonga/output_message.rb
338
+ - lib/droonga/path.rb
248
339
  - lib/droonga/planner.rb
249
340
  - lib/droonga/pluggable.rb
250
341
  - lib/droonga/plugin.rb
@@ -280,7 +371,10 @@ files:
280
371
  - lib/droonga/schema_applier.rb
281
372
  - lib/droonga/searcher.rb
282
373
  - lib/droonga/searcher/mecab_filter.rb
374
+ - lib/droonga/serf.rb
375
+ - lib/droonga/serf_downloader.rb
283
376
  - lib/droonga/server.rb
377
+ - lib/droonga/service_control_protocol.rb
284
378
  - lib/droonga/session.rb
285
379
  - lib/droonga/single_step.rb
286
380
  - lib/droonga/single_step_definition.rb
@@ -330,10 +424,37 @@ files:
330
424
  - test/command/suite/add/error/unknown-table.test
331
425
  - test/command/suite/add/minimum.expected
332
426
  - test/command/suite/add/minimum.test
427
+ - test/command/suite/add/vector/short_text.catalog.json
428
+ - test/command/suite/add/vector/short_text.expected
429
+ - test/command/suite/add/vector/short_text.test
333
430
  - test/command/suite/add/with-values.expected
334
431
  - test/command/suite/add/with-values.test
335
432
  - test/command/suite/add/without-key.expected
336
433
  - test/command/suite/add/without-key.test
434
+ - test/command/suite/dump/column/index.catalog.json
435
+ - test/command/suite/dump/column/index.expected
436
+ - test/command/suite/dump/column/index.test
437
+ - test/command/suite/dump/column/scalar.catalog.json
438
+ - test/command/suite/dump/column/scalar.expected
439
+ - test/command/suite/dump/column/scalar.test
440
+ - test/command/suite/dump/column/vector.catalog.json
441
+ - test/command/suite/dump/column/vector.expected
442
+ - test/command/suite/dump/column/vector.test
443
+ - test/command/suite/dump/record/vector/reference.catalog.json
444
+ - test/command/suite/dump/record/vector/reference.expected
445
+ - test/command/suite/dump/record/vector/reference.test
446
+ - test/command/suite/dump/table/array.catalog.json
447
+ - test/command/suite/dump/table/array.expected
448
+ - test/command/suite/dump/table/array.test
449
+ - test/command/suite/dump/table/double_array_trie.catalog.json
450
+ - test/command/suite/dump/table/double_array_trie.expected
451
+ - test/command/suite/dump/table/double_array_trie.test
452
+ - test/command/suite/dump/table/hash.catalog.json
453
+ - test/command/suite/dump/table/hash.expected
454
+ - test/command/suite/dump/table/hash.test
455
+ - test/command/suite/dump/table/patricia_trie.catalog.json
456
+ - test/command/suite/dump/table/patricia_trie.expected
457
+ - test/command/suite/dump/table/patricia_trie.test
337
458
  - test/command/suite/groonga/column_create/scalar.expected
338
459
  - test/command/suite/groonga/column_create/scalar.test
339
460
  - test/command/suite/groonga/column_create/unknown-table.expected
@@ -370,6 +491,9 @@ files:
370
491
  - test/command/suite/groonga/delete/unknown-table.test
371
492
  - test/command/suite/groonga/select/minimum.expected
372
493
  - test/command/suite/groonga/select/minimum.test
494
+ - test/command/suite/groonga/select/type/time.catalog.json
495
+ - test/command/suite/groonga/select/type/time.expected
496
+ - test/command/suite/groonga/select/type/time.test
373
497
  - test/command/suite/groonga/table_create/array.expected
374
498
  - test/command/suite/groonga/table_create/array.test
375
499
  - test/command/suite/groonga/table_create/hash.expected
@@ -398,8 +522,10 @@ files:
398
522
  - test/command/suite/search/attributes/hash.test
399
523
  - test/command/suite/search/complex.expected
400
524
  - test/command/suite/search/complex.test
525
+ - test/command/suite/search/condition/nested.catalog.json
401
526
  - test/command/suite/search/condition/nested.expected
402
527
  - test/command/suite/search/condition/nested.test
528
+ - test/command/suite/search/condition/query.catalog.json
403
529
  - test/command/suite/search/condition/query.expected
404
530
  - test/command/suite/search/condition/query.test
405
531
  - test/command/suite/search/condition/query/nonexistent_column.catalog.json
@@ -408,6 +534,7 @@ files:
408
534
  - test/command/suite/search/condition/query/syntax_error.catalog.json
409
535
  - test/command/suite/search/condition/query/syntax_error.expected
410
536
  - test/command/suite/search/condition/query/syntax_error.test
537
+ - test/command/suite/search/condition/script.catalog.json
411
538
  - test/command/suite/search/condition/script.expected
412
539
  - test/command/suite/search/condition/script.test
413
540
  - test/command/suite/search/error/cyclic-source.expected
@@ -424,11 +551,13 @@ files:
424
551
  - test/command/suite/search/group/count.test
425
552
  - test/command/suite/search/group/limit.expected
426
553
  - test/command/suite/search/group/limit.test
554
+ - test/command/suite/search/group/string.catalog.json
427
555
  - test/command/suite/search/group/string.expected
428
556
  - test/command/suite/search/group/string.test
429
557
  - test/command/suite/search/group/subrecord/with-sort.catalog.json
430
558
  - test/command/suite/search/group/subrecord/with-sort.expected
431
559
  - test/command/suite/search/group/subrecord/with-sort.test
560
+ - test/command/suite/search/multiple/chained.catalog.json
432
561
  - test/command/suite/search/multiple/chained.expected
433
562
  - test/command/suite/search/multiple/chained.test
434
563
  - test/command/suite/search/multiple/parallel.expected
@@ -436,6 +565,9 @@ files:
436
565
  - test/command/suite/search/output/attributes/invalid.catalog.json
437
566
  - test/command/suite/search/output/attributes/invalid.expected
438
567
  - test/command/suite/search/output/attributes/invalid.test
568
+ - test/command/suite/search/output/attributes/star.catalog.json
569
+ - test/command/suite/search/output/attributes/star.expected
570
+ - test/command/suite/search/output/attributes/star.test
439
571
  - test/command/suite/search/range/only-output.expected
440
572
  - test/command/suite/search/range/only-output.test
441
573
  - test/command/suite/search/range/only-sort.expected
@@ -518,27 +650,26 @@ files:
518
650
  - test/unit/test_watcher.rb
519
651
  homepage: https://github.com/droonga/droonga-engine
520
652
  licenses: []
653
+ metadata: {}
521
654
  post_install_message:
522
655
  rdoc_options: []
523
656
  require_paths:
524
657
  - lib
525
658
  required_ruby_version: !ruby/object:Gem::Requirement
526
- none: false
527
659
  requirements:
528
- - - ! '>='
660
+ - - '>='
529
661
  - !ruby/object:Gem::Version
530
662
  version: '0'
531
663
  required_rubygems_version: !ruby/object:Gem::Requirement
532
- none: false
533
664
  requirements:
534
- - - ! '>='
665
+ - - '>='
535
666
  - !ruby/object:Gem::Version
536
667
  version: '0'
537
668
  requirements: []
538
669
  rubyforge_project:
539
- rubygems_version: 1.8.11
670
+ rubygems_version: 2.0.14
540
671
  signing_key:
541
- specification_version: 3
672
+ specification_version: 4
542
673
  summary: Droonga engine
543
674
  test_files:
544
675
  - test/command/config/default/catalog.json
@@ -570,10 +701,37 @@ test_files:
570
701
  - test/command/suite/add/error/unknown-table.test
571
702
  - test/command/suite/add/minimum.expected
572
703
  - test/command/suite/add/minimum.test
704
+ - test/command/suite/add/vector/short_text.catalog.json
705
+ - test/command/suite/add/vector/short_text.expected
706
+ - test/command/suite/add/vector/short_text.test
573
707
  - test/command/suite/add/with-values.expected
574
708
  - test/command/suite/add/with-values.test
575
709
  - test/command/suite/add/without-key.expected
576
710
  - test/command/suite/add/without-key.test
711
+ - test/command/suite/dump/column/index.catalog.json
712
+ - test/command/suite/dump/column/index.expected
713
+ - test/command/suite/dump/column/index.test
714
+ - test/command/suite/dump/column/scalar.catalog.json
715
+ - test/command/suite/dump/column/scalar.expected
716
+ - test/command/suite/dump/column/scalar.test
717
+ - test/command/suite/dump/column/vector.catalog.json
718
+ - test/command/suite/dump/column/vector.expected
719
+ - test/command/suite/dump/column/vector.test
720
+ - test/command/suite/dump/record/vector/reference.catalog.json
721
+ - test/command/suite/dump/record/vector/reference.expected
722
+ - test/command/suite/dump/record/vector/reference.test
723
+ - test/command/suite/dump/table/array.catalog.json
724
+ - test/command/suite/dump/table/array.expected
725
+ - test/command/suite/dump/table/array.test
726
+ - test/command/suite/dump/table/double_array_trie.catalog.json
727
+ - test/command/suite/dump/table/double_array_trie.expected
728
+ - test/command/suite/dump/table/double_array_trie.test
729
+ - test/command/suite/dump/table/hash.catalog.json
730
+ - test/command/suite/dump/table/hash.expected
731
+ - test/command/suite/dump/table/hash.test
732
+ - test/command/suite/dump/table/patricia_trie.catalog.json
733
+ - test/command/suite/dump/table/patricia_trie.expected
734
+ - test/command/suite/dump/table/patricia_trie.test
577
735
  - test/command/suite/groonga/column_create/scalar.expected
578
736
  - test/command/suite/groonga/column_create/scalar.test
579
737
  - test/command/suite/groonga/column_create/unknown-table.expected
@@ -610,6 +768,9 @@ test_files:
610
768
  - test/command/suite/groonga/delete/unknown-table.test
611
769
  - test/command/suite/groonga/select/minimum.expected
612
770
  - test/command/suite/groonga/select/minimum.test
771
+ - test/command/suite/groonga/select/type/time.catalog.json
772
+ - test/command/suite/groonga/select/type/time.expected
773
+ - test/command/suite/groonga/select/type/time.test
613
774
  - test/command/suite/groonga/table_create/array.expected
614
775
  - test/command/suite/groonga/table_create/array.test
615
776
  - test/command/suite/groonga/table_create/hash.expected
@@ -638,8 +799,10 @@ test_files:
638
799
  - test/command/suite/search/attributes/hash.test
639
800
  - test/command/suite/search/complex.expected
640
801
  - test/command/suite/search/complex.test
802
+ - test/command/suite/search/condition/nested.catalog.json
641
803
  - test/command/suite/search/condition/nested.expected
642
804
  - test/command/suite/search/condition/nested.test
805
+ - test/command/suite/search/condition/query.catalog.json
643
806
  - test/command/suite/search/condition/query.expected
644
807
  - test/command/suite/search/condition/query.test
645
808
  - test/command/suite/search/condition/query/nonexistent_column.catalog.json
@@ -648,6 +811,7 @@ test_files:
648
811
  - test/command/suite/search/condition/query/syntax_error.catalog.json
649
812
  - test/command/suite/search/condition/query/syntax_error.expected
650
813
  - test/command/suite/search/condition/query/syntax_error.test
814
+ - test/command/suite/search/condition/script.catalog.json
651
815
  - test/command/suite/search/condition/script.expected
652
816
  - test/command/suite/search/condition/script.test
653
817
  - test/command/suite/search/error/cyclic-source.expected
@@ -664,11 +828,13 @@ test_files:
664
828
  - test/command/suite/search/group/count.test
665
829
  - test/command/suite/search/group/limit.expected
666
830
  - test/command/suite/search/group/limit.test
831
+ - test/command/suite/search/group/string.catalog.json
667
832
  - test/command/suite/search/group/string.expected
668
833
  - test/command/suite/search/group/string.test
669
834
  - test/command/suite/search/group/subrecord/with-sort.catalog.json
670
835
  - test/command/suite/search/group/subrecord/with-sort.expected
671
836
  - test/command/suite/search/group/subrecord/with-sort.test
837
+ - test/command/suite/search/multiple/chained.catalog.json
672
838
  - test/command/suite/search/multiple/chained.expected
673
839
  - test/command/suite/search/multiple/chained.test
674
840
  - test/command/suite/search/multiple/parallel.expected
@@ -676,6 +842,9 @@ test_files:
676
842
  - test/command/suite/search/output/attributes/invalid.catalog.json
677
843
  - test/command/suite/search/output/attributes/invalid.expected
678
844
  - test/command/suite/search/output/attributes/invalid.test
845
+ - test/command/suite/search/output/attributes/star.catalog.json
846
+ - test/command/suite/search/output/attributes/star.expected
847
+ - test/command/suite/search/output/attributes/star.test
679
848
  - test/command/suite/search/range/only-output.expected
680
849
  - test/command/suite/search/range/only-output.test
681
850
  - test/command/suite/search/range/only-sort.expected