History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CACHE-198
Type: Task Task
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Andres March
Reporter: Lars Torunski
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OSCache

Update to JGroups 2.2.8

Created: 28/Sep/05 04:12 PM   Updated: 10/Jan/07 03:51 PM
Component/s: Listeners
Affects Version/s: 2.2 RC
Fix Version/s: 2.2 final


 Description  « Hide
We should update OSCache to JGroups 2.2.8: http://sourceforge.net/project/showfiles.php?group_id=6081

 All   Comments   Change History      Sort Order:
Lars Torunski - [29/Sep/05 12:59 AM ]
Changes since 2.2.7:

Release Notes JGroups 2.2.8
===========================

Version: $Id: ReleaseNotes-2.2.8.txt,v 1.1 2005/04/26 13:45:09 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" max_xmit_size="60000"/>
    <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









Changes:
Version 2.2.8
-------------

- Fixed problem with PingWaiter/PingSender in applets (http://jira.jboss.com/jira/browse/JGRP-86)
  (bela Ma 19 2005)

- Created branch JGROUPS_2_2_8_JDK_1_3 off of JGROUPS_2_2_8
- Removed all JDK 1.4 dependent code
  (bela May 17 2005)

- Created branch JGROUPS_2_2_8
  (bela April 29 2005)

- Fixed problem with deadlock detection (e.g. in RpcDispatcher). Caller always passed new call stack,
  rather than adding to existing call stack
  (bela April 25 2005)

- Removed xerces JARs
  (bela April 25 2005)

- UDP: fixed incorrect marshalling of IpAddresses with additional_data
  (http://jira.jboss.com/jira/browse/JGRP-63)
  (bela April 23 2005)

- Replaced getClass().getClassLoader() with Thread.currentThread().getContextClassLoader().
  JIRA issue http://jira.jboss.com/jira/browse/JGRP-34
  (bela April 23 2005)

- UDP: synchronization around message marshalling and sending, non-sync could lead to intermingled
  byte arrays at the receiver, due to concurrent access to out_stream
  (bela April 20 2005)

- Fixed bug where IpAddress.additional_data was not marshalled
  (bela April 19 2005)

- Removed RWLock, replaced uses with ReadWriteLock from util.concurrent
  (bela April 8 2005)

- Removed TransactionalHashtable (obsolete, replaced by JBossCache)
  (bela April 8 2005)

- GMS/CoordGmsImpl: added merge_leader flag. If enabled, the member can initiate a merge although
  it is not the coordinator
  (bela April 7 2005)

- UDP: bind_to_all_interfaces now allows the multicast receiver socket to bind to all
  available interfaces, only supported under JDK 1.4 and up
  (bela April 1 2005)

- MPING: binds now to all interfaces (bind_to_all_interfaces has to be to true), only supported under
  JDK 1.4 and higher
  (bela April 1 2005)

- Fixed stopping outgoing packet handler (http://jira.jboss.com/jira/browse/JGRP-49)
  [fix by Steve Nicolai]
  (bela April 1 2005)

- Added MPING. Allows for multicast discovery on a TCP-based stack
  (bela March 31 2005)

- ConnectionTable:
  - Individual thread per Connection so send() doesn't block
  - timeout for socket creation (sock_conn_timeout)
  (bela March 24 2005)

- TCPPING: remove myself from pinged members
  (bela March 23 2005)

- Added patch by David Orrell (external addresses for TCP/ConnectionTable)
  (bela March 17 2005)

- Fixed JGRP-42 (MethodCall doesn't correctly handle inheritance)
  org.jgroups.blocks.MethodCall was updated to walk the class hierarchy and locate method not only
  in the current class, but also in the superclasses and superinterfaces. There is a new test that
  contains use cases: tests/junit/org/jgroups/blocks/MethodCallTest.java
  (ovidiuf Feb 18 2005)

- org.jgroups.util.Rsp: changed the sender's type from Object to Address.
  (ovidiuf Jan 19 2005)

- Modified the RpcDispatcher's API to allow more than one ChannelListener to be registered
  to the underlying JChannel.
  (ovidiuf Jan 19 2005)

- Added MessageDispatcher.getMessageListener() to make possible to multiplex more than one
  MessageListeners in top of an already configured MessageDispatcher/RpcDispatcher.
  (ovidiuf Jan 19 2005)

- Implemented JGRP-15 (Concurrent startup of initial members without merging): when multiple members are started
  simultaneously, and no other member is running yet, they form singleton groups, and merge after some time.
  GOAL: elect a coordinator out of all concurrent (client-)members and avoid a merge.
  (bela Jan 5 2005)

- Fixed JGRP-10 (incorrect computation of wait time in waiting loops)
  (bela Dec 31 2004, on suggestion from Zac Hansen)

- Added system property ignore.bind.address, which ignores the system property bind.address
  (bela Dec 12 2004)

- Changed Util.objectFromByteBuffer() to use ContextObjectInputStream. This uses the classloader of the caller
  rather than the system classloader
  (bela Nov 29 2004)

- MethodCall: changed Class.getMethod() to Class.getDeclaredMethod(). This allows for invocation of non-public
  methods, e.g. private methods from within the same class, or package-private methods from within the same package
  (bela Nov 1 2004)

- Added leading byte for Message to indicate which fields are null and non-null. Saves 5 bytes/msg
  (bela Oct 8 2004)

- Dest address is not marshalled any longer; saves 10 bytes/msg
  (bela Oct 8 2004)

- Implemented Streamable for more classes (headers)
  (bela Oct 8 2004)

- Changed FD's BroadcastTask: this could *not* fire in the case where a task was stopped and immediately
  restarted
  (bela Oct 7 2004)

- Fixed incorrect merging in TUNNEL/GossipClient
  (bela Oct 7 2004)

- Added support for bind.address system property in FD_SOCK
  (bela Oct 6 2004)

- Fix for hanging merge when coordinator/participant crashes or shuns-and-reconnects during merge
  (bela Oct 5 2004)

- Removed object serialization almost entirely; replaced it with Streamable. Changed Message, IpAddress and some
  Header subclasses (not yet all) to support Streamable. UDP now uses Streamable both for Message and Message lists
  (used in bundling). Rough performance increase ca 30% (size of serialized data ca. 30% smaller to).
  (bela Oct 4 2004)

- UDP: removed 1 copy operation per sent message by using ExposedByteArrayOutputStream rather than ByteArrayOutputStream.
  ByteArrayOutputStream.toByteArray() copies the buffer, ExposedByteArrayOutputStream.getRawBuffer() returns a
  *reference* to the raw buffer plus and offset and length. This is then passed to the resulting DatagramPacket
  (bela Sept 26 2004)

- Added ExposedByteArrayOutputStream (exposes the raw buffer), avoids copying the underlying byte buffer
  (bela Set 26 2004)

- Added Magic{Input,Output}ObjectStream. They use the magic numbers mapping table to provide efficient
  class descriptors on serialization
  (bela Sept 24 2004)

- Added Simulator and FCTest
  (bela Sept 23 2004)

- More IntelliJ Inspector changes
  (bela Sept 23 2004)

- Various fixes for findbugs and IntelliJ's Inspector
  (bela Sept 22 2004)

- Added CondVar and CondVarTest
  (bela Sept 22 2004)

- Removed Ensemble
  (bela Sept 21 2004)

- Removed some unneeded unit tests
  (bela Sept 21 2004)

- Modified Promise.getResult(): timeout is now implemented correctly. getResultWithTimeout() now also throws
  a TimeoutException
  (bela Sept 16 2004)

- pbcast.STATE_TRANSFER/STABLE/JChannel: modified state transfer; timeout is now passed down
  to the protocols
  (bela Sept 16 2004)

- Added MERGE3
  (bela Sept 15 2004)

- FD_SOCK: added sending message to signal regular termination. Plus, each connection is handled
  on a separate thread
  (bela Sept 14 2004)

- UDP: added code to prevent port reuse when using ephemeral ports, and ports are reused on some
  operating systems (e.g. Win2K). Use num_ports_used > 0 to enable this feature
  (bela Sept 13 2004)

- FD_SOCK: added bind address for server socket
  (bela Sept 10 2004)