starfish 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/README +33 -2
  2. data/doc/classes/MapReduce.src/M000001.html +1 -1
  3. data/doc/classes/MapReduce.src/M000002.html +1 -1
  4. data/doc/classes/MapReduce.src/M000003.html +1 -1
  5. data/doc/classes/MapReduce.src/M000004.html +1 -1
  6. data/doc/classes/MapReduce.src/M000005.html +1 -1
  7. data/doc/classes/MapReduce.src/M000006.html +1 -1
  8. data/doc/classes/MapReduce.src/M000007.html +1 -1
  9. data/doc/classes/MapReduce.src/M000008.html +1 -1
  10. data/doc/classes/MapReduce.src/M000009.html +1 -1
  11. data/doc/classes/MapReduce.src/M000010.html +1 -1
  12. data/doc/classes/MapReduce.src/M000011.html +1 -1
  13. data/doc/classes/MapReduce.src/M000012.html +1 -1
  14. data/doc/classes/MapReduce.src/M000013.html +1 -1
  15. data/doc/classes/MapReduce.src/M000014.html +1 -1
  16. data/doc/classes/MapReduce/ActiveRecord/Base.src/M000015.html +6 -14
  17. data/doc/classes/MapReduce/File.html +70 -0
  18. data/doc/classes/MapReduce/File.src/M000019.html +42 -0
  19. data/doc/classes/MapReduce/File/Client.html +177 -0
  20. data/doc/classes/MapReduce/File/Client.src/M000020.html +18 -0
  21. data/doc/classes/MapReduce/File/Client.src/M000021.html +20 -0
  22. data/doc/classes/MapReduce/File/Client.src/M000022.html +18 -0
  23. data/doc/classes/Starfish.html +61 -62
  24. data/doc/classes/Starfish.src/M000023.html +5 -9
  25. data/doc/classes/Starfish.src/M000024.html +4 -22
  26. data/doc/classes/Starfish.src/M000025.html +29 -19
  27. data/doc/classes/Starfish.src/M000026.html +64 -4
  28. data/doc/classes/Starfish.src/M000027.html +9 -8
  29. data/doc/classes/Starfish.src/M000028.html +23 -5
  30. data/doc/classes/Starfish.src/M000029.html +22 -5
  31. data/doc/classes/Starfish.src/M000030.html +5 -5
  32. data/doc/classes/Starfish.src/M000031.html +22 -0
  33. data/doc/classes/Starfish.src/{M000020.html → M000032.html} +5 -5
  34. data/doc/classes/Starfish.src/M000033.html +18 -0
  35. data/doc/classes/Starfish.src/M000034.html +18 -0
  36. data/doc/classes/Starfish/RingFinger.html +6 -6
  37. data/doc/classes/Starfish/RingFinger.src/{M000031.html → M000035.html} +1 -1
  38. data/doc/created.rid +1 -1
  39. data/doc/files/README.html +52 -6
  40. data/doc/files/lib/map_reduce/active_record_rb.html +1 -2
  41. data/doc/files/lib/map_reduce/file_rb.html +1 -1
  42. data/doc/files/lib/map_reduce_rb.html +1 -1
  43. data/doc/files/lib/starfish_rb.html +1 -1
  44. data/doc/fr_class_index.html +1 -0
  45. data/doc/fr_method_index.html +17 -13
  46. data/examples/map_reduce/file.rb +2 -3
  47. data/lib/map_reduce.rb +2 -1
  48. data/lib/map_reduce/active_record.rb +25 -19
  49. data/lib/map_reduce/file.rb +93 -0
  50. data/lib/starfish.rb +9 -2
  51. metadata +15 -7
  52. data/doc/classes/Starfish.src/M000019.html +0 -19
  53. data/doc/classes/Starfish.src/M000021.html +0 -45
  54. data/doc/classes/Starfish.src/M000022.html +0 -71
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>new (MapReduce::File::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/map_reduce/file.rb, line 10</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server_object</span>)
15
+ <span class="ruby-ivar">@server_object</span> = <span class="ruby-identifier">server_object</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>each (MapReduce::File::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/map_reduce/file.rb, line 14</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
15
+ <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">limit</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span>
16
+ <span class="ruby-keyword kw">yield</span> <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">get_lines</span>
17
+ <span class="ruby-keyword kw">end</span>
18
+ <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>logger (MapReduce::File::Client)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/map_reduce/file.rb, line 20</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logger</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
+ <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">logger</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -86,18 +86,18 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000022">client</a>&nbsp;&nbsp;
90
- <a href="#M000029">client=</a>&nbsp;&nbsp;
91
- <a href="#M000025">negotiate</a>&nbsp;&nbsp;
92
- <a href="#M000019">new</a>&nbsp;&nbsp;
93
- <a href="#M000030">options=</a>&nbsp;&nbsp;
94
- <a href="#M000024">sanitize</a>&nbsp;&nbsp;
95
- <a href="#M000021">server</a>&nbsp;&nbsp;
96
- <a href="#M000028">server=</a>&nbsp;&nbsp;
97
- <a href="#M000026">spawn</a>&nbsp;&nbsp;
98
- <a href="#M000023">stats</a>&nbsp;&nbsp;
99
- <a href="#M000027">stop</a>&nbsp;&nbsp;
100
- <a href="#M000020">uniq</a>&nbsp;&nbsp;
89
+ <a href="#M000026">client</a>&nbsp;&nbsp;
90
+ <a href="#M000033">client=</a>&nbsp;&nbsp;
91
+ <a href="#M000029">negotiate</a>&nbsp;&nbsp;
92
+ <a href="#M000023">new</a>&nbsp;&nbsp;
93
+ <a href="#M000034">options=</a>&nbsp;&nbsp;
94
+ <a href="#M000028">sanitize</a>&nbsp;&nbsp;
95
+ <a href="#M000025">server</a>&nbsp;&nbsp;
96
+ <a href="#M000032">server=</a>&nbsp;&nbsp;
97
+ <a href="#M000030">spawn</a>&nbsp;&nbsp;
98
+ <a href="#M000027">stats</a>&nbsp;&nbsp;
99
+ <a href="#M000031">stop</a>&nbsp;&nbsp;
100
+ <a href="#M000024">uniq</a>&nbsp;&nbsp;
101
101
  </div>
102
102
  </div>
103
103
 
@@ -110,7 +110,6 @@
110
110
 
111
111
  <div id="includes-list">
112
112
  <span class="include-name">Rinda</span>
113
- <span class="include-name">DRbUndumped</span>
114
113
  </div>
115
114
  </div>
116
115
 
@@ -131,7 +130,7 @@
131
130
  <tr class="top-aligned-row context-row">
132
131
  <td class="context-item-name">VERSION</td>
133
132
  <td>=</td>
134
- <td class="context-item-value">&quot;1.0.0&quot;</td>
133
+ <td class="context-item-value">&quot;1.1.0&quot;</td>
135
134
  </tr>
136
135
  </table>
137
136
  </div>
@@ -169,12 +168,12 @@
169
168
  <div id="methods">
170
169
  <h3 class="section-bar">Public Class methods</h3>
171
170
 
172
- <div id="method-M000029" class="method-detail">
173
- <a name="M000029"></a>
171
+ <div id="method-M000033" class="method-detail">
172
+ <a name="M000033"></a>
174
173
 
175
174
  <div class="method-heading">
176
- <a href="Starfish.src/M000029.html" target="Code" class="method-signature"
177
- onclick="popupCode('Starfish.src/M000029.html');return false;">
175
+ <a href="Starfish.src/M000033.html" target="Code" class="method-signature"
176
+ onclick="popupCode('Starfish.src/M000033.html');return false;">
178
177
  <span class="method-name">client=</span><span class="method-args">(client)</span>
179
178
  </a>
180
179
  </div>
@@ -183,12 +182,12 @@
183
182
  </div>
184
183
  </div>
185
184
 
186
- <div id="method-M000019" class="method-detail">
187
- <a name="M000019"></a>
185
+ <div id="method-M000023" class="method-detail">
186
+ <a name="M000023"></a>
188
187
 
189
188
  <div class="method-heading">
190
- <a href="Starfish.src/M000019.html" target="Code" class="method-signature"
191
- onclick="popupCode('Starfish.src/M000019.html');return false;">
189
+ <a href="Starfish.src/M000023.html" target="Code" class="method-signature"
190
+ onclick="popupCode('Starfish.src/M000023.html');return false;">
192
191
  <span class="method-name">new</span><span class="method-args">(uniq=ARGV.first)</span>
193
192
  </a>
194
193
  </div>
@@ -200,12 +199,12 @@ set the uniq identifier
200
199
  </div>
201
200
  </div>
202
201
 
203
- <div id="method-M000030" class="method-detail">
204
- <a name="M000030"></a>
202
+ <div id="method-M000034" class="method-detail">
203
+ <a name="M000034"></a>
205
204
 
206
205
  <div class="method-heading">
207
- <a href="Starfish.src/M000030.html" target="Code" class="method-signature"
208
- onclick="popupCode('Starfish.src/M000030.html');return false;">
206
+ <a href="Starfish.src/M000034.html" target="Code" class="method-signature"
207
+ onclick="popupCode('Starfish.src/M000034.html');return false;">
209
208
  <span class="method-name">options=</span><span class="method-args">(options={})</span>
210
209
  </a>
211
210
  </div>
@@ -214,12 +213,12 @@ set the uniq identifier
214
213
  </div>
215
214
  </div>
216
215
 
217
- <div id="method-M000028" class="method-detail">
218
- <a name="M000028"></a>
216
+ <div id="method-M000032" class="method-detail">
217
+ <a name="M000032"></a>
219
218
 
220
219
  <div class="method-heading">
221
- <a href="Starfish.src/M000028.html" target="Code" class="method-signature"
222
- onclick="popupCode('Starfish.src/M000028.html');return false;">
220
+ <a href="Starfish.src/M000032.html" target="Code" class="method-signature"
221
+ onclick="popupCode('Starfish.src/M000032.html');return false;">
223
222
  <span class="method-name">server=</span><span class="method-args">(server)</span>
224
223
  </a>
225
224
  </div>
@@ -230,12 +229,12 @@ set the uniq identifier
230
229
 
231
230
  <h3 class="section-bar">Public Instance methods</h3>
232
231
 
233
- <div id="method-M000022" class="method-detail">
234
- <a name="M000022"></a>
232
+ <div id="method-M000026" class="method-detail">
233
+ <a name="M000026"></a>
235
234
 
236
235
  <div class="method-heading">
237
- <a href="Starfish.src/M000022.html" target="Code" class="method-signature"
238
- onclick="popupCode('Starfish.src/M000022.html');return false;">
236
+ <a href="Starfish.src/M000026.html" target="Code" class="method-signature"
237
+ onclick="popupCode('Starfish.src/M000026.html');return false;">
239
238
  <span class="method-name">client</span><span class="method-args">()</span>
240
239
  </a>
241
240
  </div>
@@ -244,12 +243,12 @@ set the uniq identifier
244
243
  </div>
245
244
  </div>
246
245
 
247
- <div id="method-M000025" class="method-detail">
248
- <a name="M000025"></a>
246
+ <div id="method-M000029" class="method-detail">
247
+ <a name="M000029"></a>
249
248
 
250
249
  <div class="method-heading">
251
- <a href="Starfish.src/M000025.html" target="Code" class="method-signature"
252
- onclick="popupCode('Starfish.src/M000025.html');return false;">
250
+ <a href="Starfish.src/M000029.html" target="Code" class="method-signature"
251
+ onclick="popupCode('Starfish.src/M000029.html');return false;">
253
252
  <span class="method-name">negotiate</span><span class="method-args">()</span>
254
253
  </a>
255
254
  </div>
@@ -258,12 +257,12 @@ set the uniq identifier
258
257
  </div>
259
258
  </div>
260
259
 
261
- <div id="method-M000024" class="method-detail">
262
- <a name="M000024"></a>
260
+ <div id="method-M000028" class="method-detail">
261
+ <a name="M000028"></a>
263
262
 
264
263
  <div class="method-heading">
265
- <a href="Starfish.src/M000024.html" target="Code" class="method-signature"
266
- onclick="popupCode('Starfish.src/M000024.html');return false;">
264
+ <a href="Starfish.src/M000028.html" target="Code" class="method-signature"
265
+ onclick="popupCode('Starfish.src/M000028.html');return false;">
267
266
  <span class="method-name">sanitize</span><span class="method-args">(object)</span>
268
267
  </a>
269
268
  </div>
@@ -272,12 +271,12 @@ set the uniq identifier
272
271
  </div>
273
272
  </div>
274
273
 
275
- <div id="method-M000021" class="method-detail">
276
- <a name="M000021"></a>
274
+ <div id="method-M000025" class="method-detail">
275
+ <a name="M000025"></a>
277
276
 
278
277
  <div class="method-heading">
279
- <a href="Starfish.src/M000021.html" target="Code" class="method-signature"
280
- onclick="popupCode('Starfish.src/M000021.html');return false;">
278
+ <a href="Starfish.src/M000025.html" target="Code" class="method-signature"
279
+ onclick="popupCode('Starfish.src/M000025.html');return false;">
281
280
  <span class="method-name">server</span><span class="method-args">()</span>
282
281
  </a>
283
282
  </div>
@@ -286,12 +285,12 @@ set the uniq identifier
286
285
  </div>
287
286
  </div>
288
287
 
289
- <div id="method-M000026" class="method-detail">
290
- <a name="M000026"></a>
288
+ <div id="method-M000030" class="method-detail">
289
+ <a name="M000030"></a>
291
290
 
292
291
  <div class="method-heading">
293
- <a href="Starfish.src/M000026.html" target="Code" class="method-signature"
294
- onclick="popupCode('Starfish.src/M000026.html');return false;">
292
+ <a href="Starfish.src/M000030.html" target="Code" class="method-signature"
293
+ onclick="popupCode('Starfish.src/M000030.html');return false;">
295
294
  <span class="method-name">spawn</span><span class="method-args">()</span>
296
295
  </a>
297
296
  </div>
@@ -300,12 +299,12 @@ set the uniq identifier
300
299
  </div>
301
300
  </div>
302
301
 
303
- <div id="method-M000023" class="method-detail">
304
- <a name="M000023"></a>
302
+ <div id="method-M000027" class="method-detail">
303
+ <a name="M000027"></a>
305
304
 
306
305
  <div class="method-heading">
307
- <a href="Starfish.src/M000023.html" target="Code" class="method-signature"
308
- onclick="popupCode('Starfish.src/M000023.html');return false;">
306
+ <a href="Starfish.src/M000027.html" target="Code" class="method-signature"
307
+ onclick="popupCode('Starfish.src/M000027.html');return false;">
309
308
  <span class="method-name">stats</span><span class="method-args">()</span>
310
309
  </a>
311
310
  </div>
@@ -314,12 +313,12 @@ set the uniq identifier
314
313
  </div>
315
314
  </div>
316
315
 
317
- <div id="method-M000027" class="method-detail">
318
- <a name="M000027"></a>
316
+ <div id="method-M000031" class="method-detail">
317
+ <a name="M000031"></a>
319
318
 
320
319
  <div class="method-heading">
321
- <a href="Starfish.src/M000027.html" target="Code" class="method-signature"
322
- onclick="popupCode('Starfish.src/M000027.html');return false;">
320
+ <a href="Starfish.src/M000031.html" target="Code" class="method-signature"
321
+ onclick="popupCode('Starfish.src/M000031.html');return false;">
323
322
  <span class="method-name">stop</span><span class="method-args">()</span>
324
323
  </a>
325
324
  </div>
@@ -328,12 +327,12 @@ set the uniq identifier
328
327
  </div>
329
328
  </div>
330
329
 
331
- <div id="method-M000020" class="method-detail">
332
- <a name="M000020"></a>
330
+ <div id="method-M000024" class="method-detail">
331
+ <a name="M000024"></a>
333
332
 
334
333
  <div class="method-heading">
335
- <a href="Starfish.src/M000020.html" target="Code" class="method-signature"
336
- onclick="popupCode('Starfish.src/M000020.html');return false;">
334
+ <a href="Starfish.src/M000024.html" target="Code" class="method-signature"
335
+ onclick="popupCode('Starfish.src/M000024.html');return false;">
337
336
  <span class="method-name">uniq</span><span class="method-args">()</span>
338
337
  </a>
339
338
  </div>
@@ -5,19 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>stats (Starfish)</title>
8
+ <title>new (Starfish)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 123</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
15
- <span class="ruby-identifier">negotiate</span>
16
- <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-identifier">timeout</span>(<span class="ruby-value">5</span>) { <span class="ruby-ivar">@server_object</span> = <span class="ruby-ivar">@ring_server</span>.<span class="ruby-identifier">read</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>])[<span class="ruby-value">2</span>] }
17
-
18
- <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">stats</span>.<span class="ruby-identifier">to_yaml</span>
19
- <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NoMethodError</span>
20
- <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;The stats method is not defined for your server&quot;</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 26</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">uniq</span>=<span class="ruby-constant">ARGV</span>.<span class="ruby-identifier">first</span>)
15
+ <span class="ruby-ivar">@retry_count</span> = <span class="ruby-value">0</span>
16
+ <span class="ruby-ivar">@uniq</span> = <span class="ruby-identifier">uniq</span>
21
17
  <span class="ruby-keyword kw">end</span></pre>
22
18
  </body>
23
19
  </html>
@@ -5,32 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>sanitize (Starfish)</title>
8
+ <title>uniq (Starfish)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 132</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sanitize</span>(<span class="ruby-identifier">object</span>)
15
- <span class="ruby-identifier">object</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">instance_eval</span> { <span class="ruby-identifier">include</span> <span class="ruby-constant">DRbUndumped</span> }
16
-
17
- <span class="ruby-ivar">@@log</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>]
18
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
19
- <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>])
20
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Class</span>
21
- <span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>].<span class="ruby-identifier">new</span>
22
- <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">false</span>
23
- <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;/dev/null&quot;</span>)
24
- <span class="ruby-keyword kw">else</span>
25
- <span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:log</span>]
26
- <span class="ruby-keyword kw">end</span>
27
-
28
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">logger</span>
29
- <span class="ruby-ivar">@logger</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@@log</span>
30
- <span class="ruby-keyword kw">end</span>
31
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">_logger</span>
32
- <span class="ruby-ivar">@logger</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@@log</span>
33
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 31</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uniq</span>
15
+ <span class="ruby-constant">MD5</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@uniq</span>).<span class="ruby-identifier">to_s</span>
34
16
  <span class="ruby-keyword kw">end</span></pre>
