@xuemingdeng
2017-04-27T23:09:17.000000Z
字数 1742
阅读 1020
大数据
内存计算平台
摘要:
Apache Ignite是一个内存计算平台,支持事务、键值存储、流和复杂事件处理(CEP)。Ignite最早由GridGain于2014年下半年开源,并成为Apache孵化器项目。InfoQ访问了GridGain的CTO Nikita Ivanov,了解更多有关Ignite的内容。
正文:
Apache Ignite是一个内存计算平台,支持事务、键值存储、流和复杂事件处理(CEP)。Ignite最早由GridGain于2014年下半年开源,并成为Apache孵化器项目。
InfoQ采访了GridGain的CTO Nikita Ivanov,了解更多有关Ignite的内容。
InfoQ:Ignite提供了很多基于内存的特性,从键值存储到流式处理。它主要的使用场景有哪些呢?
Nikita Ivanov: Ignite主要用于高性能的计算任务,特别是金融领域的服务和Fintech公司。对于这些公司来说,收益与应用程序的性能和伸缩性有直接的关系。他们直接从高性能、低延迟和伸缩性中获得价值。Ignite为这些公司的很多应用程序提供了支持,包括自动化交易、实时合规、价差赌注、欺诈检测、回溯测试、数据分析,等等。
Ignite也经常被集成到第三方的软件系统或SaaS解决方案。增长较快的两个垂直领域分别是SaaS和IoT供应商,为了提供最优化的用户体验,或者满足Web应用程序的SLA需求和物联网应用程序的数据需求,他们的业务模型要求很高的性能和伸缩性。
InfoQ:Ignite如何与其他流行的内存计算框架竞争,比如Apache Spark?如何将它与Alluxio进行比较?
Ivanov: Ignite可以在以下几个方面与Spark展开竞争。Spark是一个只读的系统,不支持事务,主要用于数据分析和机器学习。Ignite是一个高性能的支持事务的系统。如果将两者用在一起,Ignite可以作为Spark RDD的内存存储层,在Spark的作业之间共享状态。另外,Ignite对Spark存储在内存里的数据进行了索引。运行在Spark上的SQL查询会进行全局扫描,而Ignite的索引可以提升查询性能。
至于Alluxio,我们没见过有人将它与其他框架进行对比,所以很难说。
InfoQ:2016年12月,Netflix开源了缓存框架Hollow,它支持在客户端嵌入缓存,以便减小请求延迟和对RPC的依赖。Ignite里可以做到类似的事情吗?
Ivanov:虽然我们也没看到有关Hollow的评测,不过我对它的特性比较熟悉,Hollow提供的所有特性Ignite也提供了。
InfoQ:Ignite的一个很重要的特性是它提供了事务和一致性保证。你能解释一下Ignite的设计和CAP理论之间的关系吗?
Ivanov:我们相信,只支持CAP的产品是无法与Ignite相提并论的。如果只支持最终一致性(EC)事务,那就无法做到完整一致性。你可以改进EC,让它变得更快,但仍然无法得到完整一致性。所以,如果你的系统需要事务,比如转账或账号管理,像Apache Cassandra、MongoDB、Apache CouchDB这些EC解决方案就不能满足需求,因为它们不提供完整的一致性。
Ignite提供了成熟的两阶段提交事务来支持完整一致性,与Oracle的别无二致。不过用户也可以通过配置禁用两阶段提交,从而获得EC的性能。Ignite同时提供了两种方案,可以配置完整的事务,也可以用部分的一致性换取性能。根据我们客户的反馈,这种灵活性是GridGain的一个重要的优势。
InfoQ:Ignite是否支持适合用于数据分析的基于列的内存格式?
Ivanov: Ignite不支持基于列的格式。
InfoQ:Ignite的路线图是什么?
Ivanov: Ignite的路线图中包含了两个非常重要的方面。首先,为了满足整个数据库无法放进RAM的使用场景,需要极大地改进基于磁盘的存储。其次,改进对机器学习和深度学习的支持。这些特性将在未来的几个主版本里发布。
查看英文原文:Nikita Ivanov on Apache Ignite In-Memory Computing Platform