Skip to content

Commit 678fe99

Browse files
committed
Fixes, updates and refactor.
1 parent ff83eb7 commit 678fe99

File tree

152 files changed

+9536
-712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+9536
-712
lines changed

Gopkg.lock

Lines changed: 29 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configuration.toml

Lines changed: 38 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
11
[Caravela]
22
Simulation = true
3-
CPUSlices = 2
3+
CPUSlices = 1
44
CPUOvercommit = 100
55
MemoryOvercommit = 100
66
SchedulingPolicy = "binpack"
77
[Caravela.DiscoveryBackend]
88
[Caravela.DiscoveryBackend.OfferingChordBackend]
99
SpreadOffersInterval = "5m"
1010
RefreshingInterval = "5m"
11-
PartitionsStateBufferSize = 15
1211
# Debug performance flags
1312
SpreadOffers = true
1413
SpreadPartitionsState = true
15-
GUIDEstimatedNetworkSize = 10000
16-
GUIDScaleFactor = 5
14+
PartitionsStateBufferSize = 13
15+
PseudoSuperPeers = true
16+
GUIDEstimatedNetworkSize = 5000
17+
GUIDScaleFactor = 15
1718
[Caravela.DiscoveryBackend.RandomChordBackend]
18-
RandBackendMaxRetries = 4
19+
RandBackendMaxRetries = 3
1920
[Caravela.Resources]
2021
[[Caravela.Resources.CPUClasses]]
2122
Value = 0
22-
Percentage = 70
23+
Percentage = 75
2324
[[Caravela.Resources.CPUClasses.CPUCores]]
2425
Value = 1
2526
Percentage = 50
2627
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
2728
Value = 256
28-
Percentage = 50
29-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
30-
Value = 512
31-
Percentage = 50
29+
Percentage = 100
3230
[[Caravela.Resources.CPUClasses.CPUCores]]
3331
Value = 2
34-
Percentage = 20
32+
Percentage = 25
3533
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
3634
Value = 512
3735
Percentage = 50
@@ -40,99 +38,53 @@ SchedulingPolicy = "binpack"
4038
Percentage = 50
4139
[[Caravela.Resources.CPUClasses.CPUCores]]
4240
Value = 4
43-
Percentage = 10
41+
Percentage = 25
4442
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
4543
Value = 1024
46-
Percentage = 25
44+
Percentage = 50
4745
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
4846
Value = 2048
49-
Percentage = 50
47+
Percentage = 25
5048
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
5149
Value = 4096
5250
Percentage = 25
51+
[[Caravela.Resources.CPUClasses]]
52+
Value = 1
53+
Percentage = 25
5354
[[Caravela.Resources.CPUClasses.CPUCores]]
54-
Value = 8
55-
Percentage = 10
55+
Value = 1
56+
Percentage = 50
57+
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
58+
Value = 256
59+
Percentage = 100
60+
[[Caravela.Resources.CPUClasses.CPUCores]]
61+
Value = 2
62+
Percentage = 25
63+
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
64+
Value = 512
65+
Percentage = 50
66+
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
67+
Value = 1024
68+
Percentage = 50
69+
[[Caravela.Resources.CPUClasses.CPUCores]]
70+
Value = 4
71+
Percentage = 13
5672
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
5773
Value = 2048
58-
Percentage = 35
74+
Percentage = 50
5975
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
6076
Value = 4096
61-
Percentage = 35
62-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
63-
Value = 8198
64-
Percentage = 30
77+
Percentage = 50
6578
[[Caravela.Resources.CPUClasses.CPUCores]]
66-
Value = 16
67-
Percentage = 10
79+
Value = 8
80+
Percentage = 12
6881
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
6982
Value = 4096
70-
Percentage = 40
83+
Percentage = 50
7184
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
7285
Value = 8198
73-
Percentage = 40
74-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
75-
Value = 16250
76-
Percentage = 20
77-
[[Caravela.Resources.CPUClasses]]
78-
Value = 1
79-
Percentage = 30
80-
[[Caravela.Resources.CPUClasses.CPUCores]]
81-
Value = 1
8286
Percentage = 50
83-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
84-
Value = 256
85-
Percentage = 50
86-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
87-
Value = 512
88-
Percentage = 50
89-
[[Caravela.Resources.CPUClasses.CPUCores]]
90-
Value = 2
91-
Percentage = 20
92-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
93-
Value = 512
94-
Percentage = 50
95-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
96-
Value = 1024
97-
Percentage = 50
98-
[[Caravela.Resources.CPUClasses.CPUCores]]
99-
Value = 4
100-
Percentage = 10
101-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
102-
Value = 1024
103-
Percentage = 25
104-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
105-
Value = 2048
106-
Percentage = 50
107-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
108-
Value = 4096
109-
Percentage = 25
110-
[[Caravela.Resources.CPUClasses.CPUCores]]
111-
Value = 8
112-
Percentage = 10
113-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
114-
Value = 2048
115-
Percentage = 35
116-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
117-
Value = 4096
118-
Percentage = 35
119-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
120-
Value = 8198
121-
Percentage = 30
122-
[[Caravela.Resources.CPUClasses.CPUCores]]
123-
Value = 16
124-
Percentage = 10
125-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
126-
Value = 4096
127-
Percentage = 40
128-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
129-
Value = 8198
130-
Percentage = 40
131-
[[Caravela.Resources.CPUClasses.CPUCores.Memory]]
132-
Value = 16250
133-
Percentage = 20
134-
13587
[Overlay]
13688
[Overlay.Chord]
13789
NumSuccessors = 3
138-
HashSizeBits = 128
90+
HashSizeBits = 160

