Permalink
Browse files

- Updated release notes

- Fixed test failure due to https://issues.jboss.org/browse/JGRP-1330
  • Loading branch information...
1 parent edeac31 commit b12d4209b522f410293b83f2b789ae6f4173c2b4 Bela Ban committed Nov 17, 2011
View
@@ -6,17 +6,15 @@ API changes in 3.0.0
- Removed package org.jgroups.persistence and changed dependent demos accordingly (e.g. ReplicatedHashMap)
-- Removed all options except for Channel.LOCAL
-- Removed JChannel.getOpt()/setOpt()
-- Discarding of own messages can now be set via setDiscardOwnMessages(true)
+- Removed all options (JChannel.getOpt()/setOpt()), discarding of own messages can now be set via setDiscardOwnMessages(true)
- Removed package org.jgroups.mux (e.g. Multiplexer and MuxChannel). Use a shared transport instead. If you have to,
use classes from package org.jgroups.blocks.mux (only if you're an expert though !)
- Removed (J)ChannelFactory. Inject the channel yourself, e.g. through CDI
- Removed JChannel.receive(). Use a Receiver or ReceiverAdapter and JChannel.setReceiver(Receiver) to switch from a
- pull based approach of receiving messages to a push-based approach
+ pull based approach of receiving messages to a push based approach
- Removed JChannel.receive(), peek(), shutdown(), open(), returnState(), getAllStates(), blockOK()
View
@@ -3,7 +3,7 @@
---------------------------------------
Pre-release:
-- Do a cvs update -dP and commit all pending changes
+- Do a git pull origin master and commit all pending changes
- Run all unit tests: ./build clean all-tests reports
- Run the manual tests in doc/tests/ManualTests.txt
- Run the performance tests to see whether performance is about the same
@@ -12,20 +12,16 @@ Pre-release:
Release:
- Update the ReleaseNotes-xxx.txt for the given release
-- Set version in: Version.java, manifest.mf, build.xml and pom.xml
+- Set version in: Version.java, build.xml and pom.xml
* Note that the version needs to conform to the version standards, e.g. 2.6.2.GA or 2.6.4.CR2, 2.5.4.Beta1
-- Create a CVS tag: JGroups_x_y_z
-- Add tag information to wiki: http://wiki.jboss.org/wiki/Wiki.jsp?page=Branches
+- Create a Git tag: JGroups_x_y_z
- Create a distribution: ./build.sh jar
- - the distribution files are dist/jgroups-x.y.z.jar, dist/jgroups-sources.jar
+ - the distribution files are dist/jgroups-x.y.z.jar, dist/jgroups-sources.jar and dist/README
- Upload distribution files to web site:
- - Go to http://sourceforge.net/projects/javagroups/
- - Log in and pick http://sourceforge.net/project/admin/editpackages.php?group_id=6081
- - Add release to JGroups (new version)
- - Release notes are included in dist, change log obtained from JIRA
+ - Go to http://sourceforge.net/projects/javagroups/files/ (requires admin)
- Create PDF and HTML documentation: ./build.sh docs and upload to web site
- these files update the JGroups web page (http://www.jgroups.org/javagroupsnew/docs/index.html),
- specifically the links to manual and tutorial documentation
+ specifically the links to manual and tutorial documentation
- see JGroups/bin/upload_manual.sh
- Create javadoc: ./build.sh javadoc and upload to web site
- use process similar to pdf and html (script is bin/upload_javadocs.sh)
View
@@ -29,7 +29,7 @@ API changes
Not really a feature, however, this impacts application code using JGroups; some code will have to be changed as we
implemented a lot of the API changes we've always wanted to do, but couldn't due to backwards compatibility reasons.
API changes have really been the focus of 3.0; some work also went into optimizations for running in large clusters.
-More optimization work will be done in 3.1.
+More optimization work will be done in 3.0.x and 3.1.
The changes are described in https://github.com/belaban/JGroups/blob/master/doc/API_Changes.txt.
@@ -41,6 +41,28 @@ The is a cluster wide atomic counter, for details see the documentation at
http://www.jgroups.org/manual-3.x/html/user-building-blocks.html#CounterService
+JChannel: input stream constructor
+----------------------------------
+[https://issues.jboss.org/browse/JGRP-1349]
+
+A new JChannel can now be created by passing it an input stream to a config.
+
+
+UNICAST / UNICAST2: close idle connections
+------------------------------------------
+[https://issues.jboss.org/browse/JGRP-1384]
+
+Added property conn_expiry_timeout which closes idle connections after this timeout. Useful in large clusters, to
+reduce memory (each connection has a retransmit table).
+
+
+Add support for Amazon EC2 inter-region nodes (NAT support)
+-----------------------------------------------------------
+[https://issues.jboss.org/browse/JGRP-1388]
+
+Added external_addr to UDP, FD_SOCK and STATE_SOCK. This allows nodes behind a NAT to be accessed from other members.
+
+
Optimizations
@@ -68,6 +90,13 @@ The view is now omitted from the discovery response, this causes large messages
especially if we had a large cluster
+Make merging more scalable / robust
+-----------------------------------
+[https://issues.jboss.org/browse/JGRP-1379]
+
+Various optimizations with respect to large clusters, e.g. reducing the number of cluster wide calls made, decreasing
+the size of various merge-related messages, better handling of concurrent merges etc.
+
Bug fixes
@@ -103,6 +132,13 @@ Error starting shared transport causes future channels using it to fail
[https://issues.jboss.org/browse/JGRP-1356]
+RspFilter: incorrect implementation can block an RPC
+----------------------------------------------------
+[https://issues.jboss.org/browse/JGRP-1330]
+
+When an incorrect RspFilter doesn't terminate the RPC even though all responses have been received, the RPC is
+nevertheless terminated.
+
Manual
@@ -121,5 +157,5 @@ Vladimir Blagojevic, Toronto, Canada
Richard Achmatowicz, Toronto, Canada
Sanne Grinovero, Newcastle, Great Britain
-Oct 2011
+Nov 2011
@@ -881,7 +881,7 @@ for (int i = 0; i < runnerCount; ++i) {
Add protocol COUNTER to the top of the stack configuration
</listitem>
<listitem>
- Create an instanceof CounterService
+ Create an instance of CounterService
</listitem>
<listitem>
Create a new or get an existing named counter
@@ -39,7 +39,7 @@
* messages. Any messages sent after returning from this callback might get blocked by the FLUSH
* protocol. When the FLUSH protocol is done, and messages can be sent again, the FLUSH protocol
* will simply unblock all pending messages. If a callback for unblocking is desired, implement
- * {@link org.jgroups.ExtendedMembershipListener#unblock()}. Note that block() is the equivalent
+ * {@link org.jgroups.MembershipListener#unblock()}. Note that block() is the equivalent
* of reception of a BlockEvent in the pull mode.
*/
void block();
@@ -125,12 +125,11 @@ public void receiveResponse(Object response_value, Address sender, boolean is_ex
rsp.setException((Throwable)response_value);
else
rsp.setValue((T)response_value);
+ rsp.setReceived(true);
+ num_valid++;
}
- rsp.setReceived(responseReceived);
}
- if(responseReceived)
- num_valid++;
done=responsesComplete() || (rsp_filter != null && !rsp_filter.needMoreResponses());
if(responseReceived || done)
completed.signalAll(); // wakes up execute()
@@ -369,7 +369,7 @@ public void done(long req_id) {
else throw new RuntimeException(exception);
}
- if(!rsp.wasReceived())
+ if(!rsp.wasReceived() && !req.responseReceived())
throw new TimeoutException("timeout sending message to " + dest);
return rsp.getValue();
}
@@ -66,21 +66,22 @@ public void receiveResponse(Object response_value, Address sender, boolean is_ex
return;
if(!result.wasReceived()) {
num_received++;
- boolean responseReceived=(rsp_filter == null) || rsp_filter.isAcceptable(response_value, sender);
- if(is_exception && response_value instanceof Throwable)
- result.setException((Throwable)response_value);
- else
- result.setValue((T)response_value);
- result.setReceived(responseReceived);
- if(log.isTraceEnabled()) {
- StringBuilder sb=new StringBuilder("received response for request ");
- sb.append(req_id).append(", sender=").append(sender);
+ if(rsp_filter == null || rsp_filter.isAcceptable(response_value, sender)) {
if(is_exception && response_value instanceof Throwable)
- sb.append(", exception=");
+ result.setException((Throwable)response_value);
else
- sb.append(", val=");
- sb.append(response_value);
- log.trace(sb.toString());
+ result.setValue((T)response_value);
+ result.setReceived(true);
+ if(log.isTraceEnabled()) {
+ StringBuilder sb=new StringBuilder("received response for request ");
+ sb.append(req_id).append(", sender=").append(sender);
+ if(is_exception && response_value instanceof Throwable)
+ sb.append(", exception=");
+ else
+ sb.append(", val=");
+ sb.append(response_value);
+ log.trace(sb.toString());
+ }
}
}
done=responsesComplete() || (rsp_filter != null && !rsp_filter.needMoreResponses());
@@ -94,6 +95,8 @@ public void receiveResponse(Object response_value, Address sender, boolean is_ex
checkCompletion(this);
}
+ public boolean responseReceived() {return num_received >= 1;}
+
/**
* <b>Callback</b> (called by RequestCorrelator or Transport).
Oops, something went wrong.

0 comments on commit b12d420

Please sign in to comment.