Skip to content

Commit 9a5060e

Browse files
committed
Updating release notes
1 parent 2084232 commit 9a5060e

1 file changed

Lines changed: 171 additions & 0 deletions

File tree

doc/ReleaseNotes.txt

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,51 @@ Probe
9797
- Removal of protocols via regular expressions
9898

9999

100+
DELIVERY_TIME: new protocol to measure delivery time in the application
101+
-----------------------------------------------------------------------
102+
[https://issues.jboss.org/browse/JGRP-2101]
103+
104+
Exposes stats via JMX and probe
105+
106+
107+
RELAY2: sticky site masters
108+
---------------------------
109+
[https://issues.jboss.org/browse/JGRP-2112]
110+
111+
When we have multiple site masters, messages from the same member should always be handled by the same
112+
site master. This prevents reordering of messages at the receiver.
113+
114+
115+
Multiple elements in bind_addr
116+
------------------------------
117+
[https://issues.jboss.org/browse/JGRP-2113]
118+
119+
E.g.
120+
121+
<TCP
122+
bind_addr="match-interface:eth2,10.5.5.5,match-interface:en*,127.0.0.1"
123+
...
124+
/>
125+
126+
This tries to bind to eth2 first, then to 10.5.5.5, then to an interface that starts with en0, and
127+
finally to loopback.
128+
Useful when running in an environment where the IP addresses and/or interfaces are not known before.
129+
130+
131+
Multiple receiver threads in UDP
132+
--------------------------------
133+
[https://issues.jboss.org/browse/JGRP-2146]
134+
135+
Multiple threads can receive (and process) messages from a datagram socket, preventing queue buildups.
136+
137+
138+
139+
FRAG3
140+
-----
141+
[https://issues.jboss.org/browse/JGRP-2154]
142+
143+
144+
100145

101146

102147
Optimizations
@@ -160,6 +205,82 @@ the queue (contention) into a local queue (no contention) and then creates and s
160205
the local queue.
161206

162207

208+
Single thread pool
209+
------------------
210+
[https://issues.jboss.org/browse/JGRP-2099]
211+
212+
There's only a single thread pool for all typs of messages, reducing the maintenance overhead of 4 thread pools
213+
and the configuration required.
214+
The internal thread pool is still available (size to the number of cores), but not configurable.
215+
A ForkJoinPool can be used instead of the thread pool (which can be disabled as well).
216+
217+
218+
Timer: tasks can indicate that they will not block
219+
--------------------------------------------------
220+
[https://issues.jboss.org/browse/JGRP-2100]
221+
222+
If a task calls execute() with an argument blocking==false, the task will be executed by the timer's main thread,
223+
and not be passed on to the timer's thread pool. This reduces the number of threads needed and therefore the
224+
number of context switches.
225+
226+
227+
Headers are resized unnecessarily
228+
---------------------------------
229+
[https://issues.jboss.org/browse/JGRP-2120]
230+
231+
232+
ByteArrayDataOutputStream: expand more conservatively
233+
-----------------------------------------------------
234+
[https://issues.jboss.org/browse/JGRP-2124]
235+
236+
237+
Reading ints and longs creates unnecessary buffers
238+
--------------------------------------------------
239+
[https://issues.jboss.org/browse/JGRP-2125]
240+
241+
Ints and longs are read into a byte[] array first, then parsed. This was changed to read the values and add them
242+
to the resulting ints or longs.
243+
Should reduce overall memory allocation as ints and longs are used a lot in headers.
244+
245+
246+
Table.removeMan() creates unneeded temp list
247+
--------------------------------------------
248+
[https://issues.jboss.org/browse/JGRP-2126]
249+
250+
This method is used a lot in NAKACK2 and UNICAST3. The change was to read messages directly into the resulting
251+
MessageBatch instead of a temp list and from there into the batch.
252+
253+
254+
Reduce in-memory size of UnicastHeader3
255+
---------------------------------------
256+
[https://issues.jboss.org/browse/JGRP-2127]
257+
258+
Reduced size from 40 -> 32 bytes.
259+
260+
261+
Cache result of log.isTraceEnabled()
262+
------------------------------------
263+
[https://issues.jboss.org/browse/JGRP-2130]
264+
265+
This was done mainly for protocols where log.isTraceEnabled() was used a lot, such as TP, NAKACK2 or UNICAST3.
266+
Note that the log level can still be changed at runtime.
267+
268+
269+
Added MessageProcessingPolicy to define assigning of threads to messages or batches
270+
-----------------------------------------------------------------------------------
271+
[https://issues.jboss.org/browse/JGRP-2143]
272+
273+
This only applies only to regular (not OOB or internal) messages. Make sure that only one message per member is
274+
processed at a given time by the thread pool.
275+
This reduces the number of threads needed.
276+
277+
278+
UNICAST3 / NAKACK2: more efficient adding and removing of messages / batches to/from tables
279+
-------------------------------------------------------------------------------------------
280+
[https://issues.jboss.org/browse/JGRP-2150]
281+
282+
Simpler algorithm and removal of one lock (= less contention)
283+
163284

164285

165286

@@ -181,6 +302,56 @@ Although indepent protocols, the protocol ID was assigned by the superclass, so
181302
would get mixed up, leading to stuttering in the sending of credits.
182303

183304

305+
Flow control: replenish credits after message delivery
306+
------------------------------------------------------
307+
[https://issues.jboss.org/browse/JGRP-2084]
308+
309+
310+
MERGE3: merge is never triggered
311+
--------------------------------
312+
[https://issues.jboss.org/browse/JGRP-2092]
313+
314+
This is an edge case that was not covered before: every subgroup coordinator has some other member as coord:
315+
A: BAC
316+
B: CAB
317+
C: ABC
318+
319+
320+
321+
MPING: restart fails
322+
--------------------
323+
[https://issues.jboss.org/browse/JGRP-2116]
324+
325+
326+
327+
UNICAST3 drops all messages until it receives one with first==true
328+
------------------------------------------------------------------
329+
[https://issues.jboss.org/browse/JGRP-2131]
330+
331+
This caused a bug in ASYM_ENCRYPT.
332+
333+
334+
ASYM_ENCRYPT: message batches are not handled correctly
335+
-------------------------------------------------------
336+
[https://issues.jboss.org/browse/JGRP-2149]
337+
338+
339+
SYM_ENCRYPT: allow for other keystores besides JCEKS
340+
----------------------------------------------------
341+
[https://issues.jboss.org/browse/JGRP-2151]
342+
343+
E.g. pcks#12 or jks
344+
345+
346+
ASYM_ENCRYPT encrypts an empty buffer into a null buffer
347+
--------------------------------------------------------
348+
[https://issues.jboss.org/browse/JGRP-2153]
349+
350+
This caused an NPE.
351+
352+
353+
354+
184355

185356
Manual
186357
======

0 commit comments

Comments
 (0)