fluent-plugin-droonga 0.9.9 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.dir-locals.el +3 -0
  3. data/.travis.yml +6 -2
  4. data/README.md +6 -7
  5. data/Rakefile +23 -6
  6. data/fluent-plugin-droonga.gemspec +2 -2
  7. data/lib/droonga/adapter.rb +12 -3
  8. data/lib/droonga/adapter_runner.rb +28 -23
  9. data/lib/droonga/catalog/base.rb +7 -111
  10. data/lib/droonga/catalog/dataset.rb +13 -25
  11. data/lib/droonga/catalog/errors.rb +94 -0
  12. data/lib/droonga/catalog/schema.rb +277 -0
  13. data/lib/droonga/catalog/version1.rb +404 -0
  14. data/lib/droonga/catalog/version2.rb +160 -0
  15. data/lib/droonga/catalog_loader.rb +27 -4
  16. data/lib/droonga/catalog_observer.rb +44 -6
  17. data/lib/droonga/collector.rb +12 -10
  18. data/lib/droonga/{handler_plugin.rb → collector_message.rb} +47 -20
  19. data/lib/droonga/collector_runner.rb +64 -0
  20. data/lib/droonga/collectors.rb +18 -0
  21. data/lib/droonga/{catalog.rb → collectors/add.rb} +9 -7
  22. data/lib/droonga/{command_repository.rb → collectors/and.rb} +7 -14
  23. data/lib/droonga/collectors/sum.rb +26 -0
  24. data/lib/droonga/dispatcher.rb +74 -41
  25. data/lib/droonga/distributed_command_planner.rb +2 -2
  26. data/lib/droonga/engine.rb +13 -5
  27. data/lib/droonga/{message_processing_error.rb → error.rb} +33 -12
  28. data/lib/droonga/{plugin/planner/search.rb → error_messages.rb} +12 -10
  29. data/lib/droonga/farm.rb +15 -14
  30. data/lib/droonga/fluent_message_sender.rb +15 -11
  31. data/lib/droonga/forwarder.rb +22 -18
  32. data/lib/droonga/handler.rb +8 -2
  33. data/lib/droonga/handler_runner.rb +47 -26
  34. data/lib/droonga/input_message.rb +6 -6
  35. data/lib/droonga/{command.rb → loggable.rb} +7 -14
  36. data/lib/droonga/logger.rb +56 -15
  37. data/lib/droonga/message_matcher.rb +12 -7
  38. data/lib/droonga/message_pusher.rb +8 -4
  39. data/lib/droonga/message_receiver.rb +11 -9
  40. data/lib/droonga/output_message.rb +2 -0
  41. data/lib/droonga/planner.rb +21 -10
  42. data/lib/droonga/plugin.rb +15 -0
  43. data/lib/droonga/plugin/metadata/{adapter_message.rb → adapter_input_message.rb} +6 -14
  44. data/lib/droonga/plugin/metadata/adapter_output_message.rb +39 -0
  45. data/lib/droonga/plugin/metadata/collector_message.rb +39 -0
  46. data/lib/droonga/plugin/metadata/input_message.rb +15 -0
  47. data/lib/droonga/plugin_loader.rb +33 -25
  48. data/lib/droonga/plugin_registry.rb +9 -1
  49. data/lib/droonga/plugins/basic.rb +54 -0
  50. data/lib/droonga/plugins/crud.rb +36 -15
  51. data/lib/droonga/plugins/error.rb +5 -4
  52. data/lib/droonga/plugins/groonga.rb +9 -6
  53. data/lib/droonga/plugins/groonga/column_create.rb +10 -5
  54. data/lib/droonga/plugins/groonga/generic_command.rb +2 -8
  55. data/lib/droonga/plugins/groonga/generic_response.rb +2 -2
  56. data/lib/droonga/plugins/groonga/select.rb +2 -2
  57. data/lib/droonga/plugins/groonga/table_create.rb +9 -4
  58. data/lib/droonga/plugins/groonga/table_remove.rb +10 -5
  59. data/lib/droonga/plugins/search.rb +106 -5
  60. data/lib/droonga/plugins/search/distributed_search_planner.rb +398 -0
  61. data/lib/droonga/plugins/watch.rb +41 -20
  62. data/lib/droonga/processor.rb +12 -9
  63. data/lib/droonga/{plugin/collector/basic.rb → reducer.rb} +36 -50
  64. data/lib/droonga/replier.rb +7 -4
  65. data/lib/droonga/searcher.rb +40 -37
  66. data/lib/droonga/server.rb +8 -6
  67. data/lib/droonga/session.rb +17 -7
  68. data/lib/droonga/single_step.rb +53 -0
  69. data/lib/droonga/{plugin/planner/watch.rb → single_step_definition.rb} +27 -26
  70. data/lib/droonga/{partition.rb → slice.rb} +23 -12
  71. data/lib/droonga/status_code.rb +25 -0
  72. data/lib/droonga/step_runner.rb +63 -0
  73. data/lib/droonga/watch_schema.rb +7 -3
  74. data/lib/droonga/watcher.rb +4 -4
  75. data/lib/droonga/worker.rb +6 -6
  76. data/lib/fluent/plugin/out_droonga.rb +27 -2
  77. data/sample/cluster/catalog.json +33 -32
  78. data/test/command/config/default/catalog.json +72 -45
  79. data/test/command/config/version1/catalog.json +68 -0
  80. data/test/command/config/version1/fluentd.conf +11 -0
  81. data/test/command/suite/message/error/missing-dataset.expected +1 -1
  82. data/test/command/suite/message/error/unknown-dataset.expected +1 -1
  83. data/test/command/suite/message/error/unknown-type.expected +13 -0
  84. data/test/command/suite/message/error/{unknown-command.test → unknown-type.test} +1 -1
  85. data/test/command/suite/search/error/missing-source-parameter.expected +1 -1
  86. data/test/command/suite/search/error/unknown-source.expected +15 -3
  87. data/test/command/suite/watch/subscribe.expected +1 -3
  88. data/test/command/suite/watch/unsubscribe.expected +1 -3
  89. data/test/performance/watch/catalog.json +1 -0
  90. data/test/unit/catalog/test_dataset.rb +16 -358
  91. data/test/unit/catalog/test_schema.rb +285 -0
  92. data/test/unit/catalog/test_version1.rb +222 -28
  93. data/test/unit/catalog/test_version2.rb +155 -0
  94. data/test/unit/fixtures/catalog/version2.json +62 -0
  95. data/test/unit/helper/distributed_search_planner_helper.rb +2 -2
  96. data/test/unit/plugins/crud/test_add.rb +13 -13
  97. data/test/unit/plugins/groonga/test_column_create.rb +14 -11
  98. data/test/unit/plugins/groonga/test_table_create.rb +4 -9
  99. data/test/unit/plugins/groonga/test_table_remove.rb +4 -9
  100. data/test/unit/{plugin/planner/search_planner → plugins/search/planner}/test_basic.rb +0 -0
  101. data/test/unit/{plugin/planner/search_planner → plugins/search/planner}/test_group_by.rb +0 -0
  102. data/test/unit/{plugin/planner/search_planner → plugins/search/planner}/test_output.rb +0 -0
  103. data/test/unit/{plugin/planner/search_planner → plugins/search/planner}/test_sort_by.rb +0 -0
  104. data/test/unit/{plugin/collector/test_search.rb → plugins/search/test_collector.rb} +40 -39
  105. data/test/unit/plugins/{test_search.rb → search/test_handler.rb} +6 -5
  106. data/test/unit/{plugin/planner/test_search.rb → plugins/search/test_planner.rb} +3 -3
  107. data/test/unit/{plugin/collector → plugins}/test_basic.rb +68 -50
  108. data/test/unit/plugins/test_groonga.rb +2 -15
  109. data/test/unit/plugins/test_watch.rb +25 -22
  110. data/test/unit/test_message_matcher.rb +29 -6
  111. data/test/unit/test_output.rb +4 -0
  112. metadata +58 -50
  113. data/lib/droonga/collector_plugin.rb +0 -50
  114. data/lib/droonga/legacy_pluggable.rb +0 -66
  115. data/lib/droonga/legacy_plugin.rb +0 -57
  116. data/lib/droonga/legacy_plugin_repository.rb +0 -54
  117. data/lib/droonga/planner_plugin.rb +0 -54
  118. data/lib/droonga/plugin/collector/search.rb +0 -98
  119. data/lib/droonga/plugin/planner/crud.rb +0 -49
  120. data/lib/droonga/plugin/planner/distributed_search_planner.rb +0 -393
  121. data/lib/droonga/plugin/planner/groonga.rb +0 -54
  122. data/lib/droonga/plugin_registerable.rb +0 -75
  123. data/test/command/suite/message/error/unknown-command.expected +0 -13
  124. data/test/unit/test_command_repository.rb +0 -39
  125. data/test/unit/test_legacy_plugin.rb +0 -50
  126. data/test/unit/test_legacy_plugin_repository.rb +0 -89
