PageRenderTime 37ms CodeModel.GetById 16ms app.highlight 14ms RepoModel.GetById 1ms app.codeStats 0ms

/hazelcast-documentation/src/main/docbook/manual/content/misc/ReleaseNotes.xml

https://bitbucket.org/gabral6_gmailcom/hazelcast
XML | 955 lines | 915 code | 25 blank | 15 comment | 0 complexity | 120982916313fa39e9e1b8f826cbb254 MD5 | raw file
  1<?xml version='1.0' encoding='UTF-8'?>
  2<!--
  3  ~ Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
  4  ~
  5  ~ Licensed under the Apache License, Version 2.0 (the "License");
  6  ~ you may not use this file except in compliance with the License.
  7  ~ You may obtain a copy of the License at
  8  ~
  9  ~ http://www.apache.org/licenses/LICENSE-2.0
 10  ~
 11  ~ Unless required by applicable law or agreed to in writing, software
 12  ~ distributed under the License is distributed on an "AS IS" BASIS,
 13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  ~ See the License for the specific language governing permissions and
 15  ~ limitations under the License.
 16  -->
 17
 18<sect1 xml:id="ReleaseNotes" version='5.0' xmlns='http://docbook.org/ns/docbook'
 19       xmlns:xi="http://www.w3.org/2001/XInclude"
 20       xmlns:xlink="http://www.w3.org/1999/xlink"
 21       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 22       xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
 23       http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd">
 24    <title>Release Notes</title>
 25    <para>Please see,
 26        <link xlink:href="#Todo">Todo</link>
 27        page for planned features.
 28    </para>
 29
 30    <para>
 31        <emphasis role="bold">2.5</emphasis>
 32        <itemizedlist>
 33            <listitem>
 34                <para><emphasis role="italic">New Feature:</emphasis>
 35                    Java Client has now 'near-cache' support. See <link xlink:href="#NativeClientNearCache">Near Cache on Java Client</link>
 36                for additional details.</para>
 37            </listitem>
 38            <listitem>
 39                <para><emphasis role="italic">New Feature:</emphasis>
 40                    Management Center alert system, receive alerts based on custom filters. See
 41                    <link xlink:href="#MC_Alerts">Management Center Alerting System</link>
 42                    for additional details.</para>
 43            </listitem>
 44            <listitem>
 45                <para>Management Center has now better support for Hazelcast cluster running in OSGI environment.</para>
 46            </listitem>
 47            <listitem>
 48                <para>Nodes can be easily shutdown or restarted using Management Center interface.</para>
 49            </listitem>
 50            <listitem>
 51                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=17&amp;state=closed">
 52                    Fixed issues:</link></para>
 53                <para>377, 386, 389, 392, 394</para>
 54            </listitem>
 55        </itemizedlist>
 56    </para>
 57
 58    <para>
 59        <emphasis role="bold">2.4.1</emphasis>
 60        <itemizedlist>
 61            <listitem>
 62                <para>Added Hibernate 2nd level cache local/invalidation mode.
 63                    See <code>com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory</code>.
 64                </para>
 65            </listitem>
 66            <listitem>
 67                <para>Added quick clear feature for maps.
 68                </para>
 69            </listitem>
 70            <listitem>
 71                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=15&amp;state=closed">
 72                    Fixed issues:</link></para>
 73                <para>304, 308, 312, 315, 321, 322, 323, 328, 331, 333, 334, 337, 338, 339, 347, 349, 351,
 74                353, 354, 356, 359, 368</para>
 75            </listitem>
 76        </itemizedlist>
 77    </para>
 78
 79    <para>
 80        <emphasis role="bold">2.4</emphasis>
 81        <itemizedlist>
 82            <listitem>
 83                <para>Client threads is no longer fixed size,
 84                    now on it is going to use internal Hazelcast cached thread pool.
 85                </para>
 86            </listitem>
 87            <listitem>
 88                <para>Added ability to restrict outbound ports that Hazelcast uses to connect other nodes.
 89                    See <link xlink:href="#OutboundPorts">OutboundPorts</link> documentation.
 90                </para>
 91            </listitem>
 92            <listitem>
 93                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=15&amp;state=closed">
 94                    Fixed issues:</link></para>
 95                <para>168, 251, 260, 262, 267, 268, 269, 270, 274, 275, 276, 277, 279, 282, 284, 288, 290, 292, 301</para>
 96            </listitem>
 97        </itemizedlist>
 98    </para>
 99
