/
ReleaseNotes-2.2.8.txt
72 lines (58 loc) · 3.12 KB
/
ReleaseNotes-2.2.8.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Release Notes JGroups 2.2.8
===========================
Version: $Id: ReleaseNotes-2.2.8.txt,v 1.2 2007/08/20 11:15:39 belaban Exp $
Author: Bela Ban
Fast Message marshalling
------------------------
- Replaced Externalizable for Message with Streamable, resulting in much faster marshalling and
reduced size of marshalled messages, allowing for more messages to be sent / second
- org.jgroups.tests.MessageSerializationTest2 can be used to compare Externalizable with
Streamable:
- For 50000 messages, size reduction is almost 50%, marshalling 150% faster and unmarshalling 650% faster
flags="-Xmx500M -Xms500M -XX:NewRatio=1 -XX:+AggressiveHeap -verbose:gc
-XX:+DisableExplicitGC -XX:ThreadStackSize=32 -XX:CompileThreshold=100"
java $flags org.jgroups.tests.MessageSerializationTest2 -num 100000 -add_headers false
serialized size=8588935, streamable size=5788899, streamable is 48 percent smaller
serialized write=831, streamable write=331, streamable write is 151 percent faster
serialized read=1352, streamable read=180, streamable read is 651 percent faster
Performance numbers
-------------------
- Real tests will be produced in 2.2.9, using org.jgroups.tests.perf.Test
- With JGroups/conf/fc-fast-minimalthreads.xml, I got ca 5000 1K messages on my laptop:
(2 members, 1 sender, 1 receiver, 1 CPU laptop, 20000 1K msgs, 100Mbps switch)
- April 20 2005: **5006** msgs/sec (on 192.168.5.1):
-Xmx500M -Xms500M -XX:NewRatio=1 -XX:+AggressiveHeap -verbose:gc -XX:+DisableExplicitGC
-XX:ThreadStackSize=32 -XX:CompileThreshold=100:
combined: num_msgs_expected=20000, num_msgs_received=20000 (loss rate=0%), received=20MB,
time=3995ms, msgs/sec=5006.26, throughput=5.01MB/sec
UDP
----------
- bind_to_all_interfaces="true" now allows to listen for multicast messages on *all* available interfaces.
This requires 1.4, under 1.3 the default interface will be selected
MPING
-----
- MPING allows for a combination where node discovery in a cluster uses multicast, but the real transport uses
TCP. This is an addition to TCP:TCPPING and TCP:TCPGOSSIP. Example (short version of JGroups/conf/mping.xml):
<config>
<TCP bind_addr="192.168.5.1"
start_port="7800" sock_conn_timeout="500"
loopback="true"/>
<MPING timeout="2000"
bind_to_all_interfaces="true"
mcast_addr="228.8.8.8"
mcast_port="7500"
ip_ttl="8"
num_initial_members="2"
num_ping_requests="1"/>
<FD timeout="2000" max_tries="3"/>
<pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800" />
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="20000"
down_thread="false" max_bytes="0" up_thread="false"/>
<pbcast.GMS print_local_addr="true" join_timeout="5000" join_retry_timeout="2000" shun="true"/>
</config>
Concurrent startup
------------------
- When multiple members are started simultaneously, and no other member is running yet,
they form singleton groups, and merge after some time.
The new version avoids this merge, so merging occurs only after network partitions now, never
on concurrent startup of initial members