nose 0.1.0pre → 0.1.0pre1
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.
- checksums.yaml +4 -4
- data/models/eac.rb +44 -0
- data/models/ebay.rb +32 -0
- data/models/rubis.rb +97 -0
- data/plans/ebay.rb +83 -0
- data/plans/rubis_baseline.rb +420 -0
- data/plans/rubis_expert.rb +398 -0
- data/schemas/ebay.rb +31 -0
- data/schemas/rubis_baseline.rb +94 -0
- data/schemas/rubis_expert.rb +95 -0
- data/workloads/eac.rb +44 -0
- data/workloads/ebay.rb +18 -0
- data/workloads/rubis.rb +159 -0
- data/workloads/rubis_synthetic.rb +84 -0
- metadata +14 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f962003be2e5c1613e5d05a3c752dba22212aceb
|
4
|
+
data.tar.gz: e06cc1936e9c85a7e5ccb6e3a59827011a3ff8d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e012acadb4ca0198d34c87dcff1f60c28c4be7e119a0976d3270730866815e5cc65cd90ae2e70cee38ad19e1e2cee18820b70234948fa173c16a664d1898cd56
|
7
|
+
data.tar.gz: ca8e6c58a1ee20be1accd32ede0cce6b8b3ac1350f9134bfbdd72aabd39e51853b0e4dd4ca64f00ea9a46ceb4c26c54a1bfdc71eef2d72a83b9cccdae64a69ec
|
data/models/eac.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# rubocop:disable all
|
3
|
+
|
4
|
+
NoSE::Model.new do
|
5
|
+
# Define entities along with the size and cardinality of their fields
|
6
|
+
# as well as an estimated number of each entity
|
7
|
+
|
8
|
+
(Entity 'Player' do
|
9
|
+
ID 'PlayerID'
|
10
|
+
String 'PlayerName'
|
11
|
+
Integer 'PlayerFlags'
|
12
|
+
Boolean 'IsAdmin'
|
13
|
+
end) * 100_000
|
14
|
+
|
15
|
+
(Entity 'Session' do
|
16
|
+
ID 'SessionID'
|
17
|
+
Date 'TimeStarted'
|
18
|
+
Date 'TimeEnded'
|
19
|
+
end) * 100_000
|
20
|
+
|
21
|
+
(Entity 'PlayerState' do
|
22
|
+
ID 'StateID'
|
23
|
+
Float 'PosX'
|
24
|
+
Float 'PosY'
|
25
|
+
Float 'PosZ'
|
26
|
+
Date 'ClientTimestamp'
|
27
|
+
Date 'ServerTimestamp'
|
28
|
+
end) * 4_000_000
|
29
|
+
|
30
|
+
(Entity 'Server' do
|
31
|
+
ID 'ServerID'
|
32
|
+
String 'ServerIP'
|
33
|
+
String 'ServerName'
|
34
|
+
end) * 5_000
|
35
|
+
|
36
|
+
HasOne 'player', 'sessions',
|
37
|
+
'Session' => 'Player'
|
38
|
+
|
39
|
+
HasOne 'server', 'sessions',
|
40
|
+
'Session' => 'Server'
|
41
|
+
|
42
|
+
HasOne 'session', 'states',
|
43
|
+
'PlayerState' => 'Session'
|
44
|
+
end
|
data/models/ebay.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Insipired by the blog post below on data modeling in Cassandra
|
4
|
+
# www.ebaytechblog.com/2012/07/16/cassandra-data-modeling-best-practices-part-1/
|
5
|
+
|
6
|
+
# rubocop:disable all
|
7
|
+
|
8
|
+
NoSE::Model.new do
|
9
|
+
# Define entities along with the size and cardinality of their fields
|
10
|
+
# as well as an estimated number of each entity
|
11
|
+
(Entity 'users' do
|
12
|
+
ID 'UserID'
|
13
|
+
String 'Name', 50
|
14
|
+
String 'Email', 50
|
15
|
+
end) * 100
|
16
|
+
|
17
|
+
(Entity 'items' do
|
18
|
+
ID 'ItemID'
|
19
|
+
String 'Title', 50
|
20
|
+
String 'Desc', 200
|
21
|
+
end) * 1_000
|
22
|
+
|
23
|
+
(Entity 'likes' do
|
24
|
+
ID 'LikeID'
|
25
|
+
Date 'LikedAt'
|
26
|
+
end) * 10_000
|
27
|
+
|
28
|
+
HasOne 'user', 'likes',
|
29
|
+
'likes' => 'users'
|
30
|
+
HasOne 'item', 'likes',
|
31
|
+
'likes' => 'items'
|
32
|
+
end
|
data/models/rubis.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# rubocop:disable all
|
3
|
+
|
4
|
+
NoSE::Model.new do
|
5
|
+
# Define entities along with the size and cardinality of their fields
|
6
|
+
# as well as an estimated number of each entity
|
7
|
+
|
8
|
+
(Entity 'categories' do
|
9
|
+
ID 'id'
|
10
|
+
String 'name', 20
|
11
|
+
Integer 'dummy', count: 1
|
12
|
+
end) * 50
|
13
|
+
|
14
|
+
(Entity 'regions' do
|
15
|
+
ID 'id'
|
16
|
+
String 'name', 25
|
17
|
+
Integer 'dummy', count: 1
|
18
|
+
end) * 5
|
19
|
+
|
20
|
+
(Entity 'users' do
|
21
|
+
ID 'id'
|
22
|
+
String 'firstname', 6
|
23
|
+
String 'lastname', 7
|
24
|
+
String 'nickname', 12
|
25
|
+
String 'password', 15
|
26
|
+
String 'email', 23
|
27
|
+
Integer 'rating', count: 50
|
28
|
+
Float 'balance', count: 10_000
|
29
|
+
Date 'creation_date'
|
30
|
+
end) * 2_000
|
31
|
+
|
32
|
+
(Entity 'items' do
|
33
|
+
ID 'id'
|
34
|
+
String 'name', 19
|
35
|
+
String 'description', 197
|
36
|
+
Float 'initial_price'
|
37
|
+
Integer 'quantity', count: 100
|
38
|
+
Float 'reserve_price'
|
39
|
+
Float 'buy_now'
|
40
|
+
Integer 'nb_of_bids', count: 100
|
41
|
+
Float 'max_bid'
|
42
|
+
Date 'start_date'
|
43
|
+
Date 'end_date'
|
44
|
+
end) * 20_000
|
45
|
+
|
46
|
+
(Entity 'bids' do
|
47
|
+
ID 'id'
|
48
|
+
Integer 'qty', count: 5
|
49
|
+
Float 'bid'
|
50
|
+
Date 'date'
|
51
|
+
end) * 200_000
|
52
|
+
|
53
|
+
(Entity 'comments' do
|
54
|
+
ID 'id'
|
55
|
+
Integer 'rating', count: 10
|
56
|
+
Date 'date'
|
57
|
+
String 'comment', 130
|
58
|
+
end) * 100_000
|
59
|
+
|
60
|
+
(Entity 'buynow' do
|
61
|
+
ID 'id'
|
62
|
+
Integer 'qty', count: 4
|
63
|
+
Date 'date'
|
64
|
+
end) * 40_000
|
65
|
+
|
66
|
+
HasOne 'region', 'users',
|
67
|
+
'users' => 'regions'
|
68
|
+
|
69
|
+
HasOne 'seller', 'items_sold',
|
70
|
+
'items' => 'users'
|
71
|
+
|
72
|
+
HasOne 'category', 'items',
|
73
|
+
'items' => 'categories'
|
74
|
+
|
75
|
+
HasOne 'user', 'bids',
|
76
|
+
'bids' => 'users'
|
77
|
+
|
78
|
+
HasOne 'item', 'bids',
|
79
|
+
'bids' => 'items'
|
80
|
+
|
81
|
+
HasOne 'from_user', 'comments_sent',
|
82
|
+
'comments' => 'users'
|
83
|
+
|
84
|
+
HasOne 'to_user', 'comments_received',
|
85
|
+
'comments' => 'users'
|
86
|
+
|
87
|
+
HasOne 'item', 'comments',
|
88
|
+
'comments' => 'items'
|
89
|
+
|
90
|
+
HasOne 'buyer', 'bought_now',
|
91
|
+
'buynow' => 'users'
|
92
|
+
|
93
|
+
HasOne 'item', 'bought_now',
|
94
|
+
'buynow' => 'items'
|
95
|
+
end
|
96
|
+
|
97
|
+
# rubocop:enable all
|
data/plans/ebay.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
NoSE::Plans::ExecutionPlans.new do
|
4
|
+
Schema 'ebay'
|
5
|
+
|
6
|
+
Group 'GetUser' do
|
7
|
+
Plan 'GetUser' do
|
8
|
+
Select users['*']
|
9
|
+
Param users.UserID, :==
|
10
|
+
Lookup 'users_by_id', [users.UserID, :==]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
Group 'GetItem' do
|
15
|
+
Plan 'GetItem' do
|
16
|
+
Select items['*']
|
17
|
+
Param items.ItemID, :==
|
18
|
+
Lookup 'items_by_id', [items.ItemID, :==]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Group 'GetUserLikes' do
|
23
|
+
Plan 'GetUserLikes' do
|
24
|
+
Select items['*']
|
25
|
+
Param users.UserID, :==
|
26
|
+
Lookup 'likes_by_user', [users.UserID, :==]
|
27
|
+
Lookup 'items_by_id', [items.ItemID, :==]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
Group 'GetItemLikes' do
|
32
|
+
Plan 'GetItemLikes' do
|
33
|
+
Select users['*']
|
34
|
+
Param items.ItemID, :==
|
35
|
+
Lookup 'likes_by_item', [items.ItemID, :==]
|
36
|
+
Lookup 'users_by_id', [users.UserID, :==]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Group 'AddLike' do
|
41
|
+
Plan 'AddItemLike' do
|
42
|
+
Param items.ItemID, :==
|
43
|
+
Param likes.LikeID, :==
|
44
|
+
Param likes.LikedAt, :==
|
45
|
+
Param users.UserID, :==
|
46
|
+
Insert 'likes_by_item'
|
47
|
+
end
|
48
|
+
|
49
|
+
Plan 'AddUserLike' do
|
50
|
+
Param users.UserID, :==
|
51
|
+
Param likes.LikeID, :==
|
52
|
+
Param likes.LikedAt, :==
|
53
|
+
Param items.ItemID, :==
|
54
|
+
Insert 'likes_by_user'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
Group 'AddUser' do
|
59
|
+
Plan 'AddUser' do
|
60
|
+
Param users.UserID, :==
|
61
|
+
Param users.Name, :==
|
62
|
+
Param users.Email, :==
|
63
|
+
Insert 'users_by_id'
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
Group 'AddItem' do
|
68
|
+
Plan 'AddItem' do
|
69
|
+
Param items.ItemID, :==
|
70
|
+
Param items.Title, :==
|
71
|
+
Param items.Desc, :==
|
72
|
+
Insert 'items_by_id'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
Group 'UpdateItemTitle' do
|
77
|
+
Plan 'UpdateItemTitle' do
|
78
|
+
Param items.ItemID, :==
|
79
|
+
Param items.Title, :==
|
80
|
+
Insert 'items_by_id', items.ItemID, items.Title
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,420 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
NoSE::Plans::ExecutionPlans.new do
|
4
|
+
Schema 'rubis_baseline'
|
5
|
+
|
6
|
+
DefaultMix :browsing
|
7
|
+
|
8
|
+
Group 'BrowseCategories', browsing: 4.44,
|
9
|
+
bidding: 7.65,
|
10
|
+
write_medium: 7.65,
|
11
|
+
write_heavy: 7.65 do
|
12
|
+
Plan 'Authentication' do
|
13
|
+
Select users.password
|
14
|
+
Param users.id, :==
|
15
|
+
Lookup 'users', [users.id, :==]
|
16
|
+
end
|
17
|
+
|
18
|
+
Plan 'Categories' do
|
19
|
+
Select categories['*']
|
20
|
+
Param categories.dummy, :==, 1
|
21
|
+
Lookup 'all_categories', [categories.dummy, :==]
|
22
|
+
Lookup 'categories', [categories.id, :==]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
Group 'ViewBidHistory', browsing: 2.38,
|
27
|
+
bidding: 1.54,
|
28
|
+
write_medium: 1.54,
|
29
|
+
write_heavy: 1.54 do
|
30
|
+
Plan 'ItemName' do
|
31
|
+
Select items.name
|
32
|
+
Param items.id, :==
|
33
|
+
Lookup 'items', [items.id, :==]
|
34
|
+
end
|
35
|
+
|
36
|
+
Plan 'Bids' do
|
37
|
+
Select bids['*'], users.id, users.nickname
|
38
|
+
Param items.id, :==
|
39
|
+
Lookup 'bids_by_item', [items.id, :==]
|
40
|
+
Lookup 'bids', [bids.id, :==]
|
41
|
+
Lookup 'users', [users.id, :==]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
Group 'ViewItem', browsing: 22.95,
|
46
|
+
bidding: 14.17,
|
47
|
+
write_medium: 14.17,
|
48
|
+
write_heavy: 14.17 do
|
49
|
+
Plan 'ItemData' do
|
50
|
+
Select items['*']
|
51
|
+
Param items.id, :==
|
52
|
+
Lookup 'items', [items.id, :==]
|
53
|
+
end
|
54
|
+
|
55
|
+
Plan 'Bids' do
|
56
|
+
Select bids['*']
|
57
|
+
Param items.id, :==
|
58
|
+
Lookup 'bids_by_item', [items.id, :==]
|
59
|
+
Lookup 'bids', [bids.id, :==]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
Group 'SearchItemsByCategory', browsing: 27.77,
|
64
|
+
bidding: 15.94,
|
65
|
+
write_medium: 15.94,
|
66
|
+
write_heavy: 15.94 do
|
67
|
+
Plan 'ItemList' do
|
68
|
+
Select items['*']
|
69
|
+
Param categories.id, :==
|
70
|
+
Param items.end_date, :>=
|
71
|
+
Lookup 'items_by_category',
|
72
|
+
[categories.id, :==],
|
73
|
+
[items.end_date, :>=], limit: 25
|
74
|
+
Lookup 'items', [items.id, :==]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
Group 'SearchItemsByRegion', browsing: 8.26,
|
79
|
+
bidding: 6.34,
|
80
|
+
write_medium: 6.34,
|
81
|
+
write_heavy: 6.34 do
|
82
|
+
Plan 'ItemList' do
|
83
|
+
Select items['*']
|
84
|
+
Param regions.id, :==
|
85
|
+
Param categories.id, :==
|
86
|
+
Param items.end_date, :>=
|
87
|
+
Lookup 'items_by_region',
|
88
|
+
[regions.id, :==],
|
89
|
+
[categories.id, :==],
|
90
|
+
[items.end_date, :>=], limit: 25
|
91
|
+
Lookup 'items', [items.id, :==]
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
Group 'BrowseRegions', browsing: 3.21,
|
96
|
+
bidding: 5.39,
|
97
|
+
write_medium: 5.39,
|
98
|
+
write_heavy: 5.39 do
|
99
|
+
Plan 'Regions' do
|
100
|
+
Select regions['*']
|
101
|
+
Param regions.dummy, :==, 1
|
102
|
+
Lookup 'all_regions', [regions.dummy, :==]
|
103
|
+
Lookup 'regions', [regions.id, :==]
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
Group 'ViewUserInfo', browsing: 4.41,
|
108
|
+
bidding: 2.48,
|
109
|
+
write_medium: 2.48,
|
110
|
+
write_heavy: 2.48 do
|
111
|
+
Plan 'UserData' do
|
112
|
+
Select users['*'], regions.id, regions.name
|
113
|
+
Param users.id, :==
|
114
|
+
Lookup 'users', [users.id, :==]
|
115
|
+
Lookup 'regions', [regions.id, :==]
|
116
|
+
end
|
117
|
+
|
118
|
+
Plan 'CommentsReceived' do
|
119
|
+
Select comments['*']
|
120
|
+
Param users.id, :==
|
121
|
+
Lookup 'comments_by_user', [users.id, :==]
|
122
|
+
Lookup 'comments', [comments.id, :==]
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
Group 'RegisterItem', bidding: 0.53,
|
127
|
+
write_medium: 0.53 * 10,
|
128
|
+
write_heavy: 0.53 * 100 do
|
129
|
+
Plan 'InsertItem' do
|
130
|
+
Param items.id, :==
|
131
|
+
Param items.name, :==
|
132
|
+
Param items.description, :==
|
133
|
+
Param items.initial_price, :==
|
134
|
+
Param items.quantity, :==
|
135
|
+
Param items.reserve_price, :==
|
136
|
+
Param items.buy_now, :==
|
137
|
+
Param items.nb_of_bids, :==
|
138
|
+
Param items.max_bid, :==
|
139
|
+
Param items.start_date, :==
|
140
|
+
Param items.end_date, :==
|
141
|
+
Insert 'items'
|
142
|
+
end
|
143
|
+
|
144
|
+
Plan 'AddToSold' do
|
145
|
+
Param items.id, :==
|
146
|
+
Param items.end_date, :==
|
147
|
+
Param users.id, :==
|
148
|
+
Insert 'user_items_sold'
|
149
|
+
end
|
150
|
+
|
151
|
+
Plan 'AddToCategory' do
|
152
|
+
Param items.id, :==
|
153
|
+
Param items.end_date, :==
|
154
|
+
Param categories.id, :==
|
155
|
+
Insert 'items_by_category'
|
156
|
+
end
|
157
|
+
|
158
|
+
Plan 'AddToRegion' do
|
159
|
+
Support do
|
160
|
+
Plan 'GetRegion' do
|
161
|
+
Select regions.id
|
162
|
+
Param users.id, :==
|
163
|
+
Lookup 'users', [users.id, :==]
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
Param users.id, :==
|
168
|
+
Param items.id, :==
|
169
|
+
Param items.end_date, :==
|
170
|
+
Param regions.id, :==
|
171
|
+
Param categories.id, :==
|
172
|
+
Insert 'items_by_region'
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
Group 'RegisterUser', bidding: 1.07,
|
177
|
+
write_medium: 1.07 * 10,
|
178
|
+
write_heavy: 1.07 * 100 do
|
179
|
+
Plan 'AddUser' do
|
180
|
+
Support do
|
181
|
+
Plan 'GetRegionName' do
|
182
|
+
Select regions.name
|
183
|
+
Param regions.id, :==
|
184
|
+
Lookup 'regions', [regions.id, :==]
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
Param users.id, :==
|
189
|
+
Param users.firstname, :==
|
190
|
+
Param users.lastname, :==
|
191
|
+
Param users.nickname, :==
|
192
|
+
Param users.password, :==
|
193
|
+
Param users.email, :==
|
194
|
+
Param users.rating, :==, 0
|
195
|
+
Param users.balance, :==, 0
|
196
|
+
Param users.creation_date, :==
|
197
|
+
Param regions.id, :==
|
198
|
+
Insert 'users'
|
199
|
+
end
|
200
|
+
|
201
|
+
Plan 'AddToRegion' do
|
202
|
+
Param users.id, :==
|
203
|
+
Param users.nickname, :==
|
204
|
+
Param regions.id, :==
|
205
|
+
Insert 'users_by_region'
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
Group 'BuyNow', bidding: 1.16,
|
210
|
+
write_medium: 1.16,
|
211
|
+
write_heavy: 1.16 do
|
212
|
+
Plan 'Authentication' do
|
213
|
+
Select users.password
|
214
|
+
Param users.id, :==
|
215
|
+
Lookup 'users', [users.id, :==]
|
216
|
+
end
|
217
|
+
|
218
|
+
Plan 'ItemData' do
|
219
|
+
Select items['*']
|
220
|
+
Param items.id, :==
|
221
|
+
Lookup 'items', [items.id, :==]
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
Group 'StoreBuyNow', bidding: 1.10,
|
226
|
+
write_medium: 1.10 * 10,
|
227
|
+
write_heavy: 1.10 * 100 do
|
228
|
+
Plan 'ReduceQuantity' do
|
229
|
+
Support do
|
230
|
+
Plan 'OldQuantity' do
|
231
|
+
Select items.quantity
|
232
|
+
Param items.id, :==
|
233
|
+
Lookup 'items', [items.id, :==]
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
Param items.id, :==
|
238
|
+
Insert 'items', items.id, items.quantity
|
239
|
+
end
|
240
|
+
|
241
|
+
Plan 'AddBuyNow' do
|
242
|
+
Param buynow.id, :==
|
243
|
+
Param buynow.qty, :==
|
244
|
+
Param buynow.date, :==
|
245
|
+
Param items.id, :==
|
246
|
+
Insert 'buynow'
|
247
|
+
end
|
248
|
+
|
249
|
+
Plan 'AddToBought' do
|
250
|
+
Param users.id, :==
|
251
|
+
Param buynow.id, :==
|
252
|
+
Param buynow.date, :==
|
253
|
+
Insert 'buynow_by_user'
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
Group 'PutBid', bidding: 5.40, write_medium: 5.40, write_heavy: 5.40 do
|
258
|
+
Plan 'Authentication' do
|
259
|
+
Select users.password
|
260
|
+
Param users.id, :==
|
261
|
+
Lookup 'users', [users.id, :==]
|
262
|
+
end
|
263
|
+
|
264
|
+
Plan 'ItemData' do
|
265
|
+
Select items['*']
|
266
|
+
Param items.id, :==
|
267
|
+
Lookup 'items', [items.id, :==]
|
268
|
+
end
|
269
|
+
|
270
|
+
Plan 'Bids' do
|
271
|
+
Select bids['*']
|
272
|
+
Param items.id, :==
|
273
|
+
Lookup 'bids_by_item', [items.id, :==]
|
274
|
+
Lookup 'bids', [bids.id, :==]
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
Group 'StoreBid', bidding: 3.74,
|
279
|
+
write_medium: 3.74 * 10,
|
280
|
+
write_heavy: 3.74 * 100 do
|
281
|
+
Plan 'CheckMaxBid' do
|
282
|
+
Select items.nb_of_bids, items.max_bid
|
283
|
+
Param items.id, :==
|
284
|
+
Lookup 'items', [items.id, :==]
|
285
|
+
end
|
286
|
+
|
287
|
+
Plan 'AddBid' do
|
288
|
+
Support do
|
289
|
+
Plan 'GetMaxBid' do
|
290
|
+
Select items.max_bid
|
291
|
+
Param items.id, :==
|
292
|
+
Lookup 'items', [items.id, :==]
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
Param items.id, :==
|
297
|
+
Param items.max_bid, :==
|
298
|
+
Insert 'items', items.id, items.max_bid
|
299
|
+
end
|
300
|
+
|
301
|
+
Plan 'AddToBids' do
|
302
|
+
Param bids.id, :==
|
303
|
+
Param bids.qty, :==
|
304
|
+
Param bids.bid, :==
|
305
|
+
Param bids.date, :==
|
306
|
+
Param users.id, :==
|
307
|
+
Insert 'bids'
|
308
|
+
end
|
309
|
+
|
310
|
+
Plan 'AddToItemBids' do
|
311
|
+
Param items.id, :==
|
312
|
+
Param bids.id, :==
|
313
|
+
Insert 'bids_by_item'
|
314
|
+
end
|
315
|
+
|
316
|
+
Plan 'AddToUserBids' do
|
317
|
+
Param users.id, :==
|
318
|
+
Param bids.id, :==
|
319
|
+
Param bids.date, :==
|
320
|
+
Insert 'bids_by_user'
|
321
|
+
end
|
322
|
+
end
|
323
|
+
|
324
|
+
Group 'PutComment', bidding: 0.46,
|
325
|
+
write_medium: 0.46,
|
326
|
+
write_heavy: 0.46 do
|
327
|
+
Plan 'Authentication' do
|
328
|
+
Select users.password
|
329
|
+
Param users.id, :==
|
330
|
+
Lookup 'users', [users.id, :==]
|
331
|
+
end
|
332
|
+
|
333
|
+
Plan 'ItemData' do
|
334
|
+
Select items['*']
|
335
|
+
Param items.id, :==
|
336
|
+
Lookup 'items', [items.id, :==]
|
337
|
+
end
|
338
|
+
|
339
|
+
Plan 'UserData' do
|
340
|
+
Select users['*']
|
341
|
+
Param users.id, :==
|
342
|
+
Lookup 'users', [users.id, :==]
|
343
|
+
end
|
344
|
+
end
|
345
|
+
|
346
|
+
Group 'StoreComment', bidding: 0.45,
|
347
|
+
write_medium: 0.45 * 10,
|
348
|
+
write_heavy: 0.45 * 100 do
|
349
|
+
Plan 'UpdateRating' do
|
350
|
+
Support do
|
351
|
+
Plan 'GetRating' do
|
352
|
+
Select users.rating, regions.id
|
353
|
+
Param users.id, :==
|
354
|
+
Lookup 'users', [users.id, :==]
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
Param users.id, :==
|
359
|
+
Param users.rating, :==
|
360
|
+
Insert 'users', users.id, regions.id, users.rating
|
361
|
+
end
|
362
|
+
|
363
|
+
Plan 'InsertComment' do
|
364
|
+
Param comments.id, :==
|
365
|
+
Param comments.rating, :==
|
366
|
+
Param comments.date, :==
|
367
|
+
Param comments.comment, :==
|
368
|
+
Insert 'comments'
|
369
|
+
end
|
370
|
+
|
371
|
+
Plan 'AddToUserComments' do
|
372
|
+
Param users.id, :==
|
373
|
+
Param comments.id, :==
|
374
|
+
Insert 'comments_by_user'
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
Group 'AboutMe', bidding: 1.71,
|
379
|
+
write_medium: 1.71,
|
380
|
+
write_heavy: 1.71 do
|
381
|
+
Plan 'UserData' do
|
382
|
+
Select users['*']
|
383
|
+
Param users.id, :==
|
384
|
+
Lookup 'users', [users.id, :==]
|
385
|
+
end
|
386
|
+
|
387
|
+
Plan 'CommentsReceived' do
|
388
|
+
Select comments['*']
|
389
|
+
Param users.id, :==
|
390
|
+
Lookup 'comments_by_user', [users.id, :==]
|
391
|
+
Lookup 'comments', [comments.id, :==]
|
392
|
+
end
|
393
|
+
|
394
|
+
Plan 'BuyNow' do
|
395
|
+
Select items['*']
|
396
|
+
Param users.id, :==
|
397
|
+
Param buynow.date, :>=
|
398
|
+
Lookup 'buynow_by_user', [users.id, :==], [buynow.date, :>=]
|
399
|
+
Lookup 'buynow', [buynow.id, :==]
|
400
|
+
Lookup 'items', [items.id, :==]
|
401
|
+
end
|
402
|
+
|
403
|
+
Plan 'ItemsSold' do
|
404
|
+
Select items['*']
|
405
|
+
Param users.id, :==
|
406
|
+
Param items.end_date, :>=
|
407
|
+
Lookup 'user_items_sold', [users.id, :==], [items.end_date, :>=]
|
408
|
+
Lookup 'items', [items.id, :==]
|
409
|
+
end
|
410
|
+
|
411
|
+
Plan 'ItemsBid' do
|
412
|
+
Select items['*'], bids.id
|
413
|
+
Param users.id, :==
|
414
|
+
Param bids.date, :>=
|
415
|
+
Lookup 'bids_by_user', [users.id, :==], [bids.date, :>=]
|
416
|
+
Lookup 'bids', [bids.id, :==]
|
417
|
+
Lookup 'items', [items.id, :==]
|
418
|
+
end
|
419
|
+
end
|
420
|
+
end
|