在这个虚拟访谈中,我们有幸邀请到了JBoss Cache及Infinispan的项目经理Manik Surtani(以下简称MS)一起探讨关于Infinispan的方方面面。
InfoQ:请简单说说Infinispan到底是干什么的?
MS:Infinispan是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群大小息息相关的。
InfoQ:这又为开发者带来了什么呢?
MS:Infinispan提供了一种简单的机制来利用大容量的堆内存。如果对每个结点维护一个拷贝,假如集群当中有100个结点,每个结点分配2GB的堆内存,那么网格中的任何实例都能使用多达100GB的空间,这可都是内存,显然速度会非常快。同时Infinispan还兼容于JTA,这样它就能很好地处理事务了。我们还有一个超级强大的异步API,它可以保证同步的网络调用以及异步调用的并行性及可伸缩性。比方说:
Future f = cache.putAsync(k, v)
可以阻塞线程,再调用f.get()可以让网络调用继续进行或是忽略掉f。更为重要的是,线程还可以做别的事情,这一点非常有用。然后再回来通过调用f.get()来检查该网络调用是否能继续进行。可以将其看作是NIO与传统的阻塞性IO之间的关系。
InfoQ:能否谈谈持久化呢?
MS:Infinispan公开了一个CacheStore接口和几个高性能的实现,包括JDBC CacheStores、基于文件系统的CacheStores以及Amazon S3 CacheStores等等。CacheStores可用作“温启动(warm starts)”或是确保网格中的数据在重启后依然可用,同时在内存耗尽时还能将数据写到磁盘上。
InfoQ: 你觉得Infinispan与其他产品的不同之处在于哪呢?
MS:大多数的开源产品在使用上都有很多限制,要么集群数量太少,没有提供数据分发功能、要么没有提供一个完整的平台。同时Infinispan和一些私有产品间也存在着一些明显差异,而且据我所知,Infinispan的异步API是独一无二的。
InfoQ:该项目的动机又是什么呢?
MS:到现在为止,我已经担任了几年的JBoss Cache项目经理,在这期间看到大家对开源数据网格平台的需求与日俱增。我最抱怨的事情就是商业产品太贵了而且还不开源,而开源的产品无论在API、可用性、性能、稳定性以及可伸缩性方面都不尽如人意,当然也包括JBoss Cache。因此构建JBoss Cache的下一代产品(提供更加广阔的应用领域)就成为我们的目标了。
InfoQ:有没有什么东西是只能用在其他的JBoss项目中的,换句话说,我能否将其用在其他地方呢?
MS:只要有兼容于Java 5的JVM就行了。因为是基于LGPL协议,因此可以用在商业及OEM产品中。
InfoQ:什么是数据网格?它与云的区别是什么?
MS:我觉得云的含义是指计算机资源的按需供应,包括存储、处理器、操作系统及内存等等。目前流行用虚拟化的方式来使用它。数据网格超越了服务的概念,是内存与服务器的统一体。通常将数据网格部署在云上。
InfoQ:什么情况下应该使用网格,什么情况下不应该使用?
MS:只要在数据库成为无法忍受的瓶颈时——在进行扩展时很容易出现这种情况,就来用数据网格吧:-)。数据网格的可伸缩性非常棒。此外,如果使用计算网格并行处理任务,通常也需要一个数据网格来为其提供清理状态。虽然我看到过有人用数据网格进行消息传递,但显然这么做是不合时宜的,这会给结点带来不必要的压力。如果需要分布式的工具进行消息传递,采用JMS吧,这是其最佳的应用场合了。
InfoQ:Infinispan与JSR-107和JBoss Cache的关系如何?
MS:Infinispan的Cache接口的开发是遵照JSR-107规范进行的,因此它兼容于当前的规范,它还实现了JSR-107所有可选的部分,包括兼容于JTA和集群。Infinispan与JBoss Cache没啥关系——除了一些设计特性,还有一些可重用的类是从那里摘抄过来的。基本上来说Infinispan是个全新的事物。
InfoQ:Infinispan需要运行在集群中么?
MS:不需要。它还是一个可运行在本地模式下的高性能缓存。我们已经实现了高质量的并发容器算法,只需很少的互斥体(mutex)如锁和同步块。Infinispan可以在多CPU及多核服务器上处理高并发操作。同时逐出(eviction)算法也在高并发的环境下具有良好的表现。
InfoQ:Infinispan的路线图中还有哪些新玩意?
MS:除了上面提到的那些以外我们还会增加不少新特性。大家可以看看Infinispan项目主页上的路线图以了解详细信息,这里我打算谈谈其中两个激动人心的特性。
InfoQ:Manik,非常感谢你抽时间接受我们的采访。大家可以访问Infinispan的项目主页以了解更多信息。
查看英文原文:Infinispan Interview