Nikita Ivanov 谈内存计算平台 Ignite

  • Alexandre Rodrigues
  • 薛命灯

2017 年 4 月 27 日

话题:架构AI

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 CassandraMongoDBApache 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

架构AI