couchbase 0.9.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.gitignore +8 -0
  2. data/.yardopts +5 -0
  3. data/HISTORY.markdown +14 -10
  4. data/README.markdown +293 -98
  5. data/Rakefile +19 -24
  6. data/couchbase.gemspec +25 -7
  7. data/ext/couchbase_ext/couchbase_ext.c +2332 -0
  8. data/ext/couchbase_ext/extconf.rb +102 -0
  9. data/lib/couchbase.rb +20 -30
  10. data/lib/couchbase/bucket.rb +43 -112
  11. data/lib/couchbase/version.rb +3 -2
  12. data/tasks/benchmark.rake +6 -0
  13. data/tasks/compile.rake +52 -0
  14. data/tasks/doc.rake +27 -0
  15. data/tasks/test.rake +94 -0
  16. data/tasks/util.rake +21 -0
  17. data/test/profile/.gitignore +1 -0
  18. data/test/profile/Gemfile +6 -0
  19. data/test/profile/benchmark.rb +195 -0
  20. data/test/setup.rb +107 -18
  21. data/test/test_arithmetic.rb +98 -0
  22. data/test/test_async.rb +211 -0
  23. data/test/test_bucket.rb +126 -23
  24. data/test/test_cas.rb +59 -0
  25. data/test/test_couchbase.rb +22 -3
  26. data/test/test_delete.rb +63 -0
  27. data/test/test_errors.rb +82 -0
  28. data/test/test_flush.rb +49 -0
  29. data/test/test_format.rb +98 -0
  30. data/test/test_get.rb +236 -0
  31. data/test/test_stats.rb +53 -0
  32. data/test/test_store.rb +186 -0
  33. data/test/test_touch.rb +57 -0
  34. data/test/test_version.rb +17 -0
  35. metadata +72 -58
  36. data/lib/couchbase/couchdb.rb +0 -107
  37. data/lib/couchbase/document.rb +0 -71
  38. data/lib/couchbase/http_status.rb +0 -118
  39. data/lib/couchbase/latch.rb +0 -71
  40. data/lib/couchbase/memcached.rb +0 -372
  41. data/lib/couchbase/node.rb +0 -49
  42. data/lib/couchbase/rest_client.rb +0 -124
  43. data/lib/couchbase/view.rb +0 -182
  44. data/test/support/buckets-config.json +0 -843
  45. data/test/support/sample_design_doc.json +0 -9
  46. data/test/test_couchdb.rb +0 -98
  47. data/test/test_document.rb +0 -11
  48. data/test/test_latch.rb +0 -88
  49. data/test/test_memcached.rb +0 -59
  50. data/test/test_rest_client.rb +0 -14
  51. data/test/test_view.rb +0 -98
