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
102147Optimizations
@@ -160,6 +205,82 @@ the queue (contention) into a local queue (no contention) and then creates and s
160205the 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
181302would 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
185356Manual
186357======
0 commit comments