分布式缓存系统,Infinispan 7.0.3.Final 发布

jopen 9年前

Infinispan 是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布 式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服 务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群大小息息相关的。

Infinispan提供了一种简单的机制来利用大容量的堆内存。如果对每个结点维护一个拷贝,假如集群当中有100个结点,每个结点分配2GB的堆 内存, 那么网格中的任何实例都能使用多达100GB的空间,这可都是内存,显然速度会非常快。同时Infinispan还兼容于JTA,这样它就能很好地处理事务 了。我们还有一个超级强大的异步API,它可以保证同步的网络调用以及异步调用的并行性及可伸缩性。比方说:Future f = cache.putAsync(k, v) 可以阻塞线程,再调用f.get()可以让网络调用继续进行或是忽略掉f。更为重要的是,线程还可以做别的事情,这一点非常有用。然后再回来通过调用 f.get()来检查该网络调用是否能继续进行。可以将其看作是NIO与传统的阻塞性IO之间的关系。

Infinispan公开了一个CacheStore接口和几个高性能的实现,包括JDBC CacheStores、基于文件系统的CacheStores以及Amazon S3 CacheStores等等。CacheStores可用作“温启动(warm starts)”或是确保网格中的数据在重启后依然可用,同时在内存耗尽时还能将数据写到磁盘上。

主要特点:

  • 大量的堆体
  • 极高的可扩展性
  • 快速轻量级核心
  • 不仅仅支持Java(PHP,Python,Ruby,C…)
  • 支持Compute Grids
  • 管理是关键:当你在grid上运行几百个服务时,实现管理是必须的


Infinispan 7.0.3.Final 发布了,这是一个 bug-fix 发行办吧,主要是提升了稳定性。详情请看

Release Notes - Infinispan - Version 7.0.3.Final

Bug

  • [ISPN-4444] - After state transfer, a node is able to read keys it no longer owns from its data container
  • [ISPN-4949] - Split brain: inconsistent data after merge
  • [ISPN-4975] - Cross site state transfer - status of push gets stuck at "SENDING" after being cancelled
  • [ISPN-4979] - CacheStatusResponse map uses too much memory
  • [ISPN-4995] - ClusteredGet served for non-member of CH
  • [ISPN-5000] - Cleanup rebalance confirmation collector when node is not coord
  • [ISPN-5008] - 7.0.x missing cachestore-remote and extended-statistics modules
  • [ISPN-5011] - CacheManager not stopping when search factory not initialized
  • [ISPN-5026] - The Infinispan 7.0.2's GUI demo cannot be properly launched in Windows 7
  • [ISPN-5027] - OutOfMemoryError in entry retriever when state transfer chunk size is Integer.MAX_VALUE
  • [ISPN-5029] - Infinispan 7.0.2 not fully backwards compatible with 6.0.x
  • [ISPN-5030] - NPE during node rebalance after a leave
  • [ISPN-5048] - Relocate some imported packages in uberjars and remove any javax.* classes
  • [ISPN-5052] - Lock timeout details prints out null for local locks
  • [ISPN-5053] - Modules inheriting directly from the BOM use Java 1.5
  • [ISPN-5071] - No rebalance enabled and suspended messages logged
  • [ISPN-5088] - Deleted entries from (FineGrained)AtomicMap reappear in subsequent transaction
  • [ISPN-5104] - Infinite loop in TransactionAwareCloseableIterator when iterating through cache...

Component Upgrade

  • [ISPN-5005] - Upgrade to Hibernate HQL Parser 1.1.0.Beta1
  • [ISPN-5006] - Upgrade to Hibernate Search 5.0.0.Beta3
  • [ISPN-5040] - Upgrade to JGroups 3.6.1.Final

Enhancement

  • [ISPN-4989] - infinispan-transport thread name is undefined
  • [ISPN-5032] - Create dedicated GetCacheEntryCommand to simplify code and save memory on GetKeyValueCommand

Feature Request

  • [ISPN-3561] - A joining cache should receive the rebalancedEnabled flag from the coordinator.
  • [ISPN-4948] - Package embedded CLI as uberjar
  • [ISPN-5007] - Enhance the distribution script to detect missing artifacts
  • [ISPN-5017] - Include the CLI uberjar in the distribution zip

Task

  • [ISPN-5018] - Add test for protobuf marshalling of primitives

分布式缓存系统,Infinispan 7.0.3.Final 发布