@@ -1,49 +0,0 @@
1
- # Author:: Couchbase <info@couchbase.com>
2
- # Copyright:: 2011 Couchbase, Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- module Couchbase
19
- class Node
20
- attr_accessor :status, :hostname, :ports, :couch_api_base
21
-
22
- def initialize(status, hostname, ports, couch_api_base)
23
- @status = status
24
- @hostname = hostname
25
- @ports = ports
26
- @couch_api_base = couch_api_base
27
- end
28
-
29
- %w(healthy warmup unhealthy).each do |status|
30
- class_eval(<<-EOM)
31
- def #{status}?
32
- @status == '#{status}'
33
- end
34
- EOM
35
- end
36
-
37
- def have_couch_api?
38
- !! @couch_api_base
39
- end
40
-
41
- def couch_api_base
42
- if @couch_api_base
43
- @couch_api_base
44
- else
45
- raise NotImplemented, "CouchDB API isn't available for the node #{@hostname}"
46
- end
47
- end
48
- end
49
- end
@@ -1,124 +0,0 @@
1
- # Author:: Couchbase <info@couchbase.com>
2
- # Copyright:: 2011 Couchbase, Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require 'yajl'
19
- require 'curb'
20
-
21
- module Couchbase
22
- module RestClient
23
- def initialize(pool_uri, options = {}); end
24
-
25
- def http_get(uri, options = {})
26
- execute(:get, uri, options)
27
- end
28
-
29
- def http_head(uri, options = {})
30
- execute(:head, uri, options)
31
- end
32
-
33
- def http_delete(uri, options = {})
34
- execute(:delete, uri, options)
35
- end
36
-
37
- def http_post(uri, options = {}, payload = nil)
38
- execute(:post, uri, options, payload)
39
- end
40
-
41
- def http_put(uri, options = {}, payload = nil)
42
- execute(:put, uri, options, payload)
43
- end
44
-
45
- def curl_easy(uri, options = {})
46
- curl = Curl::Easy.new(build_query(uri, options[:params]))
47
- curl.useragent = "couchbase-ruby-client/#{Couchbase::VERSION}"
48
- if @credentials
49
- curl.http_auth_types = :basic
50
- curl.username = @credentials[:username]
51
- curl.password = @credentials[:password]
52
- end
53
- curl.verbose = true if Kernel.respond_to?(:debugger)
54
- curl.headers.update(options[:headers] || {})
55
- curl
56
- end
57
-
58
- protected
59
-
60
- def execute(method, uri, options = {}, payload = nil)
61
- curl = curl_easy(uri, options)
62
- data = case payload
63
- when IO
64
- payload
65
- when Hash
66
- Yajl::Encoder.encode(payload)
67
- when Couchbase::Document
68
- Yajl::Encoder.encode(payload.data)
69
- end
70
- case method
71
- when :put
72
- curl.http_put(data)
73
- when :post
74
- curl.http_post(data)
75
- when :delete
76
- curl.http_delete
77
- when :head
78
- curl.http_head
79
- when :get
80
- curl.http_get
81
- end
82
- data = Yajl::Parser.parse(curl.body_str)
83
- if error = HttpStatus::Errors[curl.response_code]
84
- raise error.new(data['error'], data['reason'])
85
- else
86
- data
87
- end
88
- end
89
-
90
- def build_query(uri, params = nil)
91
- uri = uri.dup
92
- return uri if params.nil? || params.empty?
93
- uri << "?"
94
- uri << params.map do |k, v|
95
- if v.class == Array
96
- build_query(v.map { |x| [k, x] })
97
- else
98
- if %w{key startkey endkey}.include?(k.to_s)
99
- v = Yajl::Encoder.encode(v)
100
- end
101
- "#{escape(k)}=#{escape(v)}"
102
- end
103
- end.join("&")
104
- end
105
-
106
- def escape(s)
107
- s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
108
- '%'+$1.unpack('H2'*bytesize($1)).join('%').upcase
109
- }.tr(' ', '+')
110
- end
111
-
112
- # Return the bytesize of String; uses String#size under Ruby 1.8 and
113
- # String#bytesize under 1.9.
114
- if ''.respond_to?(:bytesize)
115
- def bytesize(string)
116
- string.bytesize
117
- end
118
- else
119
- def bytesize(string)
120
- string.size
121
- end
122
- end
123
- end
124
- end
@@ -1,182 +0,0 @@
1
- # Author:: Couchbase <info@couchbase.com>
2
- # Copyright:: 2011 Couchbase, Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require 'yaji'
19
-
20
- module Couchbase
21
- class View
22
- include Enumerable
23
-
24
- # Set up view endpoint and optional params
25
- #
26
- # @param [ Couchbase::Bucket ] connection Connection object which
27
- # stores all info about how to make requests to Couchbase views.
28
- #
29
- # @param [ String ] endpoint Full CouchDB view URI.
30
- #
31
- # @param [ Hash ] params Optional parameter which will be passed to
32
- # Couchbase::View#each
33
- #
34
- def initialize(connection, endpoint, params = {})
35
- @connection = connection
36
- @endpoint = endpoint
37
- @params = params
38
- end
39
-
40
- # Yields each document that was fetched by view. It doesn't instantiate
41
- # all the results because of streaming JSON parser. Returns Enumerator
42
- # unless block given.
43
- #
44
- # @example Use each method with block
45
- #
46
- # view.each do |doc|
47
- # # do something with doc
48
- # end
49
- #
50
- # @example Use Enumerator version
51
- #
52
- # enum = view.each # request hasn't issued yet
53
- # enum.map{|doc| doc.title.upcase}
54
- #
55
- # @example Pass options during view initialization
56
- #
57
- # endpoint = "http://localhost:5984/default/_design/blog/_view/recent"
58
- # view = View.new(conn, endpoint, :descending => true)
59
- # view.each do |document|
60
- # # do something with document
61
- # end
62
- #
63
- # @param [ Hash ] params Params for Couchdb query. Some useful are:
64
- # :startkey, :startkey_docid, :descending.
65
- #
66
- def each(params = {})
67
- return enum_for(:each, params) unless block_given?
68
- fetch(params) {|doc| yield(doc)}
69
- end
70
-
71
- # Registers callback function for handling error objects in view
72
- # results stream.
73
- #
74
- # @yieldparam [String] from Location of the node where error occured
75
- # @yieldparam [String] reason The reason message describing what
76
- # happened.
77
- #
78
- # @example Using <tt>#on_error</tt> to log all errors in view result
79
- #
80
- # # JSON-encoded view result
81
- # #
82
- # # {
83
- # # "total_rows": 0,
84
- # # "rows": [ ],
85
- # # "errors": [
86
- # # {
87
- # # "from": "127.0.0.1:5984",
88
- # # "reason": "Design document `_design/testfoobar` missing in database `test_db_b`."
89
- # # },
90
- # # {
91
- # # "from": "http:// localhost:5984/_view_merge/",
92
- # # "reason": "Design document `_design/testfoobar` missing in database `test_db_c`."
93
- # # }
94
- # # ]
95
- # # }
96
- #
97
- # view.on_error do |from, reason|
98
- # logger.warn("#{view.inspect} received the error '#{reason}' from #{from}")
99
- # end
100
- # docs = view.fetch
101
- #
102
- # @example More concise example to just count errors
103
- #
104
- # errcount = 0
105
- # view.on_error{|f,r| errcount += 1}.fetch
106
- #
107
- def on_error(&callback)
108
- @on_error = callback
109
- self # enable call chains
110
- end
111
-
112
- # Performs query to CouchDB view. This method will stream results if block
113
- # given or return complete result set otherwise. In latter case it defines
114
- # method <tt>total_entries</tt> returning <tt>total_rows</tt> entry from
115
- # CouchDB result object.
116
- #
117
- # @param [Hash] params parameters for CouchDB query. See here the full
118
- # list: http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options
119
- #
120
- # @yieldparam [Couchbase::Document] document
121
- #
122
- # @return [Array] with documents. There will be <tt>total_entries</tt>
123
- # method defined on this array if it's possible.
124
- #
125
- # @raise [Couchbase::ViewError] when <tt>on_error</tt> callback is nil and
126
- # error object found in the result stream.
127
- #
128
- def fetch(params = {})
129
- curl = @connection.curl_easy(@endpoint, :params => @params.merge(params))
130
- if block_given?
131
- iter = YAJI::Parser.new(curl).each(["rows/", "errors/"], :with_path => true)
132
- begin
133
- loop do
134
- path, obj = iter.next
135
- if path == "errors/"
136
- from, reason = obj["from"], obj["reason"]
137
- if @on_error
138
- @on_error.call(from, reason)
139
- else
140
- raise ViewError.new(from, reason)
141
- end
142
- else
143
- yield Document.new(self, obj)
144
- end
145
- end
146
- rescue StopIteration
147
- end
148
- else
149
- iter = YAJI::Parser.new(curl).each(["total_rows", "rows/", "errors/"], :with_path => true)
150
- docs = []
151
- begin
152
- path, obj = iter.next
153
- if path == "total_rows"
154
- # if total_rows key present, save it and take next object
155
- total_rows = obj
156
- path, obj = iter.next
157
- end
158
- loop do
159
- if path == "errors/"
160
- from, reason = obj["from"], obj["reason"]
161
- if @on_error
162
- @on_error.call(from, reason)
163
- else
164
- raise ViewError.new(from, reason)
165
- end
166
- else
167
- docs << Document.new(self, obj)
168
- end
169
- path, obj = iter.next
170
- end
171
- rescue StopIteration
172
- end
173
- docs.instance_eval("def total_entries; #{total_rows}; end")
174
- return docs
175
- end
176
- end
177
-
178
- def inspect
179
- %(#<#{self.class.name}:#{self.object_id} @endpoint=#{@endpoint.inspect} @params=#{@params.inspect}>)
180
- end
181
- end
182
- end
@@ -1,843 +0,0 @@
1
- [
2
- {
3
- "name": "default",
4
- "bucketType": "membase",
5
- "authType": "sasl",
6
- "saslPassword": "",
7
- "proxyPort": 0,
8
- "uri": "/pools/default/buckets/default",
9
- "streamingUri": "/pools/default/bucketsStreaming/default",
10
- "flushCacheUri": "/pools/default/buckets/default/controller/doFlush",
11
- "nodes": [
12
- {
13
- "systemStats": {
14
- "cpu_utilization_rate": 1.9950124688279303,
15
- "swap_total": 7999582208,
16
- "swap_used": 0
17
- },
18
- "interestingStats": {
19
- },
20
- "uptime": "4118",
21
- "memoryTotal": 8308645888,
22
- "memoryFree": 4128649216,
23
- "mcdMemoryReserved": 6338,
24
- "mcdMemoryAllocated": 6338,
25
- "couchApiBase": "http://127.0.0.1:5984/default",
26
- "replication": 1.0,
27
- "clusterMembership": "active",
28
- "status": "warmup",
29
- "thisNode": true,
30
- "hostname": "127.0.0.1:8091",
31
- "clusterCompatibility": 1,
32
- "version": "1.7.1_272_g0e7de99",
33
- "os": "x86_64-pc-linux-gnu",
34
- "ports": {
35
- "proxy": 11211,
36
- "direct": 11210
37
- }
38
- }
39
- ],
40
- "stats": {
41
- "uri": "/pools/default/buckets/default/stats",
42
- "directoryURI": "/pools/default/buckets/default/statsDirectory",
43
- "nodeStatsListURI": "/pools/default/buckets/default/nodes"
44
- },
45
- "nodeLocator": "vbucket",
46
- "vBucketServerMap": {
47
- "hashAlgorithm": "CRC",
48
- "numReplicas": 0,
49
- "serverList": [
50
- "127.0.0.1:11210"
51
- ],
52
- "vBucketMap": [
53
- [
54
- 0
55
- ],
56
- [
57
- 0
58
- ],
59
- [
60
- 0
61
- ],
62
- [
63
- 0
64
- ],
65
- [
66
- 0
67
- ],
68
- [
69
- 0
70
- ],
71
- [
72
- 0
73
- ],
74
- [
75
- 0
76
- ],
77
- [
78
- 0
79
- ],
80
- [
81
- 0
82
- ],
83
- [
84
- 0
85
- ],
86
- [
87
- 0
88
- ],
89
- [
90
- 0
91
- ],
92
- [
93
- 0
94
- ],
95
- [
96
- 0
97
- ],
98
- [
99
- 0
100
- ],
101
- [
102
- 0
103
- ],
104
- [
105
- 0
106
- ],
107
- [
108
- 0
109
- ],
110
- [
111
- 0
112
- ],
113
- [
114
- 0
115
- ],
116
- [
117
- 0
118
- ],
119
- [
120
- 0
121
- ],
122
- [
123
- 0
124
- ],
125
- [
126
- 0
127
- ],
128
- [
129
- 0
130
- ],
131
- [
132
- 0
133
- ],
134
- [
135
- 0
136
- ],
137
- [
138
- 0
139
- ],
140
- [
141
- 0
142
- ],
143
- [
144
- 0
145
- ],
146
- [
147
- 0
148
- ],
149
- [
150
- 0
151
- ],
152
- [
153
- 0
154
- ],
155
- [
156
- 0
157
- ],
158
- [
159
- 0
160
- ],
161
- [
162
- 0
163
- ],
164
- [
165
- 0
166
- ],
167
- [
168
- 0
169
- ],
170
- [
171
- 0
172
- ],
173
- [
174
- 0
175
- ],
176
- [
177
- 0
178
- ],
179
- [
180
- 0
181
- ],
182
- [
183
- 0
184
- ],
185
- [
186
- 0
187
- ],
188
- [
189
- 0
190
- ],
191
- [
192
- 0
193
- ],
194
- [
195
- 0
196
- ],
197
- [
198
- 0
199
- ],
200
- [
201
- 0
202
- ],
203
- [
204
- 0
205
- ],
206
- [
207
- 0
208
- ],
209
- [
210
- 0
211
- ],
212
- [
213
- 0
214
- ],
215
- [
216
- 0
217
- ],
218
- [
219
- 0
220
- ],
221
- [
222
- 0
223
- ],
224
- [
225
- 0
226
- ],
227
- [
228
- 0
229
- ],
230
- [
231
- 0
232
- ],
233
- [
234
- 0
235
- ],
236
- [
237
- 0
238
- ],
239
- [
240
- 0
241
- ],
242
- [
243
- 0
244
- ],
245
- [
246
- 0
247
- ],
248
- [
249
- 0
250
- ],
251
- [
252
- 0
253
- ],
254
- [
255
- 0
256
- ],
257
- [
258
- 0
259
- ],
260
- [
261
- 0
262
- ],
263
- [
264
- 0
265
- ],
266
- [
267
- 0
268
- ],
269
- [
270
- 0
271
- ],
272
- [
273
- 0
274
- ],
275
- [
276
- 0
277
- ],
278
- [
279
- 0
280
- ],
281
- [
282
- 0
283
- ],
284
- [
285
- 0
286
- ],
287
- [
288
- 0
289
- ],
290
- [
291
- 0
292
- ],
293
- [
294
- 0
295
- ],
296
- [
297
- 0
298
- ],
299
- [
300
- 0
301
- ],
302
- [
303
- 0
304
- ],
305
- [
306
- 0
307
- ],
308
- [
309
- 0
310
- ],
311
- [
312
- 0
313
- ],
314
- [
315
- 0
316
- ],
317
- [
318
- 0
319
- ],
320
- [
321
- 0
322
- ],
323
- [
324
- 0
325
- ],
326
- [
327
- 0
328
- ],
329
- [
330
- 0
331
- ],
332
- [
333
- 0
334
- ],
335
- [
336
- 0
337
- ],
338
- [
339
- 0
340
- ],
341
- [
342
- 0
343
- ],
344
- [
345
- 0
346
- ],
347
- [
348
- 0
349
- ],
350
- [
351
- 0
352
- ],
353
- [
354
- 0
355
- ],
356
- [
357
- 0
358
- ],
359
- [
360
- 0
361
- ],
362
- [
363
- 0
364
- ],
365
- [
366
- 0
367
- ],
368
- [
369
- 0
370
- ],
371
- [
372
- 0
373
- ],
374
- [
375
- 0
376
- ],
377
- [
378
- 0
379
- ],
380
- [
381
- 0
382
- ],
383
- [
384
- 0
385
- ],
386
- [
387
- 0
388
- ],
389
- [
390
- 0
391
- ],
392
- [
393
- 0
394
- ],
395
- [
396
- 0
397
- ],
398
- [
399
- 0
400
- ],
401
- [
402
- 0
403
- ],
404
- [
405
- 0
406
- ],
407
- [
408
- 0
409
- ],
410
- [
411
- 0
412
- ],
413
- [
414
- 0
415
- ],
416
- [
417
- 0
418
- ],
419
- [
420
- 0
421
- ],
422
- [
423
- 0
424
- ],
425
- [
426
- 0
427
- ],
428
- [
429
- 0
430
- ],
431
- [
432
- 0
433
- ],
434
- [
435
- 0
436
- ],
437
- [
438
- 0
439
- ],
440
- [
441
- 0
442
- ],
443
- [
444
- 0
445
- ],
446
- [
447
- 0
448
- ],
449
- [
450
- 0
451
- ],
452
- [
453
- 0
454
- ],
455
- [
456
- 0
457
- ],
458
- [
459
- 0
460
- ],
461
- [
462
- 0
463
- ],
464
- [
465
- 0
466
- ],
467
- [
468
- 0
469
- ],
470
- [
471
- 0
472
- ],
473
- [
474
- 0
475
- ],
476
- [
477
- 0
478
- ],
479
- [
480
- 0
481
- ],
482
- [
483
- 0
484
- ],
485
- [
486
- 0
487
- ],
488
- [
489
- 0
490
- ],
491
- [
492
- 0
493
- ],
494
- [
495
- 0
496
- ],
497
- [
498
- 0
499
- ],
500
- [
501
- 0
502
- ],
503
- [
504
- 0
505
- ],
506
- [
507
- 0
508
- ],
509
- [
510
- 0
511
- ],
512
- [
513
- 0
514
- ],
515
- [
516
- 0
517
- ],
518
- [
519
- 0
520
- ],
521
- [
522
- 0
523
- ],
524
- [
525
- 0
526
- ],
527
- [
528
- 0
529
- ],
530
- [
531
- 0
532
- ],
533
- [
534
- 0
535
- ],
536
- [
537
- 0
538
- ],
539
- [
540
- 0
541
- ],
542
- [
543
- 0
544
- ],
545
- [
546
- 0
547
- ],
548
- [
549
- 0
550
- ],
551
- [
552
- 0
553
- ],
554
- [
555
- 0
556
- ],
557
- [
558
- 0
559
- ],
560
- [
561
- 0
562
- ],
563
- [
564
- 0
565
- ],
566
- [
567
- 0
568
- ],
569
- [
570
- 0
571
- ],
572
- [
573
- 0
574
- ],
575
- [
576
- 0
577
- ],
578
- [
579
- 0
580
- ],
581
- [
582
- 0
583
- ],
584
- [
585
- 0
586
- ],
587
- [
588
- 0
589
- ],
590
- [
591
- 0
592
- ],
593
- [
594
- 0
595
- ],
596
- [
597
- 0
598
- ],
599
- [
600
- 0
601
- ],
602
- [
603
- 0
604
- ],
605
- [
606
- 0
607
- ],
608
- [
609
- 0
610
- ],
611
- [
612
- 0
613
- ],
614
- [
615
- 0
616
- ],
617
- [
618
- 0
619
- ],
620
- [
621
- 0
622
- ],
623
- [
624
- 0
625
- ],
626
- [
627
- 0
628
- ],
629
- [
630
- 0
631
- ],
632
- [
633
- 0
634
- ],
635
- [
636
- 0
637
- ],
638
- [
639
- 0
640
- ],
641
- [
642
- 0
643
- ],
644
- [
645
- 0
646
- ],
647
- [
648
- 0
649
- ],
650
- [
651
- 0
652
- ],
653
- [
654
- 0
655
- ],
656
- [
657
- 0
658
- ],
659
- [
660
- 0
661
- ],
662
- [
663
- 0
664
- ],
665
- [
666
- 0
667
- ],
668
- [
669
- 0
670
- ],
671
- [
672
- 0
673
- ],
674
- [
675
- 0
676
- ],
677
- [
678
- 0
679
- ],
680
- [
681
- 0
682
- ],
683
- [
684
- 0
685
- ],
686
- [
687
- 0
688
- ],
689
- [
690
- 0
691
- ],
692
- [
693
- 0
694
- ],
695
- [
696
- 0
697
- ],
698
- [
699
- 0
700
- ],
701
- [
702
- 0
703
- ],
704
- [
705
- 0
706
- ],
707
- [
708
- 0
709
- ],
710
- [
711
- 0
712
- ],
713
- [
714
- 0
715
- ],
716
- [
717
- 0
718
- ],
719
- [
720
- 0
721
- ],
722
- [
723
- 0
724
- ],
725
- [
726
- 0
727
- ],
728
- [
729
- 0
730
- ],
731
- [
732
- 0
733
- ],
734
- [
735
- 0
736
- ],
737
- [
738
- 0
739
- ],
740
- [
741
- 0
742
- ],
743
- [
744
- 0
745
- ],
746
- [
747
- 0
748
- ],
749
- [
750
- 0
751
- ],
752
- [
753
- 0
754
- ],
755
- [
756
- 0
757
- ],
758
- [
759
- 0
760
- ],
761
- [
762
- 0
763
- ],
764
- [
765
- 0
766
- ],
767
- [
768
- 0
769
- ],
770
- [
771
- 0
772
- ],
773
- [
774
- 0
775
- ],
776
- [
777
- 0
778
- ],
779
- [
780
- 0
781
- ],
782
- [
783
- 0
784
- ],
785
- [
786
- 0
787
- ],
788
- [
789
- 0
790
- ],
791
- [
792
- 0
793
- ],
794
- [
795
- 0
796
- ],
797
- [
798
- 0
799
- ],
800
- [
801
- 0
802
- ],
803
- [
804
- 0
805
- ],
806
- [
807
- 0
808
- ],
809
- [
810
- 0
811
- ],
812
- [
813
- 0
814
- ],
815
- [
816
- 0
817
- ],
818
- [
819
- 0
820
- ]
821
- ]
822
- },
823
- "replicaNumber": 0,
824
- "quota": {
825
- "ram": 3257925632,
826
- "rawRAM": 3257925632
827
- },
828
- "basicStats": {
829
- "quotaPercentUsed": 0.0,
830
- "opsPerSec": 0,
831
- "diskFetches": 0,
832
- "itemCount": 0,
833
- "diskUsed": 0,
834
- "memUsed": 0
835
- },
836
- "bucketCapabilitiesVer": "sync-1.0",
837
- "bucketCapabilities": [
838
- "touch",
839
- "sync",
840
- "couchapi"
841
- ]
842
- }
843
- ]