@@ -1,41 +1,42 @@
1
1
  {
2
- "version": 1,
3
- "effective_date": "2013-09-01T00:00:00Z",
4
- "zones": ["localhost:23003/droonga"],
5
- "farms": {
6
- "localhost:23003/droonga": {
7
- "device": ".",
8
- "capacity": 10
9
- }
10
- },
2
+ "version": 2,
3
+ "effectiveDate": "2013-09-01T00:00:00Z",
11
4
  "datasets": {
12
5
  "Droonga": {
13
- "workers": 2,
6
+ "nWorkers": 2,
14
7
  "plugins": ["groonga", "search", "crud"],
15
- "number_of_replicas": 2,
16
- "number_of_partitions": 2,
17
- "partition_key": "_key",
18
- "date_range": "infinity",
19
- "ring": {
20
- "localhost:23041": {
21
- "weight": 50,
22
- "partitions": {
23
- "2013-09-01": [
24
- "localhost:23003/droonga.000",
25
- "localhost:23003/droonga.001"
26
- ]
27
- }
8
+ "schema": {
9
+ },
10
+ "replicas": [
11
+ {
12
+ "slices": [
13
+ {
14
+ "volume": {
15
+ "address": "localhost:23003/droonga.000"
16
+ }
17
+ },
18
+ {
19
+ "volume": {
20
+ "address": "localhost:23003/droonga.001"
21
+ }
22
+ }
23
+ ]
28
24
  },
29
- "localhost:23042": {
30
- "weight": 50,
31
- "partitions": {
32
- "2013-09-01": [
33
- "localhost:23003/droonga.002",
34
- "localhost:23003/droonga.003"
35
- ]
36
- }
25
+ {
26
+ "slices": [
27
+ {
28
+ "volume": {
29
+ "address": "localhost:23003/droonga.010"
30
+ }
31
+ },
32
+ {
33
+ "volume": {
34
+ "address": "localhost:23003/droonga.011"
35
+ }
36
+ }
37
+ ]
37
38
  }
38
- }
39
+ ]
39
40
  }
40
41
  }
41
42
  }
@@ -1,58 +1,85 @@
1
1
  {
2
- "effective_date": "2013-09-01T00:00:00Z",
3
- "zones": ["localhost:23003/droonga"],
4
- "farms": {
5
- "localhost:23003/droonga": {
6
- "device": ".",
7
- "capacity": 10
8
- }
9
- },
2
+ "version": 2,
3
+ "effectiveDate": "2014-02-28T00:00:00Z",
10
4
  "datasets": {
11
5
  "Droonga": {
12
- "workers": 2,
6
+ "nWorkers": 4,
13
7
  "plugins": ["groonga", "crud", "search"],
14
- "number_of_replicas": 2,
15
- "number_of_partitions": 2,
16
- "partition_key": "_key",
17
- "date_range": "infinity",
18
- "ring": {
19
- "localhost:23041": {
20
- "weight": 50,
21
- "partitions": {
22
- "2013-09-01": [
23
- "localhost:23003/droonga.000",
24
- "localhost:23003/droonga.001"
25
- ]
26
- }
8
+ "replicas": [
9
+ {
10
+ "dimension": "_key",
11
+ "slicer": "hash",
12
+ "slices": [
13
+ {
14
+ "label": "slice000",
15
+ "weight": 50,
16
+ "volume": {
17
+ "address": "localhost:23003/droonga.000"
18
+ }
19
+ },
20
+ {
21
+ "label": "slice001",
22
+ "weight": 50,
23
+ "volume": {
24
+ "address": "localhost:23003/droonga.001"
25
+ }
26
+ },
27
+ {
28
+ "label": "slice002",
29
+ "weight": 50,
30
+ "volume": {
31
+ "address": "localhost:23003/droonga.002"
32
+ }
33
+ }
34
+ ]
27
35
  },
28
- "localhost:23042": {
29
- "weight": 50,
30
- "partitions": {
31
- "2013-09-01": [
32
- "localhost:23003/droonga.002",
33
- "localhost:23003/droonga.003"
34
- ]
35
- }
36
+ {
37
+ "dimension": "_key",
38
+ "slicer": "hash",
39
+ "slices": [
40
+ {
41
+ "label": "slice010",
42
+ "weight": 50,
43
+ "volume": {
44
+ "address": "localhost:23003/droonga.010"
45
+ }
46
+ },
47
+ {
48
+ "label": "slice011",
49
+ "weight": 50,
50
+ "volume": {
51
+ "address": "localhost:23003/droonga.011"
52
+ }
53
+ },
54
+ {
55
+ "label": "slice012",
56
+ "weight": 50,
57
+ "volume": {
58
+ "address": "localhost:23003/droonga.012"
59
+ }
60
+ }
61
+ ]
36
62
  }
37
- }
63
+ ]
38
64
  },
39
65
  "Watch": {
40
- "workers": 2,
66
+ "nWorkers": 4,
41
67
  "plugins": ["groonga", "watch", "search", "crud"],
42
- "number_of_replicas": 1,
43
- "number_of_partitions": 1,
44
- "partition_key": "_key",
45
- "date_range": "infinity",
46
- "ring": {
47
- "localhost:23041": {
48
- "weight": 50,
49
- "partitions": {
50
- "2013-09-01": [
51
- "localhost:23003/droonga.watch"
52
- ]
53
- }
68
+ "replicas": [
69
+ {
70
+ "dimension": "_key",
71
+ "slicer": "hash",
72
+ "slices": [
73
+ {
74
+ "label": "slice100",
75
+ "weight": 50,
76
+ "volume": {
77
+ "address": "localhost:23003/droonga.watch"
78
+ }
79
+ }
80
+ ]
54
81
  }
55
- }
82
+ ]
56
83
  }
57
84
  }
58
85
  }
@@ -0,0 +1,68 @@
1
+ {
2
+ "version": 1,
3
+ "effective_date": "2013-09-01T00:00:00Z",
4
+ "zones": ["localhost:23003/droonga"],
5
+ "farms": {
6
+ "localhost:23003/droonga": {
7
+ "device": ".",
8
+ "capacity": 10
9
+ }
10
+ },
11
+ "datasets": {
12
+ "Droonga": {
13
+ "workers": 4,
14
+ "plugins": ["groonga", "crud", "search"],
15
+ "number_of_replicas": 2,
16
+ "number_of_partitions": 3,
17
+ "partition_key": "_key",
18
+ "date_range": "infinity",
19
+ "ring": {
20
+ "localhost:23041": {
21
+ "weight": 50,
22
+ "partitions": {
23
+ "2013-09-01": [
24
+ "localhost:23003/droonga.000",
25
+ "localhost:23003/droonga.001"
26
+ ]
27
+ }
28
+ },
29
+ "localhost:23042": {
30
+ "weight": 50,
31
+ "partitions": {
32
+ "2013-09-01": [
33
+ "localhost:23003/droonga.010",
34
+ "localhost:23003/droonga.011"
35
+ ]
36
+ }
37
+ },
38
+ "localhost:23043": {
39
+ "weight": 50,
40
+ "partitions": {
41
+ "2013-09-01": [
42
+ "localhost:23003/droonga.020",
43
+ "localhost:23003/droonga.021"
44
+ ]
45
+ }
46
+ }
47
+ }
48
+ },
49
+ "Watch": {
50
+ "workers": 4,
51
+ "plugins": ["groonga", "watch", "search", "crud"],
52
+ "number_of_replicas": 1,
53
+ "number_of_partitions": 1,
54
+ "partition_key": "_key",
55
+ "date_range": "infinity",
56
+ "ring": {
57
+ "localhost:23041": {
58
+ "weight": 50,
59
+ "partitions": {
60
+ "2013-09-01": [
61
+ "localhost:23003/droonga.watch"
62
+ ]
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,11 @@
1
+ <source>
2
+ type forward
3
+ port 23003
4
+ </source>
5
+ <match droonga.message>
6
+ name localhost:23003/droonga
7
+ type droonga
8
+ </match>
9
+ <match output.message>
10
+ type stdout
11
+ </match>
@@ -7,7 +7,7 @@
7
7
  "type": "add.result",
8
8
  "body": {
9
9
  "name": "MissingDatasetParameter",
10
- "message": "\"dataset\" must be specified."
10
+ "message": "Missing required parameter: <dataset>"
11
11
  }
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "add.result",
8
8
  "body": {
9
9
  "name": "UnknownDataset",
10
- "message": "The dataset \"Unknown\" does not exist."
10
+ "message": "Unknown dataset: <Unknown>"
11
11
  }
12
12
  }
13
13
  ]
@@ -0,0 +1,13 @@
1
+ [
2
+ "droonga.message",
3
+ 0,
4
+ {
5
+ "inReplyTo": "request-id",
6
+ "statusCode": 400,
7
+ "type": "unknown-type.result",
8
+ "body": {
9
+ "name": "UnknownType",
10
+ "message": "[Droonga] Handler not found for the type: <unknown-type>"
11
+ }
12
+ }
13
+ ]
@@ -1,6 +1,6 @@
1
1
  #@include fixture/user-table.jsons
2
2
  {
3
- "type": "unknown-command",
3
+ "type": "unknown-type",
4
4
  "dataset": "Droonga",
5
5
  "body": {}
6
6
  }
@@ -7,7 +7,7 @@
7
7
  "type": "search.result",
8
8
  "body": {
9
9
  "name": "MissingSourceParameter",
10
- "message": "The query \"no-source\" has no source. Query must have a valid source.",
10
+ "message": "[no-source] No source is specified. Query must have a valid source.",
11
11
  "detail": {
12
12
  "no-source": {
13
13
  }
@@ -7,7 +7,7 @@
7
7
  "type": "search.result",
8
8
  "body": {
9
9
  "name": "UnknownSource",
10
- "message": "The source \"unknown\" does not exist. It must be a name of an existing table or another query.",
10
+ "message": "Source not found: <unknown> It must be a name of an existing table or another query.",
11
11
  "detail": {
12
12
  "unknown-source": {
13
13
  "source": "unknown"
@@ -19,7 +19,7 @@
19
19
  "statusCode": 404,
20
20
  "body": {
21
21
  "name": "UnknownSource",
22
- "message": "The source \"unknown\" does not exist. It must be a name of an existing table or another query.",
22
+ "message": "Source not found: <unknown> It must be a name of an existing table or another query.",
23
23
  "detail": {
24
24
  "unknown-source": {
25
25
  "source": "unknown"
@@ -31,7 +31,19 @@
31
31
  "statusCode": 404,
32
32
  "body": {
33
33
  "name": "UnknownSource",
34
- "message": "The source \"unknown\" does not exist. It must be a name of an existing table or another query.",
34
+ "message": "Source not found: <unknown> It must be a name of an existing table or another query.",
35
+ "detail": {
36
+ "unknown-source": {
37
+ "source": "unknown"
38
+ }
39
+ }
40
+ }
41
+ },
42
+ "sources2": {
43
+ "statusCode": 404,
44
+ "body": {
45
+ "name": "UnknownSource",
46
+ "message": "Source not found: <unknown> It must be a name of an existing table or another query.",
35
47
  "detail": {
36
48
  "unknown-source": {
37
49
  "source": "unknown"
@@ -5,8 +5,6 @@
5
5
  "inReplyTo": "request-id",
6
6
  "statusCode": 200,
7
7
  "type": "watch.subscribe.result",
8
- "body": {
9
- "success": true
10
- }
8
+ "body": true
11
9
  }
12
10
  ]
@@ -5,8 +5,6 @@
5
5
  "inReplyTo": "request-id",
6
6
  "statusCode": 200,
7
7
  "type": "watch.unsubscribe.result",
8
- "body": {
9
- "success": true
10
- }
8
+ "body": true
11
9
  }
12
10
  ]
@@ -1,4 +1,5 @@
1
1
  {
2
+ "versoin": 1,
2
3
  "effective_date": "2013-09-01T00:00:00Z",
3
4
  "zones": ["localhost:23003/droonga"],
4
5
  "farms": {
@@ -17,369 +17,27 @@ require "droonga/catalog/dataset"
17
17
 
18
18
  class CatalogDatasetTest < Test::Unit::TestCase
19
19
  private
20
- def create_dataset(data)
21
- Droonga::Catalog::Dataset.new(data)
20
+ def create_dataset(dataset_name, data)
21
+ Droonga::Catalog::Dataset.new(dataset_name, data)
22
22
  end
23
23
 
24
- class ContinuumTest < self
25
- def setup
26
- @ring = {
27
- "localhost:23041" => {
28
- "weight" => 50,
29
- "partitions" => {
30
- "2014-02-09" => [
31
- "localhost:20341/droonga.000",
32
- "localhost:20341/droonga.001",
33
- ],
34
- },
35
- },
36
- "localhost:23042" => {
37
- "weight" => 50,
38
- "partitions" => {
39
- "2014-02-09" => [
40
- "localhost:20342/droonga.002",
41
- "localhost:20342/droonga.003",
42
- ],
43
- },
44
- },
24
+ class DatasetTest < self
25
+ def test_value
26
+ data = {
27
+ "nWorkers" => 2
45
28
  }
29
+ dataset = create_dataset("dataset_name", data)
30
+ assert_equal(2, dataset["nWorkers"])
46
31
  end
47
32
 
48
- def continuum(data)
49
- create_dataset(data).continuum
50
- end
51
-
52
- def test_no_partition
53
- assert_equal([],
54
- continuum("number_of_partitions" => 1,
55
- "ring" => @ring))
56
- end
57
-
58
- def test_multiple_partitions
59
- assert_equal([
60
- [9603047, "localhost:23041"],
61
- [27629778, "localhost:23042"],
62
- [41438004, "localhost:23042"],
63
- [46078372, "localhost:23042"],
64
- [49960577, "localhost:23041"],
65
- [50458434, "localhost:23042"],
66
- [62539901, "localhost:23041"],
67
- [102160356, "localhost:23042"],
68
- [118777121, "localhost:23041"],
69
- [135178227, "localhost:23041"],
70
- [137745106, "localhost:23042"],
71
- [145409221, "localhost:23041"],
72
- [151846190, "localhost:23042"],
73
- [159720530, "localhost:23041"],
74
- [174946501, "localhost:23042"],
75
- [180602930, "localhost:23042"],
76
- [202106994, "localhost:23042"],
77
- [205862983, "localhost:23042"],
78
- [214712657, "localhost:23041"],
79
- [247420023, "localhost:23041"],
80
- [259057847, "localhost:23041"],
81
- [272576744, "localhost:23042"],
82
- [273722093, "localhost:23041"],
83
- [281067628, "localhost:23042"],
84
- [293157057, "localhost:23041"],
85
- [316454767, "localhost:23041"],
86
- [329395260, "localhost:23041"],
87
- [336035525, "localhost:23042"],
88
- [337183821, "localhost:23042"],
89
- [345936445, "localhost:23042"],
90
- [352998716, "localhost:23042"],
91
- [356549233, "localhost:23042"],
92
- [365790167, "localhost:23042"],
93
- [366761715, "localhost:23042"],
94
- [374718742, "localhost:23042"],
95
- [423944977, "localhost:23041"],
96
- [441573727, "localhost:23041"],
97
- [442348808, "localhost:23042"],
98
- [456608714, "localhost:23042"],
99
- [486506717, "localhost:23042"],
100
- [503359185, "localhost:23041"],
101
- [507968811, "localhost:23041"],
102
- [522389108, "localhost:23041"],
103
- [538007376, "localhost:23042"],
104
- [552940093, "localhost:23041"],
105
- [565987242, "localhost:23041"],
106
- [582806095, "localhost:23041"],
107
- [611312183, "localhost:23041"],
108
- [621389814, "localhost:23041"],
109
- [644400226, "localhost:23041"],
110
- [654418860, "localhost:23041"],
111
- [669337050, "localhost:23042"],
112
- [672929644, "localhost:23042"],
113
- [677668675, "localhost:23041"],
114
- [703432973, "localhost:23041"],
115
- [716459360, "localhost:23041"],
116
- [746047339, "localhost:23042"],
117
- [789450083, "localhost:23041"],
118
- [796244908, "localhost:23042"],
119
- [801162758, "localhost:23041"],
120
- [806867059, "localhost:23041"],
121
- [818911813, "localhost:23042"],
122
- [819949679, "localhost:23042"],
123
- [833118130, "localhost:23042"],
124
- [833679755, "localhost:23041"],
125
- [873615689, "localhost:23042"],
126
- [880898222, "localhost:23041"],
127
- [894480469, "localhost:23042"],
128
- [910910091, "localhost:23041"],
129
- [919595198, "localhost:23041"],
130
- [932350249, "localhost:23042"],
131
- [939377609, "localhost:23041"],
132
- [958562472, "localhost:23042"],
133
- [981240873, "localhost:23041"],
134
- [986623018, "localhost:23042"],
135
- [999488955, "localhost:23042"],
136
- [1017009664, "localhost:23041"],
137
- [1018813132, "localhost:23042"],
138
- [1027591410, "localhost:23041"],
139
- [1048831053, "localhost:23041"],
140
- [1065756786, "localhost:23042"],
141
- [1068022889, "localhost:23042"],
142
- [1074085731, "localhost:23042"],
143
- [1084163769, "localhost:23041"],
144
- [1098037927, "localhost:23042"],
145
- [1121835916, "localhost:23042"],
146
- [1129345220, "localhost:23042"],
147
- [1148803987, "localhost:23041"],
148
- [1151870780, "localhost:23042"],
149
- [1151876336, "localhost:23042"],
150
- [1172639414, "localhost:23042"],
151
- [1174498870, "localhost:23041"],
152
- [1185602679, "localhost:23042"],
153
- [1197984299, "localhost:23042"],
154
- [1207475922, "localhost:23042"],
155
- [1235417559, "localhost:23041"],
156
- [1238004412, "localhost:23042"],
157
- [1243706366, "localhost:23042"],
158
- [1245715925, "localhost:23042"],
159
- [1250583493, "localhost:23041"],
160
- [1288824895, "localhost:23041"],
161
- [1308702666, "localhost:23042"],
162
- [1327123066, "localhost:23042"],
163
- [1327995980, "localhost:23041"],
164
- [1330953926, "localhost:23042"],
165
- [1339581304, "localhost:23042"],
166
- [1347736889, "localhost:23042"],
167
- [1360110626, "localhost:23042"],
168
- [1384082650, "localhost:23042"],
169
- [1401035340, "localhost:23041"],
170
- [1411013100, "localhost:23041"],
171
- [1426568376, "localhost:23042"],
172
- [1431710724, "localhost:23041"],
173
- [1444398493, "localhost:23041"],
174
- [1479189521, "localhost:23041"],
175
- [1513093825, "localhost:23041"],
176
- [1514666132, "localhost:23041"],
177
- [1519362198, "localhost:23042"],
178
- [1531494698, "localhost:23042"],
179
- [1535282727, "localhost:23041"],
180
- [1535626422, "localhost:23042"],
181
- [1553592951, "localhost:23042"],
182
- [1559468978, "localhost:23041"],
183
- [1581367000, "localhost:23042"],
184
- [1589920429, "localhost:23041"],
185
- [1605687052, "localhost:23042"],
186
- [1624945150, "localhost:23042"],
187
- [1628150772, "localhost:23041"],
188
- [1670394510, "localhost:23041"],
189
- [1683839421, "localhost:23041"],
190
- [1689437303, "localhost:23042"],
191
- [1696925840, "localhost:23042"],
192
- [1696962849, "localhost:23041"],
193
- [1711148491, "localhost:23041"],
194
- [1715075293, "localhost:23042"],
195
- [1727144721, "localhost:23041"],
196
- [1741689697, "localhost:23041"],
197
- [1747842507, "localhost:23042"],
198
- [1756538966, "localhost:23042"],
199
- [1756579826, "localhost:23041"],
200
- [1759918231, "localhost:23041"],
201
- [1763420733, "localhost:23042"],
202
- [1773027279, "localhost:23041"],
203
- [1783071332, "localhost:23042"],
204
- [1783904572, "localhost:23041"],
205
- [1798455991, "localhost:23041"],
206
- [1873514423, "localhost:23042"],
207
- [1891118101, "localhost:23041"],
208
- [1893238867, "localhost:23042"],
209
- [1903033611, "localhost:23041"],
210
- [1925915300, "localhost:23041"],
211
- [1938049314, "localhost:23041"],
212
- [1944148871, "localhost:23041"],
213
- [1948017755, "localhost:23042"],
214
- [1968402121, "localhost:23041"],
215
- [1991372406, "localhost:23042"],
216
- [1994291866, "localhost:23041"],
217
- [2008535226, "localhost:23042"],
218
- [2018311062, "localhost:23041"],
219
- [2034595495, "localhost:23041"],
220
- [2035213452, "localhost:23041"],
221
- [2037794404, "localhost:23041"],
222
- [2045835634, "localhost:23041"],
223
- [2047702072, "localhost:23041"],
224
- [2047817697, "localhost:23041"],
225
- [2055369974, "localhost:23042"],
226
- [2080668066, "localhost:23042"],
227
- [2103770068, "localhost:23041"],
228
- [2123603348, "localhost:23042"],
229
- [2139800272, "localhost:23041"],
230
- [2179129230, "localhost:23041"],
231
- [2196771767, "localhost:23042"],
232
- [2201832130, "localhost:23041"],
233
- [2202361965, "localhost:23041"],
234
- [2205203213, "localhost:23041"],
235
- [2224638783, "localhost:23041"],
236
- [2231966397, "localhost:23042"],
237
- [2246002957, "localhost:23041"],
238
- [2268183028, "localhost:23041"],
239
- [2278962012, "localhost:23041"],
240
- [2281079708, "localhost:23041"],
241
- [2319189432, "localhost:23041"],
242
- [2333806182, "localhost:23042"],
243
- [2382832820, "localhost:23042"],
244
- [2395820598, "localhost:23042"],
245
- [2400631930, "localhost:23042"],
246
- [2423755877, "localhost:23042"],
247
- [2463262611, "localhost:23042"],
248
- [2472430585, "localhost:23042"],
249
- [2485153021, "localhost:23041"],
250
- [2496668371, "localhost:23041"],
251
- [2514014586, "localhost:23041"],
252
- [2558870426, "localhost:23042"],
253
- [2564276753, "localhost:23042"],
254
- [2574277968, "localhost:23041"],
255
- [2592472493, "localhost:23042"],
256
- [2607258621, "localhost:23041"],
257
- [2614254907, "localhost:23041"],
258
- [2620760890, "localhost:23042"],
259
- [2651983985, "localhost:23042"],
260
- [2655195461, "localhost:23041"],
261
- [2659913742, "localhost:23042"],
262
- [2661202449, "localhost:23042"],
263
- [2685822324, "localhost:23041"],
264
- [2697042260, "localhost:23042"],
265
- [2703527078, "localhost:23042"],
266
- [2705978309, "localhost:23042"],
267
- [2721148403, "localhost:23042"],
268
- [2733447702, "localhost:23041"],
269
- [2736188580, "localhost:23041"],
270
- [2758967840, "localhost:23041"],
271
- [2784848842, "localhost:23042"],
272
- [2833516863, "localhost:23042"],
273
- [2840102575, "localhost:23041"],
274
- [2865654417, "localhost:23041"],
275
- [2879431763, "localhost:23041"],
276
- [2885879450, "localhost:23042"],
277
- [2886116302, "localhost:23042"],
278
- [2893306625, "localhost:23042"],
279
- [2894128113, "localhost:23042"],
280
- [2897556237, "localhost:23041"],
281
- [2908592163, "localhost:23041"],
282
- [2921288405, "localhost:23041"],
283
- [2946669890, "localhost:23042"],
284
- [2963904259, "localhost:23042"],
285
- [2975325206, "localhost:23041"],
286
- [2996645729, "localhost:23041"],
287
- [3000094069, "localhost:23042"],
288
- [3004191432, "localhost:23042"],
289
- [3008276260, "localhost:23042"],
290
- [3009066823, "localhost:23042"],
291
- [3010043272, "localhost:23041"],
292
- [3021930201, "localhost:23041"],
293
- [3022561244, "localhost:23041"],
294
- [3035183544, "localhost:23041"],
295
- [3061834112, "localhost:23041"],
296
- [3081895333, "localhost:23042"],
297
- [3100253179, "localhost:23041"],
298
- [3105348121, "localhost:23042"],
299
- [3128093110, "localhost:23041"],
300
- [3139279598, "localhost:23041"],
301
- [3161507274, "localhost:23042"],
302
- [3176232817, "localhost:23042"],
303
- [3179328318, "localhost:23041"],
304
- [3193971258, "localhost:23042"],
305
- [3197623137, "localhost:23042"],
306
- [3243553025, "localhost:23041"],
307
- [3256140856, "localhost:23041"],
308
- [3276287733, "localhost:23042"],
309
- [3276659656, "localhost:23041"],
310
- [3336803621, "localhost:23041"],
311
- [3340771432, "localhost:23041"],
312
- [3342756131, "localhost:23041"],
313
- [3349847214, "localhost:23041"],
314
- [3362320951, "localhost:23042"],
315
- [3367216947, "localhost:23042"],
316
- [3373220713, "localhost:23042"],
317
- [3390486913, "localhost:23042"],
318
- [3394808552, "localhost:23041"],
319
- [3427153669, "localhost:23041"],
320
- [3455884916, "localhost:23042"],
321
- [3477557293, "localhost:23041"],
322
- [3490640959, "localhost:23042"],
323
- [3492869366, "localhost:23042"],
324
- [3498663241, "localhost:23041"],
325
- [3511308806, "localhost:23042"],
326
- [3518217839, "localhost:23041"],
327
- [3550643661, "localhost:23042"],
328
- [3560340265, "localhost:23042"],
329
- [3581763062, "localhost:23042"],
330
- [3586388888, "localhost:23041"],
331
- [3613146094, "localhost:23042"],
332
- [3638310074, "localhost:23041"],
333
- [3675913657, "localhost:23042"],
334
- [3707869452, "localhost:23042"],
335
- [3809749253, "localhost:23042"],
336
- [3866669476, "localhost:23042"],
337
- [3868747768, "localhost:23042"],
338
- [3893516035, "localhost:23042"],
339
- [3925429782, "localhost:23042"],
340
- [3930474602, "localhost:23042"],
341
- [3975500031, "localhost:23041"],
342
- [3976115920, "localhost:23042"],
343
- [3977644234, "localhost:23041"],
344
- [3979776870, "localhost:23041"],
345
- [3980299749, "localhost:23041"],
346
- [3980347759, "localhost:23042"],
347
- [4003152522, "localhost:23041"],
348
- [4008016337, "localhost:23041"],
349
- [4009078721, "localhost:23041"],
350
- [4023291693, "localhost:23041"],
351
- [4044935778, "localhost:23042"],
352
- [4069030469, "localhost:23041"],
353
- [4089201952, "localhost:23041"],
354
- [4102445160, "localhost:23042"],
355
- [4110744646, "localhost:23041"],
356
- [4111449069, "localhost:23042"],
357
- [4115421801, "localhost:23041"],
358
- [4146806390, "localhost:23041"],
359
- [4155072858, "localhost:23041"],
360
- [4158437676, "localhost:23041"],
361
- [4169311721, "localhost:23042"],
362
- [4175251809, "localhost:23041"],
363
- [4175808068, "localhost:23042"],
364
- [4197302191, "localhost:23042"],
365
- [4230703474, "localhost:23041"],
366
- [4230786979, "localhost:23042"],
367
- [4233561014, "localhost:23041"],
368
- [4234760241, "localhost:23042"],
369
- [4240706113, "localhost:23042"],
370
- [4242248154, "localhost:23041"],
371
- [4244962758, "localhost:23042"],
372
- [4249972704, "localhost:23042"],
373
- [4255505170, "localhost:23042"],
374
- [4261033451, "localhost:23041"],
375
- [4280396822, "localhost:23041"],
376
- [4281027412, "localhost:23042"],
377
- [4292367368, "localhost:23042"],
378
- [4294093319, "localhost:23042"],
379
- [4294346407, "localhost:23041"],
380
- ],
381
- continuum("number_of_partitions" => 2,
382
- "ring" => @ring))
33
+ def test_schema
34
+ data = {
35
+ "schema" => {
36
+ }
37
+ }
38
+ dataset = create_dataset("dataset_name", data)
39
+ assert_equal(Droonga::Catalog::Schema.new("dataset_name", {}),
40
+ dataset.schema)
383
41
  end
384
42
  end
385
43
  end