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