Title: JBora Reliable Group Communication Middleware
1JBora Reliable Group Communication Middleware
- Alberto Bartoli
- Etienne Antoniutti Di Muro
- Milan Prica
- Università degli Studi di Trieste, Italy
2What is JBora?
- JBora is the user application interface towards a
replication layer - Built on top of Spread Group Communication tool
- JBora is a shared object amongst all application
threads within the same VM
Programmer Code
JMiramare
JBora
Spread
2 / 16
3What Can You Do With JBora ?
- Usual things
- Join a group
- Multicast message and receive events
- Leave a group
- Inter-thread communication(useful when
interacting with external channel, e.g. HTTP) - localCall() and localRespond() novel primitives
- Share application level information, among
replicas, i.e. load information, sensor data - WhiteBoard object shared among group members
3 / 16
4JBora Reliability Guarantees
- ? Total Order Uniform Delivery
- In Partitionable Systems
- Without Transitional Views
- Not going to discuss this in detail
4 / 16
5JBora Group Communication Performance
- No Free Lunch
- GC powerful but costly
- Likely to be a key bottleneck
- Objective
- Can we shift the GC-induced bottleneck upto
higher throughput values ?
5 / 16
6Methodology Message Packing (I)
Traditional (Standard)use of Group
Communication
6 / 16
7Methodology Message Packing (II)
Message Packing(Friedman, Van Renesse 1996)
buffered
buffered
buffered
buffered
7 / 16
8JBora Key FeatureAdaptive Message Packing
- Message buffer is transmitted when sending
conditions have been satisfied - packing interval has elapsed
- packing degree has been reached
- packing dimension has been reached
- Each parameter may be kept constant or varied at
runtime
8 / 16
9JBora Key FeatureAdaptive Message Packing
- We have seen that with suitable values we can
have very good performance - The problem is how to tune this once and for all
? - Idea! Enable the system to tune itself
automatically and adaptively
9 / 16
10What is a Policy?
- A policy is a pluggable module that enables to
obtain adaptive behaviour - Run-time access to performance related sensors
- Modifies packing parameters accordingly
10 / 16
11JBora Adaptive Message Packing Performance
- Throughput vs. clientstest application - 3
replicas
11 / 16
12Policy Implementation Notes
- interface DynamicPacking void
applyPolicy(PackingConfiguration,int) -
-
- PackingConfiguration class that handles message
packing parameters - int table of sensor measurements, one row
per sensor
12 / 16
13Policy Examples
- Constant policy Dummy Policy . Keeps message
packing parameters constant, as defined at
configuration time. - Max Throughput policy Accesses throughput sensor
measurements, and adjusts message packing degree
in order to increase message throughput. - CPU policy Accesses CPU sensor measurements,
and adjusts message packing degree in order to
decrease CPU usage
13 / 16
14Open Issues
Latency vs. clientstest application - 3 replicas
Packing Degree 10
- Tailoring policies to the application
- Developing new sensors is it worthy ?
14 / 16
15JBora Configuration
- JBora adaptability parameters
- packing interval
- packing degree
- packing dimension
- policy module class name
- Where to put the configuration file ?
- Who handles configuration parameters DOM ?
15 / 16
16Questions ?
16 / 16