roma-client 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +22 -15
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +34 -18
  5. data/README.md +4 -0
  6. data/lib/roma/client/client_pool.rb +15 -25
  7. data/lib/roma/client/client_rttable.rb +1 -2
  8. data/lib/roma/client/tools/showbalance.rb +0 -1
  9. data/lib/roma/client/version.rb +1 -1
  10. data/spec/roma/client/client_pool_spec.rb +133 -173
  11. data/spec/spec_helper.rb +9 -0
  12. metadata +3 -79
  13. data/doc/CHANGELOG_md.html +0 -119
  14. data/doc/README_md.html +0 -161
  15. data/doc/Roma.html +0 -95
  16. data/doc/Roma/Client.html +0 -95
  17. data/doc/Roma/Client/ClientPool.html +0 -716
  18. data/doc/Roma/Client/ClientRoutingTable.html +0 -495
  19. data/doc/Roma/Client/ConPool.html +0 -484
  20. data/doc/Roma/Client/Plugin.html +0 -95
  21. data/doc/Roma/Client/Plugin/Alist.html +0 -1276
  22. data/doc/Roma/Client/Plugin/Map.html +0 -531
  23. data/doc/Roma/Client/Plugin/MapCount.html +0 -401
  24. data/doc/Roma/Client/Proxy.html +0 -95
  25. data/doc/Roma/Client/Proxy/ClientHandler.html +0 -273
  26. data/doc/Roma/Client/Proxy/Conpool.html +0 -394
  27. data/doc/Roma/Client/Proxy/Daemon.html +0 -305
  28. data/doc/Roma/Client/Proxy/RomaHandler.html +0 -217
  29. data/doc/Roma/Client/RomaClient.html +0 -1339
  30. data/doc/Roma/Client/Sender.html +0 -482
  31. data/doc/Roma/Client/Stats.html +0 -162
  32. data/doc/Roma/Client/VERSION.html +0 -141
  33. data/doc/Roma/Logging.html +0 -95
  34. data/doc/Roma/Logging/RLogger.html +0 -786
  35. data/doc/Roma/Logging/RLogger/ExtLogDev.html +0 -159
  36. data/doc/Roma/Logging/RLogger/ExtShiftAge.html +0 -95
  37. data/doc/Roma/Logging/RLogger/ExtTrace.html +0 -109
  38. data/doc/Roma/Logging/RLogger/Severity.html +0 -139
  39. data/doc/Roma/Routing.html +0 -95
  40. data/doc/Roma/Routing/RoutingData.html +0 -912
  41. data/doc/Roma/Routing/RoutingData/RandomNodeListMaker.html +0 -311
  42. data/doc/created.rid +0 -20
  43. data/doc/css/fonts.css +0 -167
  44. data/doc/css/rdoc.css +0 -590
  45. data/doc/fonts/Lato-Light.ttf +0 -0
  46. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  47. data/doc/fonts/Lato-Regular.ttf +0 -0
  48. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  49. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  50. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  51. data/doc/images/add.png +0 -0
  52. data/doc/images/arrow_up.png +0 -0
  53. data/doc/images/brick.png +0 -0
  54. data/doc/images/brick_link.png +0 -0
  55. data/doc/images/bug.png +0 -0
  56. data/doc/images/bullet_black.png +0 -0
  57. data/doc/images/bullet_toggle_minus.png +0 -0
  58. data/doc/images/bullet_toggle_plus.png +0 -0
  59. data/doc/images/date.png +0 -0
  60. data/doc/images/delete.png +0 -0
  61. data/doc/images/find.png +0 -0
  62. data/doc/images/loadingAnimation.gif +0 -0
  63. data/doc/images/macFFBgHack.png +0 -0
  64. data/doc/images/package.png +0 -0
  65. data/doc/images/page_green.png +0 -0
  66. data/doc/images/page_white_text.png +0 -0
  67. data/doc/images/page_white_width.png +0 -0
  68. data/doc/images/plugin.png +0 -0
  69. data/doc/images/ruby.png +0 -0
  70. data/doc/images/tag_blue.png +0 -0
  71. data/doc/images/tag_green.png +0 -0
  72. data/doc/images/transparent.png +0 -0
  73. data/doc/images/wrench.png +0 -0
  74. data/doc/images/wrench_orange.png +0 -0
  75. data/doc/images/zoom.png +0 -0
  76. data/doc/index.html +0 -210
  77. data/doc/js/darkfish.js +0 -161
  78. data/doc/js/jquery.js +0 -4
  79. data/doc/js/navigation.js +0 -142
  80. data/doc/js/navigation.js.gz +0 -0
  81. data/doc/js/search.js +0 -109
  82. data/doc/js/search_index.js +0 -1
  83. data/doc/js/search_index.js.gz +0 -0
  84. data/doc/js/searcher.js +0 -228
  85. data/doc/js/searcher.js.gz +0 -0
  86. data/doc/table_of_contents.html +0 -972
  87. data/lib/roma/client/routing/routing_data.rb +0 -241
