Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
theodolite
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sören Henning
theodolite
Merge requests
!86
Zookeeper free workload generator
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Zookeeper free workload generator
zookeeper-free-workload-generator
into
master
Overview
0
Commits
24
Pipelines
19
Changes
30
Merged
Sören Henning
requested to merge
zookeeper-free-workload-generator
into
master
4 years ago
Overview
0
Commits
24
Pipelines
19
Changes
2
Expand
Closes
#146 (closed)
.
Still missing:
Adapt Theodolite execution Kubernetes resources and Python scripts
Adapt Docker configurations (to fix
#106 (closed)
)
Edited
4 years ago
by
Sören Henning
0
0
Merge request reports
Compare
version 6
version 17
3a9494c7
4 years ago
version 16
cbe8a6f0
4 years ago
version 15
76ae2ace
4 years ago
version 14
97c61e5d
4 years ago
version 13
4aec5dab
4 years ago
version 12
6fca0275
4 years ago
version 11
2881e222
4 years ago
version 10
143a15ad
4 years ago
version 9
90aef04c
4 years ago
version 8
bb310130
4 years ago
version 7
0fe2dfd7
4 years ago
version 6
d91657c5
4 years ago
version 5
af355c1a
4 years ago
version 4
37162858
4 years ago
version 3
a060936c
4 years ago
version 2
241681f1
4 years ago
version 1
38a23bed
4 years ago
master (base)
and
version 7
latest version
bf374b50
24 commits,
4 years ago
version 17
3a9494c7
23 commits,
4 years ago
version 16
cbe8a6f0
22 commits,
4 years ago
version 15
76ae2ace
21 commits,
4 years ago
version 14
97c61e5d
20 commits,
4 years ago
version 13
4aec5dab
19 commits,
4 years ago
version 12
6fca0275
18 commits,
4 years ago
version 11
2881e222
17 commits,
4 years ago
version 10
143a15ad
16 commits,
4 years ago
version 9
90aef04c
15 commits,
4 years ago
version 8
bb310130
14 commits,
4 years ago
version 7
0fe2dfd7
13 commits,
4 years ago
version 6
d91657c5
12 commits,
4 years ago
version 5
af355c1a
10 commits,
4 years ago
version 4
37162858
9 commits,
4 years ago
version 3
a060936c
8 commits,
4 years ago
version 2
241681f1
7 commits,
4 years ago
version 1
38a23bed
6 commits,
4 years ago
Show latest version
2 files
+
21
−
3
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
Search (e.g. *.vue) (Ctrl+P)
benchmarks/workload-generator-commons/src/main/java/theodolite/commons/workloadgeneration/HazelcastRunner.java
0 → 100644
+
107
−
0
Options
package
theodolite.commons.workloadgeneration
;
import
com.hazelcast.cluster.Member
;
import
com.hazelcast.cluster.MembershipEvent
;
import
com.hazelcast.cluster.MembershipListener
;
import
com.hazelcast.config.Config
;
import
com.hazelcast.config.JoinConfig
;
import
com.hazelcast.core.Hazelcast
;
import
com.hazelcast.core.HazelcastInstance
;
import
java.util.Set
;
import
java.util.concurrent.CompletableFuture
;
/**
* A Theodolite load generator runner that establishes a cluster using Hazelcast.
*/
public
class
HazelcastRunner
{
private
static
final
String
HZ_KUBERNETES_SERVICE_DNS_KEY
=
"service-dns"
;
private
final
HazelcastInstance
hzInstance
;
private
volatile
HazelcastRunnerStateInstance
runnerState
;
private
final
CompletableFuture
<
Void
>
stopAction
=
new
CompletableFuture
<>();
private
final
LoadGeneratorConfig
loadConfig
;
private
final
WorkloadDefinition
totalLoadDefinition
;
/**
* Create a new {@link HazelcastRunner} from the given configuration.
*/
public
HazelcastRunner
(
final
ClusterConfig
clusterConfig
,
final
LoadGeneratorConfig
loadConfig
,
final
WorkloadDefinition
totalLoadDefinition
)
{
this
.
loadConfig
=
loadConfig
;
this
.
totalLoadDefinition
=
totalLoadDefinition
;
this
.
hzInstance
=
buildhazelcastInstance
(
clusterConfig
,
totalLoadDefinition
.
toString
());
this
.
hzInstance
.
getCluster
().
addMembershipListener
(
new
RunnerMembershipListener
());
}
/**
* Start the workload generation and blocks until the workload generation is stopped again.
*/
public
void
runBlocking
()
{
while
(!
this
.
stopAction
.
isDone
())
{
synchronized
(
this
)
{
final
Set
<
Member
>
members
=
this
.
hzInstance
.
getCluster
().
getMembers
();
this
.
runnerState
=
new
HazelcastRunnerStateInstance
(
this
.
loadConfig
,
this
.
totalLoadDefinition
,
this
.
hzInstance
,
members
);
}
this
.
runnerState
.
runBlocking
();
}
}
public
void
restart
()
{
this
.
stopRunnerState
();
}
public
void
stop
()
{
this
.
stopAction
.
complete
(
null
);
this
.
stopRunnerState
();
}
private
void
stopRunnerState
()
{
synchronized
(
this
)
{
if
(
this
.
runnerState
!=
null
)
{
this
.
runnerState
.
stopAsync
();
}
}
}
private
class
RunnerMembershipListener
implements
MembershipListener
{
@Override
public
void
memberAdded
(
final
MembershipEvent
membershipEvent
)
{
HazelcastRunner
.
this
.
restart
();
}
@Override
public
void
memberRemoved
(
final
MembershipEvent
membershipEvent
)
{
HazelcastRunner
.
this
.
restart
();
}
}
private
static
HazelcastInstance
buildhazelcastInstance
(
final
ClusterConfig
cluster
,
final
String
clusterName
)
{
final
Config
config
=
new
Config
()
.
setClusterName
(
cluster
.
getClusterNamePrefix
()
+
'_'
+
clusterName
);
final
JoinConfig
joinConfig
=
config
.
getNetworkConfig
()
.
setPort
(
cluster
.
getPort
())
.
setPortAutoIncrement
(
cluster
.
isPortAutoIncrement
())
.
getJoin
();
joinConfig
.
getMulticastConfig
().
setEnabled
(
false
);
if
(
cluster
.
hasBootstrapServer
())
{
joinConfig
.
getTcpIpConfig
().
addMember
(
cluster
.
getBootstrapServer
());
}
else
if
(
cluster
.
hasKubernetesDnsName
())
{
joinConfig
.
getKubernetesConfig
()
.
setEnabled
(
true
)
.
setProperty
(
HZ_KUBERNETES_SERVICE_DNS_KEY
,
cluster
.
getKubernetesDnsName
());
}
return
Hazelcast
.
newHazelcastInstance
(
config
);
}
}
Loading