100    <para>
101        <emphasis role="bold">2.3.1</emphasis>
102        <itemizedlist>
103            <listitem>
104                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=13&amp;state=closed">
105                    Fixed issues:</link></para>
106                <para>256, 258</para>
107            </listitem>
108            <listitem>
109                <para>Changed
110                    <link xlink:href="#hazelcast.partition.migration.interval">
111                        <code>hazelcast.partition.migration.interval</code>
112                    </link>
113                    value from 1 to 0.
114                </para>
115            </listitem>
116            <listitem>
117                <para>
118                    <code>ILock.newCondition()</code> now throws <code>UnsupportedOperationException</code>.
119                </para>
120            </listitem>
121        </itemizedlist>
122    </para>
123
124    <para>
125        <emphasis role="bold">2.3</emphasis>
126        <itemizedlist>
127            <listitem>
128                <para>Changed <link xlink:href="#hazelcast.max.operation.timeout">
129                    <code>hazelcast.max.operation.timeout</code></link> unit from <emphasis>seconds</emphasis>
130                     to <emphasis>milliseconds</emphasis>.</para>
131            </listitem>
132            <listitem>
133                <para>Added <link xlink:href="#hazelcast.max.concurrent.operation.limit">
134                    <code>hazelcast.max.concurrent.operation.limit</code></link> parameter to be able to limit
135                    number of concurrent operations can be submitted to Hazelcast.</para>
136            </listitem>
137            <listitem>
138                <para>
139                    Added <link xlink:href="#hazelcast.backup.redo.enabled">
140                        <code>hazelcast.backup.redo.enabled</code></link> parameter to enable/disable redo for
141                    backup operations.
142                </para>
143            </listitem>
144            <listitem>
145                <para>Added <emphasis>MultiMap and Distributed ExecutorService statistics</emphasis> to
146                    <link xlink:href="http://hazelcast.com/mancenter.jsp">Management Center</link> application.</para>
147            </listitem>
148            <listitem>
149                <para>
150                    <code>MigrationListener</code> has now an additional method to receive failed migration events;
151                    <code>void migrationFailed(MigrationEvent migrationEvent)</code>.
152                </para>
153            </listitem>
154            <listitem>
155                <para>
156                    <code>ItemEvent</code> has now an additional method returning <literal>Member</literal> firing
157                    that event; <code>public Member getMember()</code>.
158                </para>
159            </listitem>
160            <listitem>
161                <para>
162                    Improved out of memory (OOM) error detection and handling. Now it is possible to register custom hook
163                    when <code>OutOfMemoryError</code> is thrown.
164                    See <code>Hazelcast.setOutOfMemoryHandler(OutOfMemoryHandler)</code> and <code>OutOfMemoryHandler</code>
165                    javadocs for additional details.
166                </para>
167            </listitem>
168            <listitem>
169                <para>
170                    Fixed some issues related to domain name handling and networking/join.
171                </para>
172            </listitem>
173            <listitem>
174                <para>
175                    During cluster merge after a network split-brain, merging side will now fire <code>MERGING</code>
176                    and <code>MERGED</code> before and after <code>RESTARTING</code> and <code>RESTARTED</code>
177                    <code>LifecycleEvent</code>s.
178                </para>
179            </listitem>
180            <listitem>
181                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=12&amp;state=closed">
182                    Fixed issues:</link></para>
183                <para>167, 182, 188, 209, 217, 218, 220, 222, 223, 225, 226, 227, 228, 229,
184                    230, 233, 234, 235, 237, 241, 243, 244, 247, 250</para>
185            </listitem>
186        </itemizedlist>
187    </para>
188
189    <para>
190        <emphasis role="bold">2.2</emphasis>
191        <itemizedlist>
192            <listitem>
193                <para>Improved redo logs and added max call/operation timeout. See configuration properties
194                    <link xlink:href="#hazelcast.max.operation.timeout"><code>hazelcast.max.operation.timeout</code></link>
195                    and <link xlink:href="#hazelcast.redo.giveup.threshold"><code>hazelcast.redo.giveup.threshold</code></link>
196                    </para>
197            </listitem>
198            <listitem>
199                <para>Improved domain name handling; Hazelcast will use defined addresses/domain-names in
200                TCP-IP Config as they are, without resolving an IP address.</para>
201            </listitem>
202            <listitem>
203                <para>Added <emphasis>Cluster Health Check</emphasis> to
204                    <link xlink:href="http://hazelcast.com/mancenter.jsp">Management Center</link> application.</para>
205            </listitem>
206            <listitem>
207                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=5&amp;state=closed">
208                    Fixed issues:</link></para>
209                <para>39, 93, 152, 153, 163, 164, 169</para>
210            </listitem>
211        </itemizedlist>
212    </para>
213
214    <para>
215        <emphasis role="bold">2.1.3</emphasis>
216        <itemizedlist>
217            <listitem>
218                <para>Fixed join and split brain issues. Improved domain name handling.</para>
219            </listitem>
220            <listitem>
221                <para>Fixed host aware partition group when all members are lite but one.</para>
222            </listitem>
223            <listitem>
224                <para>Fixed jmx management service dead-lock issue.</para>
225            </listitem>
226            <listitem>
227                <para>Fixed IMap replace-if-same and and remove-if-same concurrency issues.</para>
228            </listitem>
229            <listitem>
230                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=7&amp;state=closed">Fixed issues:</link></para>
231                <para>176, 177, 179, 181, 183, 185, 186, 189, 195, 196, 198</para>
232            </listitem>
233        </itemizedlist>
234    </para>
235
236    <para>
237        <emphasis role="bold">2.1.2</emphasis>
238        <itemizedlist>
239            <listitem>
240                <para>Fixed interruption handling to avoid dead-locks and inconsistency.
241                    See configuration property <code>hazelcast.force.throw.interrupted.exception</code>
242                    in <link xlink:href="#ConfigurationProperties">ConfigurationProperties</link> page.</para>
243            </listitem>
244            <listitem>
245                <para>Replaced ExecutorService used by migration process with a custom one.</para>
246            </listitem>
247            <listitem>
248                <para>Fixed ExecutorService a memory leak during executor thread termination.</para>
249            </listitem>
250            <listitem>
251                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=6&amp;state=closed">Fixed issues:</link></para>
252                <para>161, 174</para>
253            </listitem>
254        </itemizedlist>
255    </para>
256
257    <para>
258        <emphasis role="bold">2.1.1</emphasis>
259        <itemizedlist>
260            <listitem>
261                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=4&amp;state=closed">Fixed issues:</link></para>
262                <para>73, 142, 146, 148, 149, 153, 158, 162, 163, 164</para>
263            </listitem>
264            <listitem>
265                <para><link xlink:href="https://github.com/hazelcast/hazelcast/issues?milestone=3&amp;state=closed">
266                    Fixed issues from 2.0.4 branch:</link></para>
267                <para>96, 98, 131, 132, 135, 140, 166</para>
268            </listitem>
269        </itemizedlist>
270    </para>
271
272    <para>
273        <emphasis role="bold">2.1</emphasis>
274        <itemizedlist>
275            <listitem>
276                <para><link xlink:href="#IPv6">IPv6 Support</link>: Hazelcast now supports IPv6 addresses seamlessly.
277                </para>
278            </listitem>
279
280            <listitem>
281                <para><link xlink:href="#MapBackup">Async backup support.</link>
282                </para>
283            </listitem>
284
285            <listitem>
286                <para><link xlink:href="#SpringCache">Spring Cache</link> support: Hazelcast can be used as
287                    <link xlink:href="http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html">
288                        Spring Cache
289                    </link> provider.
290                </para>
291            </listitem>
292
293            <listitem>
294                <para><link xlink:href="#SpringContext">Spring Dependency Injection</link> support: Hazelcast can apply bean properties
295                    or to apply factory callbacks such as <code>ApplicationContextAware</code>, <code>BeanNameAware</code>
296                    or to apply bean post-processing such as <code>InitializingBean</code>, <code>@PostConstruct</code> like annotations
297                    while using Hazelcast distributed <code>ExecutorService</code> or <code>DistributedTask</code>s or more
298                    generally any Hazelcast managed object.
299                </para>
300            </listitem>
301
302            <listitem>
303                <para>Persistence support with Spring-Data <link xlink:href="#SpringMongoDB">MongoDB</link>
304                    and <link xlink:href="#SpringJPA">JPA</link> integration.
305                </para>
306            </listitem>
307
308            <listitem>
309                <para>
310                    <literal>Member.getUuid()</literal> will return UUID for node.
311                </para>
312            </listitem>
313
314            <listitem>
315                <para><link xlink:href="#HttpSessionClustering">Improved session clustering configuration.</link>
316                </para>
317            </listitem>
318
319            <listitem>
320                <para>Fixed issues:
321
322                    <itemizedlist>
323                        <listitem>
324                            <para> <link xlink:href="http://code.google.com/p/hazelcast/issues/list">Google Code</link></para>
325                            <para>809, 811, 816, 818</para>
326                        </listitem>
327                        <listitem>
328                            <para> <link xlink:href="https://github.com/hazelcast/hazelcast/issues">Github</link></para>
329                            <para>6, 7, 92, 98, 99, 101, 102, 103, 104, 108, 109, 110, 114, 116, 117, 118, 119, 120, 126, 127, 128,
330                                130, 131, 132, 134, 135</para>
331                        </listitem>
332                    </itemizedlist>
333                </para>
334            </listitem>
335        </itemizedlist>
336    </para>
337
338    <para>
339        <emphasis role="bold">2.0</emphasis>
340        <itemizedlist>
341            <listitem>
342                <para>New Elastic Memory<superscript>(Enterprise Edition Only)</superscript>: By default, Hazelcast
343                    stores your distributed data (map entries, queue items) into Java heap which is subject to garbage
344                    collection. As your heap gets bigger, garbage collection might cause your application to pause tens
345                    of seconds, badly effecting your application performance and response times. Elastic Memory is
346                    Hazelcast with off-heap memory storage to avoid GC pauses. Even if you have terabytes of cache
347                    in-memory with lots of updates, GC will have almost no effect; resulting in more predictable latency
348                    and throughput.
349                </para>
350            </listitem>
351
352            <listitem>
353                <para>Security Framework<superscript>(Enterprise Edition Only)</superscript>: Hazelcast Security is JAAS
354                    based pluggable security framework which can be used to authenticate both cluster members and
355                    clients and do access control checks on client operations. With the security framework, take control
356                    of who can be part of the cluster or connect as client and which operations are allowed or not.
357                </para>
358            </listitem>
359
360            <listitem>
361                <para>Native C# Client<superscript>(Enterprise Edition Only)</superscript>: Just like our Native Java
362                    Client, it supports all map, multimap, queue, topic operations including listeners and queries.
363                </para>
364            </listitem>
365
366            <listitem>
367                <para>Distributed Backups: Data owned by a member will be evenly backed up by all the other members. In
368                    other word, every member takes equal responsibility to backup every other node. This leads to better
369                    memory usage and less influence in the cluster when you add/remove nodes. The new backup system
370                    makes it possible to form backup-groups so that you can have backups and owners fall into different
371                    groups.
372                </para>
373            </listitem>
374            <listitem>
375                <para>Parallel IO: Number of socket selector threads can be configured. You can have more IO threads, if
376                    you have good number of CPU/cores and high-throughput network.
377                </para>
378            </listitem>
379            <listitem>
380                <para>Connection Management: Hazelcast 2.0 is more tolerant to connection failures. On connection
381                    failure it tries to repair it
382                    before declaring the member as dead. So now it is ok to have short socket disconnections… No problem
383                    if your virtual server migrates to a new host.
384                </para>
385            </listitem>
386            <listitem>
387                <para>Listeners such as migration, membership and map indexes can be added with configuration.</para>
388            </listitem>
389            <listitem>
390                <para>New Event Objects: Event Listeners for Queue/List/Set/Topic were delivering the item itself on
391                    event methods. That’s
392                    why the items had to be deserialized by Hazelcast Threads before invoking the listeners. Sometimes
393                    this was causing class loader problems too. With 2.0, we have introduced new event containers for
394                    Queue/List/Set and Topic just like Map has EntryEvent. The new listeners now receive ItemEvent and
395                    Message objects respectively. The actual items are deserialized only if you call the appropriate get
396                    method on the event objects. This is where we brake the compatibility with the older versions of
397                    Hazelcast.
398                </para>
399            </listitem>
400            <listitem>
401                <para>ClientConfig API: We had too many of factory methods to instantiate a HazelcastClient. Now all we
402                    need is<literal>HazelcastClient.newHazelcastClient(ClientConfig)</literal>.
403                </para>
404            </listitem>
405            <listitem>
406                <para>SSL communication support among cluster nodes.
407                </para>
408            </listitem>
409            <listitem>
410                <para>Distributed MultiMap value collection can be either List or Set.
411                </para>
412            </listitem>
413            <listitem>
414                <para>SuperClient is renamed to LiteMember to avoid confusion. Be careful! It is a member, not a
415                    client.
416                </para>
417            </listitem>
418            <listitem>
419                <para>New
420                    <literal>IMap.set (key, value, ttl, TimeUnit)</literal>
421                    implementation, which is optimized
422                    <literal>put(key, value)</literal>
423                    operation as set doesn’t return the old value.
424                </para>
425            </listitem>
426
427            <listitem>
428                <para>
429                    <literal>HazelcastInstance.getLifecycleService().kill()</literal>
430                    will forcefully kill the node. Useful for testing.
431                </para>
432            </listitem>
433            <listitem>
434                <para><literal>forceUnlock</literal>, to unlock the locked entry from any node and any thread regardless
435                    of the owner.
436                </para>
437            </listitem>
438            <listitem>
439                <para>Enum type query support..
440                    <literal>new SqlPredicate (“level = Level.WARNING”)</literal>
441                    for example
442                </para>
443            </listitem>
444            <listitem>
445                <para>Fixed issues: 430, 459, 471, 567, 574, 582, 629, 632, 646, 666, 686, 669, 690, 692, 693, 695, 698,
446                    705, 708,
447                    710, 711, 712, 713, 714, 715, 719 , 721, 722, 724, 727, 728, 729, 730, 731, 732, 733, 735, 738, 739,
448                    740, 741, 742, 747,
449                    751, 752, 754, 756, 758, 759, 760, 761, 765, 767, 770, 773, 779, 781, 782, 783, 787, 790, 795, 796
450                </para>
451            </listitem>
452        </itemizedlist>
453    </para>
454
455    <para>
456        <emphasis role="bold">1.9.4</emphasis>
457        <itemizedlist>
458            <listitem>
459                <para>New
460                    <link xlink:href="#WanReplication">WAN Replication</link>
461                    (synchronization of separate active clusters)
462                </para>
463            </listitem>
464            <listitem>
465                <para>New
466                    <link xlink:href="#DataAffinity">Data Affinity</link>
467                    (co-location of related entries) feature.
468                </para>
469            </listitem>
470            <listitem>
471                <para>New
472                    <link xlink:href="#EC2AutoDiscovery">EC2 Auto Discovery</link>
473                    for your Hazelcast cluster
474                    running on Amazon EC2 platform.
475                </para>
476            </listitem>
477            <listitem>
478                <para>New
479                    <link xlink:href="http://www.hazelcast.com/docs/1.9.4/javadoc/com/hazelcast/core/ICountDownLatch.html">
480                        Distributed CountDownLatch implementation.
481                    </link>
482                </para>
483            </listitem>
484            <listitem>
485                <para>New
486                    <link xlink:href="http://www.hazelcast.com/docs/1.9.4/javadoc/com/hazelcast/core/ISemaphore.html">
487                        Distributed Semaphore implementation.
488                    </link>
489                </para>
490            </listitem>
491            <listitem>
492                <para>Improvement: Distribution contains HTML and PDF documentation besides Javadoc.</para>
493            </listitem>
494            <listitem>
495                <para>Improvement: Better TCP/IP and multicast join support. Handling more edge cases like
496                    multiple nodes starting at the same time.
497                </para>
498            </listitem>
499            <listitem>
500                <para>Improvement: Memcache protocol: Better integration between Java and Memcache clients.
501                    Put from memcache, get from Java client.
502                </para>
503            </listitem>
504            <listitem>
505                <para>Monitoring Tool is removed from the project.</para>
506            </listitem>
507            <listitem>
508                <para>200+ commits 25+ bug fixes and several other enhancements.</para>
509            </listitem>
510        </itemizedlist>
511        <emphasis role="bold">1.9.3</emphasis>
512        <itemizedlist>
513            <listitem>
514                <para>Re-implementation of distributed queue.
515                    <itemizedlist>
516                        <listitem>
517                            <para>Configurable backup-count and synchronous backup.</para>
518                        </listitem>
519                        <listitem>
520                            <para>Persistence support based on backing MapStore</para>
521                        </listitem>
522                        <listitem>
523                            <para>Auto-recovery from backing MapStore on startup.</para>
524                        </listitem>
525                    </itemizedlist>
526                </para>
527            </listitem>
528            <listitem>
529                <para>Re-implementation of distributed list supporting index based operations.
530                </para>
531            </listitem>
532            <listitem>
533                <para>New distributed semaphore implementation.</para>
534            </listitem>
535            <listitem>
536                <para>Optimized
537                    <literal>IMap.putAll</literal>
538                    for much faster bulk writes.
539                </para>
540            </listitem>
541            <listitem>
542                <para>New
543                    <literal>IMap.getAll</literal>
544                    for bulk reads which is calling
545                    <literal>MapLoader.loadAll</literal>
546                    if necessary.
547                </para>
548            </listitem>
549            <listitem>
550                <para>New
551                    <literal>IMap.tryLockAndGet</literal>
552                    and
553                    <literal>IMap.putAndUnlock</literal>
554                    API
555                </para>
556            </listitem>
557            <listitem>
558                <para>New
559                    <literal>IMap.putTransient</literal>
560                    API for storing only in-memory.
561                </para>
562            </listitem>
563            <listitem>
564                <para>New
565                    <literal>IMap.addLocalEntryListener()</literal>
566                    for listening locally
567                    owned entry events.
568                </para>
569            </listitem>
570            <listitem>
571                <para>New
572                    <literal>IMap.flush()</literal>
573                    for flushing the dirty entries into
574                    MapStore.
575                </para>
576            </listitem>
577            <listitem>
578                <para>New
579                    <literal>MapLoader.getAllKeys</literal>
580                    API for auto-pre-populating the
581                    map when cluster starts.
582                </para>
583            </listitem>
584            <listitem>
585                <para>Support for min. initial cluster size to enable equally partitioned start.
586                </para>
587            </listitem>
588            <listitem>
589                <para>Graceful shutdown.</para>
590            </listitem>
591            <listitem>
592                <para>Faster dead-member detection.</para>
593            </listitem>
594        </itemizedlist>
595        <emphasis role="bold">1.9</emphasis>
596        <itemizedlist>
597            <listitem>
598                <para>Memcache interface support. Memcache clients written in any language can
599                    access Hazelcast cluster.
600                </para>
601            </listitem>
602            <listitem>
603                <para>RESTful access support.
604                    <code>http://&lt;ip&gt;:5701/hazelcast/rest/maps/mymap/key1</code>
605                </para>
606            </listitem>
607            <listitem>
608                <para>Split-brain (network partitioning) handling</para>
609            </listitem>
610            <listitem>
611                <para>New LifecycleService API to restart, pause Hazelcast instances and listen for
612                    the lifecycle events.
613                </para>
614            </listitem>
615            <listitem>
616                <para>New asynchronous put and get support for IMap via IMap.asyncPut() and
617                    IMap.asyncGet()
618                </para>
619            </listitem>
620            <listitem>
621                <para>New AtomicNumber API; distributed implementation of
622                    java.util.concurrent.atomic.AtomicLong
623                </para>
624            </listitem>
625            <listitem>
626                <para>So many bug fixes.</para>
627            </listitem>
628        </itemizedlist>
629        <emphasis role="bold">1.8.4</emphasis>
630        <itemizedlist>
631            <listitem>
632                <para>Significant performance gain for multi-core servers. Higher CPU utilization
633                    and lower latency.
634                </para>
635            </listitem>
636            <listitem>
637                <para>Reduced the cost of map entries by 50%.</para>
638            </listitem>
639            <listitem>
640                <para>Better thread management. No more idle threads.</para>
641            </listitem>
642            <listitem>
643                <para>Queue Statistics API and the queue statistics panel on the Monitoring Tool.
644                </para>
645            </listitem>
646            <listitem>
647                <para>Monitoring Tool enhancements. More responsive and robust.</para>
648            </listitem>
649            <listitem>
650                <para>Distribution contains hazelcast-all-&lt;version&gt;.jar to simplify jar
651                    dependency.
652                </para>
653            </listitem>
654            <listitem>
655                <para>So many bug fixes.</para>
656            </listitem>
657        </itemizedlist>
658        <emphasis role="bold">1.8.3</emphasis>
659        <itemizedlist>
660            <listitem>
661                <para>Bug fixes</para>
662            </listitem>
663            <listitem>
664                <para>Sorted index optimization for map queries.</para>
665            </listitem>
666        </itemizedlist>
667        <emphasis role="bold">1.8.2</emphasis>
668        <itemizedlist>
669            <listitem>
670                <para>A major bug fix</para>
671            </listitem>
672            <listitem>
673                <para>Minor optimizations</para>
674            </listitem>
675        </itemizedlist>
676        <emphasis role="bold">1.8.1</emphasis>
677        <itemizedlist>
678            <listitem>
679                <para>Hazelcast Cluster Monitoring Tool (see the hazelcast-monitor-1.8.1.war in the
680                    distro)
681                </para>
682            </listitem>
683            <listitem>
684                <para>New Partition API. Partition and key owner, migration listeners.</para>
685            </listitem>
686            <listitem>
687                <para>New IMap.lockMap() API.</para>
688            </listitem>
689            <listitem>
690                <para>New Multicast+TCP/IP join feature. Try multicast first, if not found, try
691                    tcp/ip.
692                </para>
693            </listitem>
694            <listitem>
695                <para>New Hazelcast.getExecutorService(name) API. Have separate named
696                    ExecutorServices. Do not let your big tasks blocking your small ones.
697                </para>
698            </listitem>
699            <listitem>
700                <para>New Logging API. Build your own logging. or simply use Log4j or get logs as
701                    LogEvents.
702                </para>
703            </listitem>
704            <listitem>
705                <para>New MapStatistics API. Get statistics for your Map operations and entries.
706                </para>
707            </listitem>
708            <listitem>
709                <para>HazelcastClient automatically updates the member list. no need to pass all
710                    members.
711                </para>
712            </listitem>
713            <listitem>
714                <para>Ability to start the cluster members evenly partitioned. so no migration.
715                </para>
716            </listitem>
717            <listitem>
718                <para>So many bug fixes and enhancements.</para>
719            </listitem>
720            <listitem>
721                <para>There are some minor Config API change. Just make sure to re-compile.</para>
722            </listitem>
723        </itemizedlist>
724        <emphasis role="bold">1.8</emphasis>
725        <itemizedlist>
726            <listitem>
727                <para>Java clients for accessing the cluster remotely. (C# is next)</para>
728            </listitem>
729            <listitem>
730                <para>Distributed Query for maps. Both Criteria API and SQL support.</para>
731            </listitem>
732            <listitem>
733                <para>Near cache for distributed maps.</para>
734            </listitem>
735            <listitem>
736                <para>TTL (time-to-live) for each individual map entry.</para>
737            </listitem>
738            <listitem>
739                <para>IMap.put(key,value, ttl, timeunit)</para>
740            </listitem>
741            <listitem>
742                <para>IMap.putIfAbsent(key,value, ttl, timeunit)</para>
743            </listitem>
744            <listitem>
745                <para>Many bug fixes.</para>
746            </listitem>
747        </itemizedlist>
748        <emphasis role="bold">1.7.1</emphasis>
749        <itemizedlist>
750            <listitem>
751                <para>Multiple Hazelcast members on the same JVM. New
752                    <literal>HazelcastInstance</literal>
753                    API.
754                </para>
755            </listitem>
756            <listitem>
757                <para>Better API based configuration support.</para>
758            </listitem>
759            <listitem>
760                <para>Many performance optimizations. Fastest Hazelcast ever!</para>
761            </listitem>
762            <listitem>
763                <para>Smoother data migration enables better response times during joins.</para>
764            </listitem>
765            <listitem>
766                <para>Many bug fixes.</para>
767            </listitem>
768        </itemizedlist>
769        <emphasis role="bold">1.7</emphasis>
770        <itemizedlist>
771            <listitem>
772                <para>Persistence via Loader/Store interface for distributed map.</para>
773            </listitem>
774            <listitem>
775                <para>Socket level encryption. Both symmetric and asymmetric encryption supported.
776                </para>
777            </listitem>
778            <listitem>
779                <para>New JMX support. (many thanks to Marco)</para>
780            </listitem>
781            <listitem>
782                <para>New Hibernate second level cache provider (many thanks to Leo)</para>
783            </listitem>
784            <listitem>
785                <para>Instance events for getting notified when a data structure instance (map,
786                    queue, topic etc.) is created or destroyed.
787                </para>
788            </listitem>
789            <listitem>
790                <para>Eviction listener.
791                    <literal>EntryListener.entryEvicted(EntryEvent)</literal>
792                </para>
793            </listitem>
794            <listitem>
795                <para>Fully 'maven'ized.</para>
796            </listitem>
797            <listitem>
798                <para>Modularized...</para>
799            </listitem>
800            <listitem>
801                <para>hazelcast (core library)</para>
802            </listitem>
803            <listitem>
804                <para>hazelcast-wm (http session clustering tool)</para>
805            </listitem>
806            <listitem>
807                <para>hazelcast-ra (JCA adaptor)</para>
808            </listitem>
809            <listitem>
810                <para>hazelcast-hibernate (hibernate cache provider)</para>
811            </listitem>
812        </itemizedlist>
813        <emphasis role="bold">1.6</emphasis>
814        <itemizedlist>
815            <listitem>
816                <para>Support for synchronous backups and configurable backup-count for maps.
817                </para>
818            </listitem>
819            <listitem>
820                <para>Eviction support. Timed eviction for queues. LRU, LFU and time based eviction
821                    for maps.
822                </para>
823            </listitem>
824            <listitem>
825                <para>Statistics/history for entries. create/update time, number of hits, cost. see
826                    <literal>IMap.getMapEntry(key)</literal>
827                </para>
828            </listitem>
829            <listitem>
830                <para>
831                    <literal>MultiMap</literal>
832                    implementation. similar to google-collections and
833                    apache-common-collections
834                    <literal>MultiMap</literal>
835                    but distributed and
836                    thread-safe.
837                </para>
838            </listitem>
839            <listitem>
840                <para>Being able to
841                    <literal>destroy()</literal>
842                    the data structures when not needed
843                    anymore.
844                </para>
845            </listitem>
846            <listitem>
847                <para>Being able to Hazelcast.shutdown() the local member.</para>
848            </listitem>
849            <listitem>
850                <para>Get the list of all data structure instances
851                    via<literal>Hazelcast.getInstances()</literal>.
852                </para>
853            </listitem>
854        </itemizedlist>
855        <emphasis role="bold">1.5</emphasis>
856        <itemizedlist>
857            <listitem>
858                <para>Major internal refactoring</para>
859            </listitem>
860            <listitem>
861                <para>Full implementation of<literal>java.util.concurrent.BlockingQueue</literal>.
862                    Now queues can have configurable capacity limits.
863                </para>
864            </listitem>
865            <listitem>
866                <para>Super Clients (a.k.a LiteMember): Members with no storage. If
867                    <literal>-Dhazelcast.super.client=true</literal>
868                    JVM parameter is set, that
869                    JVM will join the cluster as a 'super client' which will not be a 'data
870                    partition' (no data on that node) but will have super fast access to the cluster
871                    just like any regular member does.
872                </para>
873            </listitem>
874            <listitem>
875                <para>Http Session sharing support for Hazelcast Web Manager. Different webapps can
876                    share the same sessions.
877                </para>
878            </listitem>
879            <listitem>
880                <para>Ability to separate clusters by creating groups.
881                    <link xlink:href="#ConfigGroup">ConfigGroup</link>
882                </para>
883            </listitem>
884            <listitem>
885                <para>
886                    <literal>java.util.logging</literal>
887                    support.
888                </para>
889            </listitem>
890        </itemizedlist>
891        <emphasis role="bold">1.4</emphasis>
892        <itemizedlist>
893            <listitem>
894                <para>Add, remove and update events for queue, map, set and list</para>
895            </listitem>
896            <listitem>
897                <para>Distributed Topic for pub/sub messaging</para>
898            </listitem>
899            <listitem>
900                <para>Integration with J2EE transactions via JCA complaint resource adapter</para>
901            </listitem>
902            <listitem>
903                <para>
904                    <link xlink:href="#ExecutionCallback">ExecutionCallback</link>
905                    interface for distributed tasks
906                </para>
907            </listitem>
908            <listitem>
909                <para>Cluster-wide unique id generator</para>
910            </listitem>
911        </itemizedlist>
912        <emphasis role="bold">1.3</emphasis>
913        <itemizedlist>
914            <listitem>
915                <para>Transactional Distributed Queue, Map, Set and List</para>
916            </listitem>
917        </itemizedlist>
918        <emphasis role="bold">1.2</emphasis>
919        <itemizedlist>
920            <listitem>
921                <para>Distributed Executor Service</para>
922            </listitem>
923            <listitem>
924                <para>Multi member executions</para>
925            </listitem>
926            <listitem>
927                <para>Key based execution routing</para>
928            </listitem>
929            <listitem>
930                <para>Task cancellation support</para>
931            </listitem>
932        </itemizedlist>
933        <emphasis role="bold">1.1</emphasis>
934        <itemizedlist>
935            <listitem>
936                <para>Session Clustering with Hazelcast Webapp Manager</para>
937            </listitem>
938            <listitem>
939                <para>Full TCP/IP clustering support</para>
940            </listitem>
941        </itemizedlist>
942        <emphasis role="bold">1.0</emphasis>
943        <itemizedlist>
944            <listitem>
945                <para>Distributed implementation of java.util.{Queue,Map,Set,List}</para>
946            </listitem>
947            <listitem>
948                <para>Distributed implementation of java.util.concurrency.Lock</para>
949            </listitem>
950            <listitem>
951                <para>Cluster Membership Events</para>
952            </listitem>
953        </itemizedlist>
954    </para>
955</sect1>