configuration/configuration.go

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ type Configuration struct {
4646

4747
// TODO
4848
type requestFeeder struct {
49-
RequestFeeder string // Used to feed the simulator with a series of requests.
50-
RequestsProfile []RequestProfile
49+
RequestFeeder string // Used to feed the simulator with a series of requests.
50+
RequestsProfile []RequestProfile
51+
DeployRequestsRate []float64
52+
StopRequestsRate []float64
5153
}
5254

5355
// TODO
@@ -64,12 +66,27 @@ type chordMock struct {
6466
// Default creates the configuration structure for a basic/default engine.
6567
func Default() *Configuration {
6668
return &Configuration{
67-
NumberOfNodes: 10000,
68-
TickInterval: duration{Duration: 20 * time.Second},
69-
MaxTicks: 25,
70-
Multithread: true,
69+
NumberOfNodes: 10000,
70+
TickInterval: duration{Duration: 20 * time.Second},
71+
MaxTicks: 50,
72+
Multithread: true,
73+
OutDirectoryPath: DefaultOutDirectoryPath,
74+
SimulatorLogLevel: DefaultSimLogLevel,
75+
CaravelaLogLevel: DefaultCaravelaLogLevel,
7176
RequestFeeder: requestFeeder{
72-
RequestFeeder: DefaultRequestFeeder,
77+
RequestFeeder: DefaultRequestFeeder,
78+
DeployRequestsRate: []float64{0.025, 0.015, 0.010, 0.035, 0.02, 0.01, 0.01, 0.05},
79+
StopRequestsRate: []float64{0, 0, 0, 0, 0, 0.025, 0.015, 0.15},
80+
RequestsProfile: []RequestProfile{
81+
{CPUClass: 0, CPUs: 1, Memory: 256, Percentage: 20},
82+
{CPUClass: 0, CPUs: 2, Memory: 1500, Percentage: 20},
83+
{CPUClass: 0, CPUs: 3, Memory: 2500, Percentage: 10},
84+
{CPUClass: 0, CPUs: 4, Memory: 5500, Percentage: 10},
85+
{CPUClass: 0, CPUs: 8, Memory: 7000, Percentage: 10},
86+
{CPUClass: 1, CPUs: 1, Memory: 512, Percentage: 20},
87+
{CPUClass: 1, CPUs: 3, Memory: 2048, Percentage: 5},
88+
{CPUClass: 1, CPUs: 6, Memory: 5000, Percentage: 5},
89+
},
7390
},
7491
ResourcesGenerator: resourcesGenerator{
7592
ResourceGenerator: DefaultResourceGenerator,
@@ -82,9 +99,6 @@ func Default() *Configuration {
8299
ChordMock: chordMock{
83100
SpeedupNodes: DefaultSpeedupNodes,
84101
},
85-
OutDirectoryPath: DefaultOutDirectoryPath,
86-
SimulatorLogLevel: DefaultSimLogLevel,
87-
CaravelaLogLevel: DefaultCaravelaLogLevel,
88102
}
89103
}
90104

@@ -124,6 +138,14 @@ func (c *Configuration) validate() error {
124138
return fmt.Errorf("the number of maximum ticks must be > 0: %d", c.MaxTicks)
125139
}
126140

141+
if len(c.DeployRequestsRate()) == 0 {
142+
return fmt.Errorf("the sequence of deploy requests rate must have at least one rate")
143+
}
144+
145+
if len(c.StopRequestsRate()) == 0 {
146+
return fmt.Errorf("the sequence stop requests rate must have at least one rate")
147+
}
148+
127149
if c.ChordMock.SpeedupNodes <= 0 {
128150
return fmt.Errorf("the number of speedup nodes must be > 0: %d", c.MaxTicks)
129151
}
@@ -159,8 +181,22 @@ func (c *Configuration) CaravelaDiscoveryBackends() []string {
159181
return c.DiscoveryBackends
160182
}
161183

184+
func (c *Configuration) DeployRequestsRate() []float64 {
185+
res := make([]float64, len(c.RequestFeeder.DeployRequestsRate))
186+
copy(res, c.RequestFeeder.DeployRequestsRate)
187+
return res
188+
}
189+
190+
func (c *Configuration) StopRequestsRate() []float64 {
191+
res := make([]float64, len(c.RequestFeeder.StopRequestsRate))
192+
copy(res, c.RequestFeeder.StopRequestsRate)
193+
return res
194+
}
195+
162196
func (c *Configuration) RequestsProfile() []RequestProfile {
163-
return c.RequestFeeder.RequestsProfile
197+
res := make([]RequestProfile, len(c.RequestFeeder.RequestsProfile))
198+
copy(res, c.RequestFeeder.RequestsProfile)
199+
return res
164200
}
165201

166202
func (c *Configuration) Feeder() string {
@@ -211,8 +247,10 @@ func (c *Configuration) Print() {
211247

212248
util.Log.Infof("Request Feeder")
213249
util.Log.Infof(" Request Feeder: %s", c.Feeder())
250+
util.Log.Infof(" Deploy Requests Rate: %v", c.DeployRequestsRate())
251+
util.Log.Infof(" Stop Requests Rate: %v", c.StopRequestsRate())
214252
for _, reqProfile := range c.RequestsProfile() {
215-
util.Log.Infof(" <<%d;%d>;%d>: %d%%", reqProfile.CPUClass, reqProfile.CPUs, reqProfile.Memory, reqProfile.Percentage)
253+
util.Log.Infof(" <<%d;%d>;%d>: %d%%", reqProfile.CPUClass, reqProfile.CPUs, reqProfile.Memory, reqProfile.Percentage)
216254
}
217255
util.Log.Infof("")
218256

0 commit comments

Comments
 (0)