tupelo 0.4 → 0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +42 -9
- data/Rakefile +9 -3
- data/bin/tspy +7 -2
- data/bin/tup +1 -1
- data/example/add-dsl.rb +27 -0
- data/example/boolean-match.rb +2 -19
- data/example/broker-optimistic-v2.rb +33 -0
- data/example/broker-optimistic.rb +15 -15
- data/example/dphil-optimistic-v2.rb +37 -0
- data/example/dphil-optimistic.rb +44 -0
- data/example/dphil.rb +42 -0
- data/example/lock-mgr-with-queue.rb +5 -15
- data/example/lock-mgr.rb +7 -16
- data/example/map-reduce-v2.rb +4 -37
- data/example/map-reduce.rb +2 -18
- data/example/small-simplified.rb +7 -7
- data/example/small.rb +3 -3
- data/example/tcp.rb +8 -1
- data/lib/tupelo/app/trace.rb +23 -0
- data/lib/tupelo/app.rb +45 -7
- data/lib/tupelo/archiver/worker.rb +31 -4
- data/lib/tupelo/client/reader.rb +0 -2
- data/lib/tupelo/client/transaction.rb +83 -23
- data/lib/tupelo/client/worker.rb +14 -5
- data/lib/tupelo/util/boolean.rb +25 -0
- data/lib/tupelo/version.rb +1 -1
- data/test/lib/time-fuzz.rb +36 -0
- data/test/stress/archiver-load.rb +16 -0
- data/test/stress/concurrent-transactions.rb +7 -5
- metadata +12 -5
- data/example/broker-optimistic-async.rb +0 -33
- data/example/broker-queue.rb +0 -2
- /data/lib/tupelo/{irb-shell.rb → app/irb-shell.rb} +0 -0
@@ -1,31 +1,33 @@
|
|
1
1
|
require 'tupelo/app'
|
2
|
+
require 'time-fuzz'
|
2
3
|
|
3
4
|
N = 100
|
4
5
|
|
6
|
+
client_class = Tupelo::TimeFuzz::Client
|
7
|
+
Tupelo::TimeFuzz.sleep_max = 0.01
|
8
|
+
|
5
9
|
Tupelo.application do |app|
|
6
|
-
app.child do |client|
|
10
|
+
app.child(client_class) do |client|
|
7
11
|
N.times do
|
8
12
|
client.transaction do |t|
|
9
13
|
x, y = t.take [nil, nil]
|
10
|
-
sleep rand/100
|
11
14
|
t.write [x+1, y]
|
12
15
|
end
|
13
16
|
end
|
14
17
|
client.write ["done"]
|
15
18
|
end
|
16
19
|
|
17
|
-
app.child do |client|
|
20
|
+
app.child(client_class) do |client|
|
18
21
|
N.times do
|
19
22
|
client.transaction do |t|
|
20
23
|
x, y = t.take [nil, nil]
|
21
|
-
sleep rand/100
|
22
24
|
t.write [x, y+1]
|
23
25
|
end
|
24
26
|
end
|
25
27
|
client.write ["done"]
|
26
28
|
end
|
27
29
|
|
28
|
-
app.local do |client|
|
30
|
+
app.local(client_class) do |client|
|
29
31
|
client.write [0, 0]
|
30
32
|
|
31
33
|
2.times do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tupelo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.5'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel VanderWerf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: atdo
|
@@ -79,6 +79,8 @@ files:
|
|
79
79
|
- README.md
|
80
80
|
- COPYING
|
81
81
|
- Rakefile
|
82
|
+
- lib/tupelo/app/irb-shell.rb
|
83
|
+
- lib/tupelo/app/trace.rb
|
82
84
|
- lib/tupelo/client.rb
|
83
85
|
- lib/tupelo/app.rb
|
84
86
|
- lib/tupelo/archiver.rb
|
@@ -87,9 +89,9 @@ files:
|
|
87
89
|
- lib/tupelo/client/tuplespace.rb
|
88
90
|
- lib/tupelo/client/transaction.rb
|
89
91
|
- lib/tupelo/client/reader.rb
|
90
|
-
- lib/tupelo/irb-shell.rb
|
91
92
|
- lib/tupelo/archiver/worker.rb
|
92
93
|
- lib/tupelo/archiver/tuplespace.rb
|
94
|
+
- lib/tupelo/util/boolean.rb
|
93
95
|
- lib/tupelo/version.rb
|
94
96
|
- bench/pipeline.rb
|
95
97
|
- bugs/write-read.rb
|
@@ -115,10 +117,13 @@ files:
|
|
115
117
|
- example/transaction-logic.rb
|
116
118
|
- example/map-reduce.rb
|
117
119
|
- example/balance-xfer.rb
|
118
|
-
- example/
|
120
|
+
- example/add-dsl.rb
|
119
121
|
- example/lock-mgr.rb
|
120
122
|
- example/broker-locking.rb
|
123
|
+
- example/dphil-optimistic.rb
|
121
124
|
- example/fail-and-retry.rb
|
125
|
+
- example/dphil-optimistic-v2.rb
|
126
|
+
- example/broker-optimistic-v2.rb
|
122
127
|
- example/optimist.rb
|
123
128
|
- example/balance-xfer-locking.rb
|
124
129
|
- example/increment.rb
|
@@ -128,19 +133,21 @@ files:
|
|
128
133
|
- example/broker-optimistic.rb
|
129
134
|
- example/notify.rb
|
130
135
|
- example/small-simplified.rb
|
131
|
-
- example/broker-queue.rb
|
132
136
|
- example/async-transaction.rb
|
133
137
|
- example/boolean-match.rb
|
138
|
+
- example/dphil.rb
|
134
139
|
- test/lib/testable-worker.rb
|
135
140
|
- test/lib/mock-seq.rb
|
136
141
|
- test/lib/mock-msg.rb
|
137
142
|
- test/lib/mock-queue.rb
|
143
|
+
- test/lib/time-fuzz.rb
|
138
144
|
- test/lib/mock-client.rb
|
139
145
|
- test/system/test-archiver.rb
|
140
146
|
- test/unit/test-ops.rb
|
141
147
|
- test/unit/test-mock-seq.rb
|
142
148
|
- test/unit/test-mock-queue.rb
|
143
149
|
- test/stress/concurrent-transactions.rb
|
150
|
+
- test/stress/archiver-load.rb
|
144
151
|
- bin/tup
|
145
152
|
- bin/tspy
|
146
153
|
homepage: https://github.com/vjoel/tupelo
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'tupelo/app'
|
2
|
-
|
3
|
-
N_PLAYERS = 10
|
4
|
-
|
5
|
-
Tupelo.application do |app|
|
6
|
-
N_PLAYERS.times do
|
7
|
-
app.child do |client|
|
8
|
-
me = client.client_id
|
9
|
-
opponent = nil
|
10
|
-
client.write name: me
|
11
|
-
|
12
|
-
arranging_game = client.transaction
|
13
|
-
arranging_game.async do |t|
|
14
|
-
t.take name: me
|
15
|
-
opponent = t.take name: nil
|
16
|
-
t.write(
|
17
|
-
player1: me,
|
18
|
-
player2: opponent)
|
19
|
-
end
|
20
|
-
|
21
|
-
Thread.new do
|
22
|
-
game = client.read(
|
23
|
-
player1: nil,
|
24
|
-
player2: me)
|
25
|
-
opponent = game["player1"]
|
26
|
-
end
|
27
|
-
|
28
|
-
wait
|
29
|
-
client.log "now playing with #{opponent}"
|
30
|
-
joining_game.cancel
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/example/broker-queue.rb
DELETED
File without changes
|