35
17
  </body>
36
18
  </html>
@@ -5,31 +5,41 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>negotiate (Starfish)</title>
8
+ <title>server (Starfish)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 154</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">negotiate</span><span class="ruby-identifier">negotiate</span><span class="ruby-identifier">negotiate</span>
15
- <span class="ruby-keyword kw">begin</span>
16
- <span class="ruby-ivar">@ring_server</span> = <span class="ruby-constant">RingFinger</span>.<span class="ruby-identifier">primary</span>
17
- <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">RuntimeError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">m</span>
18
- <span class="ruby-comment cmt"># allow multiple un-cached calls to RingFinger.finger</span>
19
- <span class="ruby-keyword kw">def</span> <span class="ruby-constant">RingFinger</span>.<span class="ruby-identifier">finger</span>
20
- <span class="ruby-ivar">@@finger</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>
21
- <span class="ruby-ivar">@@finger</span>.<span class="ruby-identifier">lookup_ring_any</span>
22
- <span class="ruby-ivar">@@finger</span>
23
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 35</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server</span>
15
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@server</span>
16
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;You must specify a server&quot;</span>
17
+ <span class="ruby-identifier">exit</span>
18
+ <span class="ruby-keyword kw">end</span>
24
19
 
25
- <span class="ruby-identifier">spawn</span>
26
- <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
27
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">5</span>
28
- <span class="ruby-keyword kw">retry</span>
29
- <span class="ruby-keyword kw">else</span>
30
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-identifier">m</span>
31
- <span class="ruby-keyword kw">end</span>
20
+ <span class="ruby-identifier">map_reduce</span> = <span class="ruby-constant">MapReduce</span>.<span class="ruby-identifier">new</span>
21
+ <span class="ruby-identifier">object</span> = <span class="ruby-ivar">@@server</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">map_reduce</span>)
22
+
23
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">map_reduce</span>.<span class="ruby-identifier">valid?</span>
24
+ <span class="ruby-identifier">object</span> = <span class="ruby-identifier">map_reduce</span>
25
+ <span class="ruby-keyword kw">end</span>
26
+
27
+ <span class="ruby-identifier">sanitize</span> <span class="ruby-identifier">object</span>
28
+
29
+ <span class="ruby-identifier">ts</span> = <span class="ruby-constant">Rinda</span><span class="ruby-operator">::</span><span class="ruby-constant">TupleSpace</span>.<span class="ruby-identifier">new</span>
30
+ <span class="ruby-keyword kw">begin</span>
31
+ <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">write</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-identifier">object</span>, <span class="ruby-ivar">@uniq</span>])
32
+ <span class="ruby-identifier">ring_server</span> = <span class="ruby-constant">Rinda</span><span class="ruby-operator">::</span><span class="ruby-constant">RingServer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ts</span>)
33
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EADDRINUSE</span>
34
+ <span class="ruby-identifier">ts</span> = <span class="ruby-constant">RingFinger</span>.<span class="ruby-identifier">primary</span>
35
+ <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">write</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-identifier">object</span>, <span class="ruby-ivar">@uniq</span>])
32
36
  <span class="ruby-keyword kw">end</span>