@@ -1,495 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset=" UTF-8">
6
-
7
- <title>class Roma::Client::ClientRoutingTable - ROMA documents</title>
8
-
9
- <script type="text/javascript">
10
- var rdoc_rel_prefix = "../../";
11
- </script>
12
-
13
- <script src="../../js/jquery.js"></script>
14
- <script src="../../js/darkfish.js"></script>
15
-
16
- <link href="../../css/fonts.css" rel="stylesheet">
17
- <link href="../../css/rdoc.css" rel="stylesheet">
18
-
19
-
20
-
21
- <body id="top" role="document" class="class">
22
- <nav role="navigation">
23
- <div id="project-navigation">
24
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
25
- <h2>
26
- <a href="../../index.html" rel="home">Home</a>
27
- </h2>
28
-
29
- <div id="table-of-contents-navigation">
30
- <a href="../../table_of_contents.html#pages">Pages</a>
31
- <a href="../../table_of_contents.html#classes">Classes</a>
32
- <a href="../../table_of_contents.html#methods">Methods</a>
33
- </div>
34
- </div>
35
-
36
- <div id="search-section" role="search" class="project-section initially-hidden">
37
- <form action="#" method="get" accept-charset="utf-8">
38
- <div id="search-field-wrapper">
39
- <input id="search-field" role="combobox" aria-label="Search"
40
- aria-autocomplete="list" aria-controls="search-results"
41
- type="text" name="search" placeholder="Search" spellcheck="false"
42
- title="Type to search, Up and Down to navigate, Enter to load">
43
- </div>
44
-
45
- <ul id="search-results" aria-label="Search Results"
46
- aria-busy="false" aria-expanded="false"
47
- aria-atomic="false" class="initially-hidden"></ul>
48
- </form>
49
- </div>
50
-
51
- </div>
52
-
53
-
54
-
55
- <div id="class-metadata">
56
-
57
- <div id="parent-class-section" class="nav-section">
58
- <h3>Parent</h3>
59
-
60
-
61
- <p class="link">Object
62
-
63
- </div>
64
-
65
-
66
-
67
- <!-- Method Quickref -->
68
- <div id="method-list-section" class="nav-section">
69
- <h3>Methods</h3>
70
-
71
- <ul class="link-list" role="directory">
72
-
73
- <li ><a href="#method-c-new">::new</a>
74
-
75
- <li ><a href="#method-i-get_vnode_id">#get_vnode_id</a>
76
-
77
- <li ><a href="#method-i-nodes">#nodes</a>
78
-
79
- <li ><a href="#method-i-proc_failed">#proc_failed</a>
80
-
81
- <li ><a href="#method-i-search_node">#search_node</a>
82
-
83
- <li ><a href="#method-i-search_nodes">#search_nodes</a>
84
-
85
- <li ><a href="#method-i-vnodes">#vnodes</a>
86
-
87
- </ul>
88
- </div>
89
-
90
- </div>
91
- </nav>
92
-
93
- <main role="main" aria-labelledby="class-Roma::Client::ClientRoutingTable">
94
- <h1 id="class-Roma::Client::ClientRoutingTable" class="class">
95
- class Roma::Client::ClientRoutingTable
96
- </h1>
97
-
98
- <section class="description">
99
-
100
- </section>
101
-
102
-
103
-
104
-
105
- <section id="5Buntitled-5D" class="documentation-section">
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
- <section class="attribute-method-details" class="method-section">
114
- <header>
115
- <h3>Attributes</h3>
116
- </header>
117
-
118
-
119
- <div id="attribute-i-div_bits" class="method-detail">
120
- <div class="method-heading attribute-method-heading">
121
- <span class="method-name">div_bits</span><span
122
- class="attribute-access-type">[R]</span>
123
- </div>
124
-
125
- <div class="method-description">
126
-
127
-
128
-
129
- </div>
130
- </div>
131
-
132
- <div id="attribute-i-fail_cnt" class="method-detail">
133
- <div class="method-heading attribute-method-heading">
134
- <span class="method-name">fail_cnt</span><span
135
- class="attribute-access-type">[R]</span>
136
- </div>
137
-
138
- <div class="method-description">
139
-
140
-
141
-
142
- </div>
143
- </div>
144
-
145
- <div id="attribute-i-hbits" class="method-detail">
146
- <div class="method-heading attribute-method-heading">
147
- <span class="method-name">hbits</span><span
148
- class="attribute-access-type">[R]</span>
149
- </div>
150
-
151
- <div class="method-description">
152
-
153
-
154
-
155
- </div>
156
- </div>
157
-
158
- <div id="attribute-i-mklhash" class="method-detail">
159
- <div class="method-heading attribute-method-heading">
160
- <span class="method-name">mklhash</span><span
161
- class="attribute-access-type">[RW]</span>
162
- </div>
163
-
164
- <div class="method-description">
165
-
166
-
167
-
168
- </div>
169
- </div>
170
-
171
- <div id="attribute-i-rd" class="method-detail">
172
- <div class="method-heading attribute-method-heading">
173
- <span class="method-name">rd</span><span
174
- class="attribute-access-type">[R]</span>
175
- </div>
176
-
177
- <div class="method-description">
178
-
179
-
180
-
181
- </div>
182
- </div>
183
-
184
- <div id="attribute-i-rn" class="method-detail">
185
- <div class="method-heading attribute-method-heading">
186
- <span class="method-name">rn</span><span
187
- class="attribute-access-type">[R]</span>
188
- </div>
189
-
190
- <div class="method-description">
191
-
192
-
193
-
194
- </div>
195
- </div>
196
-
197
- <div id="attribute-i-search_mask" class="method-detail">
198
- <div class="method-heading attribute-method-heading">
199
- <span class="method-name">search_mask</span><span
200
- class="attribute-access-type">[R]</span>
201
- </div>
202
-
203
- <div class="method-description">
204
-
205
-
206
-
207
- </div>
208
- </div>
209
-
210
- </section>
211
-
212
-
213
-
214
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
215
- <header>
216
- <h3>Public Class Methods</h3>
217
- </header>
218
-
219
-
220
- <div id="method-c-new" class="method-detail ">
221
-
222
- <div class="method-heading">
223
- <span class="method-name">new</span><span
224
- class="method-args">(rd)</span>
225
-
226
- <span class="method-click-advice">click to toggle source</span>
227
-
228
- </div>
229
-
230
-
231
- <div class="method-description">
232
-
233
-
234
-
235
-
236
-
237
-
238
- <div class="method-source-code" id="new-source">
239
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 18</span>
240
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">rd</span>)
241
- <span class="ruby-ivar">@rd</span> = <span class="ruby-identifier">rd</span>
242
- <span class="ruby-ivar">@rn</span> = <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">rn</span>
243
- <span class="ruby-ivar">@div_bits</span>=<span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">div_bits</span>
244
- <span class="ruby-ivar">@hbits</span> = <span class="ruby-value">2</span><span class="ruby-operator">**</span><span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">dgst_bits</span>
245
- <span class="ruby-ivar">@search_mask</span> = <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">search_mask</span>
246
- <span class="ruby-ivar">@fail_cnt</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
247
- <span class="ruby-ivar">@mklhash</span> = <span class="ruby-keyword">nil</span>
248
- <span class="ruby-keyword">end</span></pre>
249
- </div>
250
-
251
- </div>
252
-
253
-
254
-
255
-
256
- </div>
257
-
258
-
259
- </section>
260
-
261
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
262
- <header>
263
- <h3>Public Instance Methods</h3>
264
- </header>
265
-
266
-
267
- <div id="method-i-get_vnode_id" class="method-detail ">
268
-
269
- <div class="method-heading">
270
- <span class="method-name">get_vnode_id</span><span
271
- class="method-args">(d)</span>
272
-
273
- <span class="method-click-advice">click to toggle source</span>
274
-
275
- </div>
276
-
277
-
278
- <div class="method-description">
279
-
280
- <p>Returns a vnode-id from digest.</p>
281
-
282
-
283
-
284
-
285
- <div class="method-source-code" id="get_vnode_id-source">
286
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 37</span>
287
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_vnode_id</span>(<span class="ruby-identifier">d</span>)
288
- <span class="ruby-identifier">d</span> <span class="ruby-operator">&amp;</span> <span class="ruby-ivar">@search_mask</span>
289
- <span class="ruby-keyword">end</span></pre>
290
- </div>
291
-
292
- </div>
293
-
294
-
295
-
296
-
297
- </div>
298
-
299
-
300
- <div id="method-i-nodes" class="method-detail ">
301
-
302
- <div class="method-heading">
303
- <span class="method-name">nodes</span><span
304
- class="method-args">()</span>
305
-
306
- <span class="method-click-advice">click to toggle source</span>
307
-
308
- </div>
309
-
310
-
311
- <div class="method-description">
312
-
313
-
314
-
315
-
316
-
317
-
318
- <div class="method-source-code" id="nodes-source">
319
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 28</span>
320
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">nodes</span>
321
- <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">clone</span>
322
- <span class="ruby-keyword">end</span></pre>
323
- </div>
324
-
325
- </div>
326
-
327
-
328
-
329
-
330
- </div>
331
-
332
-
333
- <div id="method-i-proc_failed" class="method-detail ">
334
-
335
- <div class="method-heading">
336
- <span class="method-name">proc_failed</span><span
337
- class="method-args">(nid)</span>
338
-
339
- <span class="method-click-advice">click to toggle source</span>
340
-
341
- </div>
342
-
343
-
344
- <div class="method-description">
345
-
346
-
347
-
348
-
349
-
350
-
351
- <div class="method-source-code" id="proc_failed-source">
352
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 69</span>
353
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">proc_failed</span>(<span class="ruby-identifier">nid</span>)
354
- <span class="ruby-ivar">@fail_cnt</span>[<span class="ruby-identifier">nid</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
355
- <span class="ruby-ivar">@mklhash</span> = <span class="ruby-value">0</span>
356
- <span class="ruby-keyword">end</span></pre>
357
- </div>
358
-
359
- </div>
360
-
361
-
362
-
363
-
364
- </div>
365
-
366
-
367
- <div id="method-i-search_node" class="method-detail ">
368
-
369
- <div class="method-heading">
370
- <span class="method-name">search_node</span><span
371
- class="method-args">(key)</span>
372
-
373
- <span class="method-click-advice">click to toggle source</span>
374
-
375
- </div>
376
-
377
-
378
- <div class="method-description">
379
-
380
-
381
-
382
-
383
-
384
-
385
- <div class="method-source-code" id="search_node-source">
386
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 49</span>
387
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">search_node</span>(<span class="ruby-identifier">key</span>)
388
- <span class="ruby-identifier">d</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">SHA1</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-identifier">key</span>).<span class="ruby-identifier">hex</span> <span class="ruby-operator">%</span> <span class="ruby-ivar">@hbits</span>
389
- <span class="ruby-identifier">nodes</span> = <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">v_idx</span>[<span class="ruby-identifier">d</span> <span class="ruby-operator">&amp;</span> <span class="ruby-ivar">@search_mask</span>]
390
- <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
391
- <span class="ruby-keyword">return</span> [<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>], <span class="ruby-identifier">d</span>] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@fail_cnt</span>[<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>]] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
392
- }
393
- <span class="ruby-comment"># for expecting an auto assign process</span>
394
- <span class="ruby-identifier">svn</span> = <span class="ruby-identifier">vn</span> = <span class="ruby-identifier">d</span> <span class="ruby-operator">&amp;</span> <span class="ruby-ivar">@search_mask</span>
395
- <span class="ruby-keyword">while</span>( (<span class="ruby-identifier">vn</span> = <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">next_vnode</span>(<span class="ruby-identifier">vn</span>)) <span class="ruby-operator">!=</span> <span class="ruby-identifier">svn</span> )
396
- <span class="ruby-identifier">nodes</span> = <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">v_idx</span>[<span class="ruby-identifier">vn</span>]
397
- <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
398
- <span class="ruby-keyword">return</span> [<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>], <span class="ruby-identifier">d</span>] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@fail_cnt</span>[<span class="ruby-identifier">nodes</span>[<span class="ruby-identifier">i</span>]] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
399
- }
400
- <span class="ruby-keyword">end</span>
401
- <span class="ruby-keyword">nil</span>
402
- <span class="ruby-keyword">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
403
- <span class="ruby-identifier">p</span> <span class="ruby-identifier">e</span>
404
- <span class="ruby-keyword">nil</span>
405
- <span class="ruby-keyword">end</span></pre>
406
- </div>
407
-
408
- </div>
409
-
410
-
411
-
412
-
413
- </div>
414
-
415
-
416
- <div id="method-i-search_nodes" class="method-detail ">
417
-
418
- <div class="method-heading">
419
- <span class="method-name">search_nodes</span><span
420
- class="method-args">(vn)</span>
421
-
422
- <span class="method-click-advice">click to toggle source</span>
423
-
424
- </div>
425
-
426
-
427
- <div class="method-description">
428
-
429
- <p>Returns a node-is list at the vnode. <code>vn</code>: vnode-id</p>
430
-
431
-
432
-
433
-
434
- <div class="method-source-code" id="search_nodes-source">
435
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 43</span>
436
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">search_nodes</span>(<span class="ruby-identifier">vn</span>)
437
- <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">v_idx</span>[<span class="ruby-identifier">vn</span>].<span class="ruby-identifier">clone</span>
438
- <span class="ruby-keyword">rescue</span>
439
- <span class="ruby-keyword">nil</span>
440
- <span class="ruby-keyword">end</span></pre>
441
- </div>
442
-
443
- </div>
444
-
445
-
446
-
447
-
448
- </div>
449
-
450
-
451
- <div id="method-i-vnodes" class="method-detail ">
452
-
453
- <div class="method-heading">
454
- <span class="method-name">vnodes</span><span
455
- class="method-args">()</span>
456
-
457
- <span class="method-click-advice">click to toggle source</span>
458
-
459
- </div>
460
-
461
-
462
- <div class="method-description">
463
-
464
-
465
-
466
-
467
-
468
-
469
- <div class="method-source-code" id="vnodes-source">
470
- <pre><span class="ruby-comment"># File lib/roma/client/client_rttable.rb, line 32</span>
471
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">vnodes</span>
472
- <span class="ruby-ivar">@rd</span>.<span class="ruby-identifier">v_idx</span>.<span class="ruby-identifier">keys</span>
473
- <span class="ruby-keyword">end</span></pre>
474
- </div>
475
-
476
- </div>
477
-
478
-
479
-
480
-
481
- </div>
482
-
483
-
484
- </section>
485
-
486
- </section>
487
- </main>
488
-
489
-
490
- <footer id="validator-badges" role="contentinfo">
491
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
492
- <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
493
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
494
- </footer>
495
-