nose 0.1.0pre1 → 0.1.0pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/data/nose/nose-schema.json +414 -0
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f962003be2e5c1613e5d05a3c752dba22212aceb
4
- data.tar.gz: e06cc1936e9c85a7e5ccb6e3a59827011a3ff8d5
3
+ metadata.gz: 73c3c8d1a15a6f72a37ee4003dbc0590837a20ad
4
+ data.tar.gz: 58fbc4004ed20c788999f239c5d0a360bb60dedf
5
5
  SHA512:
6
- metadata.gz: e012acadb4ca0198d34c87dcff1f60c28c4be7e119a0976d3270730866815e5cc65cd90ae2e70cee38ad19e1e2cee18820b70234948fa173c16a664d1898cd56
7
- data.tar.gz: ca8e6c58a1ee20be1accd32ede0cce6b8b3ac1350f9134bfbdd72aabd39e51853b0e4dd4ca64f00ea9a46ceb4c26c54a1bfdc71eef2d72a83b9cccdae64a69ec
6
+ metadata.gz: b11a6d50aec06ae7f870da6ebe971fbe59996a793cccc487728a08341a29eaedc353f6ce84428d2b5fe21be01c142e5d9778091ef940792806f0f91010fe6489
7
+ data.tar.gz: f8ec551d72c5b05fa7720b927878b74188680620b6ccd8a62c2a46d6505c5284cbd1e5f654cc79b3e7dd2cdaef4cbb0eeed7ed7ae8179a57a3b8e67063cd22f3
@@ -0,0 +1,414 @@
1
+ {
2
+ "id": "https://michael.mior.ca/projects/NoSE/schema#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "title": "Result",
5
+ "description": "A result from running the NoSE design tool",
6
+
7
+ "definitions": {
8
+ "cost_model": {
9
+ "type": "object",
10
+ "properties": {
11
+ "name": {
12
+ "type": "string"
13
+ }
14
+ },
15
+
16
+ "required": ["name"]
17
+ },
18
+
19
+ "field_ref": {
20
+ "type": "object",
21
+ "properties": {
22
+ "name": {
23
+ "type": "string"
24
+ },
25
+ "parent": {
26
+ "type": "string"
27
+ }
28
+ },
29
+
30
+ "required": ["name", "parent"],
31
+ "additionalProperties": false
32
+ },
33
+
34
+ "index_ref": {
35
+ "type": "object",
36
+ "properties": {
37
+ "key": {
38
+ "type": "string"
39
+ }
40
+ },
41
+
42
+ "required": ["key"],
43
+ "additionalProperties": false
44
+ },
45
+
46
+ "entity": {
47
+ "type": "object",
48
+ "properties": {
49
+ "name": {
50
+ "type": "string"
51
+ },
52
+
53
+ "fields": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "object",
57
+ "properties": {
58
+ "name": {
59
+ "type": "string"
60
+ },
61
+ "size": {
62
+ "type": "number"
63
+ },
64
+ "cardinality": {
65
+ "type": "integer"
66
+ },
67
+ "type": {
68
+ "type": "string",
69
+ "enum": ["id", "foreign_key", "date", "float", "integer", "string"]
70
+ }
71
+ },
72
+ "required": ["name", "type"]
73
+ }
74
+ },
75
+
76
+ "count": {
77
+ "type": "integer",
78
+ "minimum": 1
79
+ }
80
+ },
81
+
82
+ "required": ["name"]
83
+ },
84
+
85
+ "index": {
86
+ "id": "index",
87
+ "type": "object",
88
+ "properties": {
89
+ "key": {
90
+ "type": "string"
91
+ },
92
+ "hash_fields": {
93
+ "type": "array",
94
+ "items": { "$ref": "https://michael.mior.ca/projects/NoSE/schema#/definitions/field_ref" }
95
+ },
96
+ "order_fields": {
97
+ "type": "array",
98
+ "items": { "$ref": "https://michael.mior.ca/projects/NoSE/schema#/definitions/field_ref" }
99
+ },
100
+ "extra": {
101
+ "type": "array",
102
+ "items": { "$ref": "https://michael.mior.ca/projects/NoSE/schema#/definitions/field_ref" }
103
+ },
104
+ "graph": {
105
+ "type": "object",
106
+ "properties": {
107
+ "nodes": {
108
+ "type": "array",
109
+ "items": {
110
+ "type": "string"
111
+ }
112
+ },
113
+ "edges": {
114
+ "type": "array",
115
+ "items": { "$ref": "https://michael.mior.ca/projects/NoSE/schema#/definitions/field_ref" }
116
+ }
117
+ }
118
+ },
119
+
120
+ "entries": {
121
+ "type": "integer",
122
+ "minimum": 0,
123
+ "exclusiveMinimum": true
124
+ },
125
+ "entry_size": {
126
+ "type": "integer",
127
+ "minimum": 0,
128
+ "exclusiveMinimum": true
129
+ },
130
+ "size": {
131
+ "type": "integer",
132
+ "minimum": 0,
133
+ "exclusiveMinimum": true
134
+ },
135
+ "hash_count": {
136
+ "type": "integer",
137
+ "minimum": 0,
138
+ "exclusiveMinimum": true
139
+ },
140
+ "per_hash_count": {
141
+ "type": "number",
142
+ "minimum": 0,
143
+ "exclusiveMinimum": true
144
+ }
145
+ },
146
+
147
+ "required": ["key", "hash_fields", "order_fields", "extra", "graph"]
148
+ },
149
+
150
+ "query_plan_step": {
151
+ "type": "object",
152
+ "properties": {
153
+ "cost": {
154
+ "type": "number",
155
+ "minimum": 0
156
+ },
157
+ "cardinality": {
158
+ "type": "number",
159
+ "minimum": 0
160
+ },
161
+ "hash_cardinality": {
162
+ "type": "number",
163
+ "minimum": 0
164
+ }
165
+ }
166
+ },
167
+
168
+ "query_plan": {
169
+ "type": "object",
170
+ "properties": {
171
+ "group": {
172
+ "type": "string"
173
+ },
174
+ "name": {
175
+ "type": "string"
176
+ },
177
+ "query": {
178
+ "type": "string"
179
+ },
180
+ "cost": {
181
+ "type": "number",
182
+ "minimum": 0
183
+ },
184
+
185
+ "weight": {
186
+ "type": "number",
187
+ "minimum": 0
188
+ },
189
+
190
+ "steps": {
191
+ "type": "array",
192
+ "items": {
193
+ "allOf": [
194
+ { "$ref": "#/definitions/query_plan_step" },
195
+ {
196
+ "oneOf": [
197
+ {
198
+ "type": "object",
199
+ "properties": {
200
+ "type": {
201
+ "type": "string",
202
+ "enum": ["index_lookup"]
203
+ },
204
+ "index": { "$ref": "#/definitions/index_ref" },
205
+ "eq_filter": {
206
+ "type": "array",
207
+ "items": { "$ref": "#/definitions/field_ref" }
208
+ },
209
+ "order_by": {
210
+ "type": "array",
211
+ "items": { "$ref": "#/definitions/field_ref" }
212
+ }
213
+ },
214
+
215
+ "required": ["type", "cost", "cardinality", "hash_cardinality", "index"]
216
+ },
217
+
218
+ {
219
+ "type": "object",
220
+ "properties": {
221
+ "type": {
222
+ "type": "string",
223
+ "enum": ["filter"]
224
+ },
225
+ "eq": {
226
+ "type": "array",
227
+ "items": { "$ref": "#/definitions/field_ref" }
228
+ },
229
+ "range": {
230
+ "$ref": "#/definitions/field_ref"
231
+ }
232
+ },
233
+
234
+ "required": ["type", "cost", "cardinality", "hash_cardinality"]
235
+ },
236
+
237
+ {
238
+ "type": "object",
239
+ "properties": {
240
+ "type": {
241
+ "type": "string",
242
+ "enum": ["limit"]
243
+ },
244
+ "limit": {
245
+ "type": "integer",
246
+ "minimum": 1
247
+ }
248
+ },
249
+
250
+ "required": ["type", "cost", "cardinality", "hash_cardinality", "limit"]
251
+ },
252
+
253
+ {
254
+ "type": "object",
255
+ "properties": {
256
+ "type": {
257
+ "type": "string",
258
+ "enum": ["sort"]
259
+ },
260
+ "sort_fields": {
261
+ "type": "array",
262
+ "items": { "$ref": "#/definitions/field_ref" }
263
+ }
264
+ },
265
+
266
+ "required": ["type", "cost", "cardinality", "hash_cardinality", "sort_fields"]
267
+ }
268
+ ]
269
+ }
270
+ ]
271
+ }
272
+ }
273
+ },
274
+
275
+ "required": ["query"]
276
+ },
277
+
278
+ "update_plan": {
279
+ "type": "object",
280
+ "properties": {
281
+ "group": {
282
+ "type": "string"
283
+ },
284
+ "name": {
285
+ "type": "string"
286
+ },
287
+ "statement": {
288
+ "type": "string"
289
+ },
290
+
291
+ "cost": {
292
+ "type": "number",
293
+ "minimum": 0
294
+ },
295
+ "update_cost": {
296
+ "type": "number",
297
+ "minimum": 0
298
+ },
299
+ "weight": {
300
+ "type": "number",
301
+ "minimum": 0
302
+ },
303
+
304
+ "query_plans": {
305
+ "type": "array",
306
+ "items": { "$ref": "#/definitions/query_plan" }
307
+ },
308
+
309
+ "update_steps": {
310
+ "type": "array",
311
+ "items": {
312
+ "type": "object",
313
+ "properties": {
314
+ "type": {
315
+ "type": "string",
316
+ "enum": ["update", "delete", "insert"]
317
+ },
318
+ "index": { "$ref": "#/definitions/index_ref" },
319
+ "fields": {
320
+ "type": "array",
321
+ "items": { "$ref": "#/definitions/field_ref" }
322
+ },
323
+ "cardinality": {
324
+ "type": "number",
325
+ "minimum": 0
326
+ }
327
+ }
328
+ },
329
+
330
+ "required": ["type"]
331
+ },
332
+
333
+ "cost_model": {
334
+ "$ref": "#/definitions/cost_model"
335
+ }
336
+ }
337
+ }
338
+ },
339
+
340
+ "type": "object",
341
+ "properties": {
342
+ "workload": {
343
+ "type": "object",
344
+ "properties": {
345
+ "statements": {
346
+ "type": "array",
347
+ "items": {
348
+ "type": "string"
349
+ }
350
+ },
351
+
352
+ "mix": {
353
+ "type": "string"
354
+ },
355
+ "weights": {
356
+ }
357
+ }
358
+ },
359
+
360
+ "properties": {
361
+ "model": {
362
+ "type": "object",
363
+ "properties": {
364
+ "entities": {
365
+ "type": "array",
366
+ "items": { "$ref": "#/definitions/entity" }
367
+ }
368
+ }
369
+ }
370
+ },
371
+
372
+ "indexes": {
373
+ "type": "array",
374
+ "items": { "$ref": "#/definitions/index" }
375
+ },
376
+
377
+ "enumerated_indexes": {
378
+ "type": "array",
379
+ "items": { "$ref": "#/definitions/index" }
380
+ },
381
+
382
+ "cost_model": {
383
+ "$ref": "#/definitions/cost_model"
384
+ },
385
+
386
+ "plans": {
387
+ "type": "array",
388
+ "items": { "$ref": "#/definitions/query_plan" }
389
+ },
390
+ "update_plans": {
391
+ "type": "array",
392
+ "items": { "$ref": "#/definitions/update_plan" }
393
+ },
394
+
395
+ "total_size": {
396
+ "type": "number",
397
+ "minimum": 0
398
+ },
399
+ "total_cost": {
400
+ "type": "number",
401
+ "minimum": 0
402
+ },
403
+ "revision": {
404
+ "description": "The revision of the NoSE code used to generate these results",
405
+ "type": "string"
406
+ },
407
+ "time": {
408
+ },
409
+ "command": {
410
+ "description": "The full command line used to run NoSE",
411
+ "type": "string"
412
+ }
413
+ }
414
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0pre1
4
+ version: 0.1.0pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Mior
@@ -620,6 +620,7 @@ executables: []
620
620
  extensions: []
621
621
  extra_rdoc_files: []
622
622
  files:
623
+ - data/nose/nose-schema.json
623
624
  - lib/nose.rb
624
625
  - lib/nose/backend.rb
625
626
  - lib/nose/backend/cassandra.rb