37
+
38
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@@options</span>[<span class="ruby-identifier">:pid</span>] <span class="ruby-operator">||</span> <span class="ruby-node">&quot;/tmp/starfish-#{uniq}.pid&quot;</span>,<span class="ruby-value str">&quot;w&quot;</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-constant">Process</span>.<span class="ruby-identifier">pid</span>}
39
+
40
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;server started for #{object.inspect}&quot;</span>
41
+
42
+ <span class="ruby-constant">DRb</span>.<span class="ruby-identifier">thread</span>.<span class="ruby-identifier">join</span>
33
43
  <span class="ruby-keyword kw">end</span></pre>
34
44
  </body>
35
45
  </html>
@@ -5,14 +5,74 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>spawn (Starfish)</title>
8
+ <title>client (Starfish)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 175</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">spawn</span>
15
- <span class="ruby-ivar">@started</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">fork</span> { <span class="ruby-identifier">system</span>(<span class="ruby-node">&quot;ruby #{File.dirname(__FILE__)}/../bin/starfish #{@uniq} server &gt; /dev/null&quot;</span>) }
13
+ <pre><span class="ruby-comment cmt"># File lib/starfish.rb, line 66</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client</span>
15
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@client</span>
16
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;You must specify a client&quot;</span>
17
+ <span class="ruby-identifier">exit</span>
18
+ <span class="ruby-keyword kw">end</span>
19
+
20
+ <span class="ruby-identifier">negotiate</span>
21
+ <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-identifier">timeout</span>(<span class="ruby-value">5</span>) { <span class="ruby-ivar">@server_object</span> = <span class="ruby-ivar">@ring_server</span>.<span class="ruby-identifier">read</span>([<span class="ruby-identifier">:name</span>, <span class="ruby-identifier">uniq</span>.<span class="ruby-identifier">intern</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">nil</span>])[<span class="ruby-value">2</span>] }
22
+
23
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
24
+ <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
25
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
26
+ <span class="ruby-constant">GC</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span><span class="ruby-operator">%</span><span class="ruby-value">1000</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
27
+
28
+ <span class="ruby-keyword kw">begin</span>
29
+ <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">map_reduce?</span>
30
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NoMethodError</span>
31
+ <span class="ruby-ivar">@called</span> = <span class="ruby-ivar">@@client</span>.<span class="ruby-identifier">call</span>(<span class="ruby-ivar">@server_object</span>)
32
+ <span class="ruby-keyword kw">end</span>
33
+
34
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@called</span>
35
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">map_reduce?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">valid?</span>
36
+ <span class="ruby-identifier">map_reduce_client</span> = <span class="ruby-identifier">eval</span>(<span class="ruby-node">&quot;MapReduce::#{@server_object.base_type_to_s}::Client&quot;</span>).<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@server_object</span>)
37
+
38
+ <span class="ruby-identifier">$server_object</span> = <span class="ruby-ivar">@server_object</span>
39
+ <span class="ruby-constant">Object</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-keyword kw">do</span>
40
+ <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">:logger</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
41
+ <span class="ruby-identifier">$server_object</span>.<span class="ruby-identifier">_logger</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
42
+ <span class="ruby-keyword kw">end</span>
43
+ <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">:server</span>) <span class="ruby-keyword kw">do</span>
44
+ <span class="ruby-identifier">$server_object</span>
45
+ <span class="ruby-keyword kw">end</span>
46
+ <span class="ruby-keyword kw">end</span>
47
+
48
+ <span class="ruby-identifier">map_reduce_client</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">object</span><span class="ruby-operator">|</span>
49
+ <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
50
+ <span class="ruby-ivar">@@client</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">object</span>)
51
+ <span class="ruby-ivar">@server_object</span>.<span class="ruby-identifier">add_time_spent_processing_objects</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span><span class="ruby-operator">-</span><span class="ruby-identifier">t</span>)
52
+ <span class="ruby-keyword kw">end</span>
53
+ <span class="ruby-keyword kw">else</span>
54
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">MapReduceError</span>, <span class="ruby-value str">&quot;invalid map reduce server (possibly missing type or input)&quot;</span>
55
+ <span class="ruby-keyword kw">end</span>
56
+ <span class="ruby-keyword kw">end</span>
57
+ <span class="ruby-keyword kw">end</span>
58
+
59
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">m</span>
60
+ <span class="ruby-identifier">spawn</span>
61
+ <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
62
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">5</span>
63
+ <span class="ruby-keyword kw">retry</span>
64
+ <span class="ruby-keyword kw">else</span>
65
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>, <span class="ruby-identifier">m</span>
66
+ <span class="ruby-keyword kw">end</span>
67
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">DRb</span><span class="ruby-operator">::</span><span class="ruby-constant">DRbConnError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">m</span>
68
+ <span class="ruby-identifier">stop</span>
69
+ <span class="ruby-identifier">negotiate</span>
70
+ <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
71
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@retry_count</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">5</span>
72
+ <span class="ruby-keyword kw">retry</span>
73
+ <span class="ruby-keyword kw">else</span>
74
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">DRb</span><span class="ruby-operator">::</span><span class="ruby-constant">DRbConnError</span>, <span class="ruby-identifier">m</span>
75
+ <span class="ruby-keyword kw">end</span>
16
76
  <span class="ruby-keyword kw">end</span></pre>
17
77
  </body>
18
78
  </html>