我采访了GridGain Systems的创始人兼首席技术官Nikita Ivanov。访谈的主题是Apache Ignite的新版本。
Q1。您认为,内存数据库,内存数据网络和内存数据结构之间的主要区别是什么?
Nikita Ivanov:内存数据库(IMDB)和内存数据网格之间的主要区别在于IMDB仅支持SQL(或某种专有的NoSQL方言),而大多数数据网络(IMDGs)支持多种访问和处理数据的方式。在IMDB中,访问和处理数据的唯一方式是SQL和SQL存储过程,而IMDGs通常至少支持以下范例:SQL,k/v,MapReduce,MPP和基于MPI的处理。
与IMDGs相比,内存数据结构代表了最新一代的内存技术,集成到单一平台中,无需像IMDB或IMDGs这样的单点解决方案。它是位于应用程序和数据存储之间的软件层,它允许跨不同类型的数据(如SQL,NoSQL和Hadoop)进行高性能数据访问和处理。所有这些都没有任何小道,以及替换现有的应用程序或数据库。
Q2。如何通过内存技术加速 以Hadoop为基础的部署?
Nikita Ivanov:为了以一种有价值的方式加速Hadoop,需要找到一种方法来加速定义Hadoop的两项核心技术:HDFS,一种存储数据的分布式文件系统和一种允许并行处理存储在其中的数据的框架MapReduce HDFS。
在GridGain,我们开发了一个高度优化的内存文件系统,与HDFS 100%兼容,允许将数据直接存储在Hadoop集群中的计算机DRAM中。我们还开发了一个专门优化的基于YARN的MapReduce实现,充分利用直接存储在DRAM来代替从磁盘中取数据。
这两项创新的结合使GridGain能够以任何语言加速任何Hadoop有效载荷(包括Pig,Hive或手写的MapReduce作业) – 最多可达10倍而无需更改任何代码。GridGain是第一个为hadoop提供加速器的,而且提供真正的即插即用加速,为现有的Hadoop作业。
Q3。为什么你会决定开源你的产品?
Nikita Ivanov:实际在去年10月之前,GridGain就已经开放了一个核心模块:我们提供了Apache 2.0许可下的内存数据结构,并且我们还有一个商业版本,具有许多企业级功能,例如增强的安全性,数据中心复制,滚动更新,跨语言可移植性等。
我们决定将核心开源代码库贡献给Apache软件基金会(ASF)的决定性因素,当然是为了确保内存技术的持续广泛采用,和代码库的长期可维护性。与这一样重要的是,我们也希望建立一个欣欣向荣的社区,使用并调整这个代码库,因此成为大家都想寻找的内存计算的一种。
Q4。什么是Apache Ignite?
Nikita Ivanov:Apache Ignite(孵化)是一个开源的分布式框架,用于统一的内存数据结构,最初由GridGain Systems开发。Apache Ignite是一个孵化Apache项目,它在各种数据源和应用程序之间提供高性能,分布式内存数据管理软件层。
它的代码大部分是用Java和Scala编写的,有少量的C ++代码,它将在一个框架中将内存中的数据网络,内存中的计算网络和内存中的流处理结合起来。
Apache Ignite的大规模内存框架为事务性和实时分析应用程序的性能提高了100-1,000倍的吞吐量和/或更低的延迟。它也是启用新兴的所谓混合事务分析工作负载的关键开源基础。
Q5。v1.0有什么特别之处?
Nikita Ivanov:2014年10月,Apache软件基金会(ASF)将GridGain内存数据结构核心代码库接受为名为“Apache Ignite”的孵化器计划。 从那时起,GridGain的工程师以及其他贡献者一直忙于将现有的代码库,文档和现有内部构建,测试和发布流程重构为“Apache Way”。 1.0版代表了第一个符合这些目标的版本,包括来自GridGain的最新开源内存数据结构之外的其他增强功能。事实上,Apache Ignite具有大量的功能,其最酷的新功能之一是它能够自动与不同的RDBMS系统(如Oracle,MySql,Postgres,DB2,Microsoft SQL等)集成。此功能自动生成应用程序域模型基于底层数据库的模式定义,然后加载数据。
尽管其功能集的广泛性,但Ignite实际上非常易于使用:例如,没有自定义安装程序。该产品是一个ZIP压缩文件,解压缩就可以开始使用。它只有1个强制依赖 ignite-core.jar。所有其他依赖项,例如与Spring进行配置的集成,或与SQL数据库H2的集成,都可以添加到单点进程中。
此外,该项目完全是maven管理的,由十几个可以导入并以任意组合使用的maven构件组成。Apache Ignite基于标准Java API,对于分布式缓存和数据网格功能,Ignite实现JCache(JSR 107)标准。 新的Apache Ignite v1.0位可供下载 现在来自Apache Ignite网站。
Q6。谁将使用Apache Ignite内存数据结构,为什么?
Nikita Ivanov:我们期望高性能,超大规模内部部署和SaaS应用程序的开发人员和软件架构师,在构建或性能调整其新的或现有的应用程序时;利用以下功能:计算网络,数据网络,服务网络,流媒体,集群,分布式数据结构,分布式消息传递,分布式事件和内存中的文件系统。
用例可以在为金融服务,电信,零售,交通,社交媒体,在线广告,公用事业,生物科学和许多其他行业设计的软件中找到。
Q7。Apache Ignite项目的定位是什么?
Nikita Ivanov:正如我们在去年11月的博客中解释的那样,我们认为Apache Ignite拥有适用于Fast Data世界的所有关键因素,而Hadoop是目前用于大数据的。
这意味着,与Hadoop不同,Hadoop是一个专注于经济地存储大量数据的批处理流程,Ignite可以实现极其快速和超低延迟的数据处理,使用户能够更快地从数据中获得可操作的洞察力。
与Spark不同,Spark是Ignite在ASF中流行的姊妹项目,主要侧重于增强Hadoop世界的分析和机器学习,Ignite是一个基于数据源透明的处理层,可用于类似Hadoop的计算和许多其他计算范例如MPP,MPI,streaming处理。
除实时分析外,Ignite的内存中框架还支持完整的ACID事务。
Q8。您之前曾发表过Oracle和SAP缺少内存计算的观点。你能详细解释一下吗?
Nikita Ivanov:我们仍然认为Oracle和SAP缺乏内存计算,原因如下:通过提供计算网络,数据网络,streaming/CEP和Hadoop加速的完美集成平台,Apache Ignite(孵化),并且GridGain内存数据结构提供了跨事务性和分析性工作负载的内存计算策略方法,它提供的性能,规模和综合功能远远超出传统内存数据库,数据网络或其他基于内存的单点式解决方案可以自行提供。
基于Apache Ignite构建的Apache Ignite和GridGain的企业产品将从繁荣的社区中调整代码库到新的和正在出现的用例中受益匪浅; 因此,我们相信这个代码库非常有利于推动Fast Data的卓越创新,就像Hadoop社区一直在为大数据所做的一样。 此外,与Oracle或SAP Hana不同的是,Apache Ignite是在商品硬件上运行的更便宜,更易于访问和更透明的开源软件,这通常会增加开发人员和架构师探索内存计算潜力的动力。
也就是说,如果所有的客户都在寻找内存技术,他们可以更快地处理他们的(SQL)数据,那么他们仍然可以选择从Oracle或SAP部署专有软件。
Qx 您还想添加点什么?
Nikita Ivanov:我想我应该提到的是,尽管Apache Ignite只处于不到4个月的孵化期,但我们很高兴看到该项目已经拥有一个非常活跃和不断发展的社区。
但是我们总是欢迎社区贡献,所以如果有读者愿意贡献,请发送电子邮件至Apache Ignite开发人员名单,我们将帮助您入门。即使您还没有准备好立即贡献,我们希望邀请所有人加入我们的开发名单。大部分讨论都发生在那里,你可以找出很多关于项目进展的信息,并提供你自己的想法。当然,让人们熟悉Apache Ignite的另一个好方法是查看代码,看看它可以为他们的项目做些什么。Ignite位可以在Apache Ignite主页上下载。
人物介绍
—- Nikita Ivanov 是GridGain Systems的创始人兼首席技术官,于2007年创立,由RTP Ventures和Almaz Capital资助。Nikita已经领导GridGain开发先进的分布式内存数据处理技术,这是目前全球每10秒启动的顶级Java内存数据结构。
Nikita在软件应用程序开发,构建HPC和中间件平台方面拥有超过20年的经验,为其他创业公司和Adaptec,Visa和BEA Systems等知名公司的努力作出贡献。Nikita是在1996年为欧洲最大的系统集成商工作时使用Java技术进行服务器端中间件开发的先驱之一。
他是Java中间件社区的活跃成员,为Java规范的贡献者,并拥有俄罗斯圣彼得堡波罗的海国立技术大学电子机械硕士学位。
资源
相关文章
– 在Solr和Mahout上。采访Grant Ingersoll。 ODBMS行业观察,2015-01-06
– 大数据:McObject的三个问题。ODBMS行业观察,2014年2月14日
———— 在Twitter上关注ODBMS.org:@odbmsorg