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.
- data/README +33 -2
- data/doc/classes/MapReduce.src/M000001.html +1 -1
- data/doc/classes/MapReduce.src/M000002.html +1 -1
- data/doc/classes/MapReduce.src/M000003.html +1 -1
- data/doc/classes/MapReduce.src/M000004.html +1 -1
- data/doc/classes/MapReduce.src/M000005.html +1 -1
- data/doc/classes/MapReduce.src/M000006.html +1 -1
- data/doc/classes/MapReduce.src/M000007.html +1 -1
- data/doc/classes/MapReduce.src/M000008.html +1 -1
- data/doc/classes/MapReduce.src/M000009.html +1 -1
- data/doc/classes/MapReduce.src/M000010.html +1 -1
- data/doc/classes/MapReduce.src/M000011.html +1 -1
- data/doc/classes/MapReduce.src/M000012.html +1 -1
- data/doc/classes/MapReduce.src/M000013.html +1 -1
- data/doc/classes/MapReduce.src/M000014.html +1 -1
- data/doc/classes/MapReduce/ActiveRecord/Base.src/M000015.html +6 -14
- data/doc/classes/MapReduce/File.html +70 -0
- data/doc/classes/MapReduce/File.src/M000019.html +42 -0
- data/doc/classes/MapReduce/File/Client.html +177 -0
- data/doc/classes/MapReduce/File/Client.src/M000020.html +18 -0
- data/doc/classes/MapReduce/File/Client.src/M000021.html +20 -0
- data/doc/classes/MapReduce/File/Client.src/M000022.html +18 -0
- data/doc/classes/Starfish.html +61 -62
- data/doc/classes/Starfish.src/M000023.html +5 -9
- data/doc/classes/Starfish.src/M000024.html +4 -22
- data/doc/classes/Starfish.src/M000025.html +29 -19
- data/doc/classes/Starfish.src/M000026.html +64 -4
- data/doc/classes/Starfish.src/M000027.html +9 -8
- data/doc/classes/Starfish.src/M000028.html +23 -5
- data/doc/classes/Starfish.src/M000029.html +22 -5
- data/doc/classes/Starfish.src/M000030.html +5 -5
- data/doc/classes/Starfish.src/M000031.html +22 -0
- data/doc/classes/Starfish.src/{M000020.html → M000032.html} +5 -5
- data/doc/classes/Starfish.src/M000033.html +18 -0
- data/doc/classes/Starfish.src/M000034.html +18 -0
- data/doc/classes/Starfish/RingFinger.html +6 -6
- data/doc/classes/Starfish/RingFinger.src/{M000031.html → M000035.html} +1 -1
- data/doc/created.rid +1 -1
- data/doc/files/README.html +52 -6
- data/doc/files/lib/map_reduce/active_record_rb.html +1 -2
- data/doc/files/lib/map_reduce/file_rb.html +1 -1
- data/doc/files/lib/map_reduce_rb.html +1 -1
- data/doc/files/lib/starfish_rb.html +1 -1
- data/doc/fr_class_index.html +1 -0
- data/doc/fr_method_index.html +17 -13
- data/examples/map_reduce/file.rb +2 -3
- data/lib/map_reduce.rb +2 -1
- data/lib/map_reduce/active_record.rb +25 -19
- data/lib/map_reduce/file.rb +93 -0
- data/lib/starfish.rb +9 -2
- metadata +15 -7
- data/doc/classes/Starfish.src/M000019.html +0 -19
- data/doc/classes/Starfish.src/M000021.html +0 -45
- 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>
|
data/doc/classes/Starfish.html
CHANGED
@@ -86,18 +86,18 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
91
|
-
<a href="#
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
95
|
-
<a href="#
|
96
|
-
<a href="#
|
97
|
-
<a href="#
|
98
|
-
<a href="#
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
89
|
+
<a href="#M000026">client</a>
|
90
|
+
<a href="#M000033">client=</a>
|
91
|
+
<a href="#M000029">negotiate</a>
|
92
|
+
<a href="#M000023">new</a>
|
93
|
+
<a href="#M000034">options=</a>
|
94
|
+
<a href="#M000028">sanitize</a>
|
95
|
+
<a href="#M000025">server</a>
|
96
|
+
<a href="#M000032">server=</a>
|
97
|
+
<a href="#M000030">spawn</a>
|
98
|
+
<a href="#M000027">stats</a>
|
99
|
+
<a href="#M000031">stop</a>
|
100
|
+
<a href="#M000024">uniq</a>
|
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">"1.
|
133
|
+
<td class="context-item-value">"1.1.0"</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-
|
173
|
-
<a name="
|
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/
|
177
|
-
onclick="popupCode('Starfish.src/
|
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-
|
187
|
-
<a name="
|
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/
|
191
|
-
onclick="popupCode('Starfish.src/
|
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-
|
204
|
-
<a name="
|
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/
|
208
|
-
onclick="popupCode('Starfish.src/
|
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-
|
218
|
-
<a name="
|
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/
|
222
|
-
onclick="popupCode('Starfish.src/
|
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-
|
234
|
-
<a name="
|
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/
|
238
|
-
onclick="popupCode('Starfish.src/
|
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-
|
248
|
-
<a name="
|
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/
|
252
|
-
onclick="popupCode('Starfish.src/
|
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-
|
262
|
-
<a name="
|
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/
|
266
|
-
onclick="popupCode('Starfish.src/
|
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-
|
276
|
-
<a name="
|
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/
|
280
|
-
onclick="popupCode('Starfish.src/
|
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-
|
290
|
-
<a name="
|
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/
|
294
|
-
onclick="popupCode('Starfish.src/
|
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-
|
304
|
-
<a name="
|
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/
|
308
|
-
onclick="popupCode('Starfish.src/
|
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-
|
318
|
-
<a name="
|
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/
|
322
|
-
onclick="popupCode('Starfish.src/
|
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-
|
332
|
-
<a name="
|
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/
|
336
|
-
onclick="popupCode('Starfish.src/
|
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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
16
|
-
<span class="ruby-
|
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">"The stats method is not defined for your server"</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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
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">"/dev/null"</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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span>
|
15
|
-
<span class="ruby-keyword kw">
|
16
|
-
<span class="ruby-
|
17
|
-
|
18
|
-
|
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">"You must specify a server"</span>
|
17
|
+
<span class="ruby-identifier">exit</span>
|
18
|
+
<span class="ruby-keyword kw">end</span>
|
24
19
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
<span class="ruby-
|
30
|
-
|
31
|
-
|
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">"/tmp/starfish-#{uniq}.pid"</span>,<span class="ruby-value str">"w"</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"><<</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">"server started for #{object.inspect}"</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>
|
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
|
14
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
15
|
-
<span class="ruby-
|
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">"You must specify a client"</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">&&</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">"MapReduce::#{@server_object.base_type_to_s}::Client"</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">"invalid map reduce server (possibly missing type or input)"</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">></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"><=</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">></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"><=</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>
|