ignite分布式计算

  categories:资料  author:

ignite分布式计算

在ignite中,有传统的MapReduce模型的分布式计算,也有基于分布式存储的并置计算,当数据分散到不同的节点上时,根据提供的并置键,计算会传播到数据所在的节点进行计算,再结合数据并置,相关联的数据存储在相同节点,这样可以避免在计算过程中涉及到大量的数据移动,有效保证计算的性能。

ignite分布式计算的主要特点如下:

特性 描述
自动部署 计算用到的类可以自动传播,而不需要在每个节点都部署相关的类,这个可以通过配置peerClassLoadingEnabled选项开启计算类的自动传播,但是缓存的实体类是无法自动传播的。
平衡加载 数据在加载之后会在集群中进行一个再平衡的过程,保证数据均匀分布在各个节点,当有计算在集群中执行的时候,可以根据提供的并置键定位到数据所在节点进行计算,也就是并置计算。
故障转移 当节点出现故障或者其它计算的时候,任务会自动转移到集群中的其他节点执行

1.分布式闭包:

Ignite计算网格可以对集群或者集群组内的任何闭包进行广播和负载平衡,包括纯Java的runnablescallables

闭包类型 功能
broadcast 将任务传播到部分指定节点或者全部节点
call/run 执行单个任务或者任务集
apply apply接收一个闭包和一个集合作为参数,生成与参数数量等量的任务,每个任务分别是将闭包应用在其中一个参数上,并且会返回结果集。

ComputeTestController.java


    /** broadCast测试*/
    @RequestMapping("/broadcast")
    String broadcastTest(HttpServletRequest request, HttpServletResponse response) {
阅读全文

ignite系列数据处理

  categories:资料  author:

使用ignite的一个常见思路就是将现有的关系型数据库中的数据导入到ignite中,然后直接使用ignite中的数据,相当于将ignite作为一个缓存服务,当然ignite的功能远不止于此,下面以将ignite集成进java服务的方式进行演示ignite的数据存储和查询相关的功能。由于个人习惯,示例演示没有使用测试代码,而是使用rest接口演示。

​ 在讲数据加载之前,ignite中存储的几种模式(LOCAL, REPLICATED, PARTITIONED):

LOCAL:本地模式,数据都存储在本地,无数据再平衡,类似常见的存储服务;

PARTITIONED:分区模式,数据分散到集群中的各个节点,分区模式适合存储数量庞大的数据

如图所示是设置了Backup备份数的,默认备份数是0,如果分区模式下不设置备份数的话则会存在丢失数据的风险。

REPLICATED:复制模式,有数据再平衡过程,主节点(Primary)数据与分区模式的一致,只是复制模式默认备份了除主节点数据外的其余数据。复制模式适合存储数据量小,增长不快的数据。

分区模式和复制模式各有优点和缺点,具体选择要根据实际场景的特点去权衡:

模式 优点 缺点
分区模式(PARTITIONED) 能存储海量数据,频繁更新对其影响不大 查询缓存涉及到数据移动,对查询性能有影响
复制模式(REPLICATED) 适合存储数据量不大的数据,数据查询性能稳定 频繁更新对其影响较大

1,数据加载

这里使用mybatis查询MYSQL里的数据然后存入ignite,完整代码可以参考:

https://github.com/cording/ignite-example

为了演示,需要先在MYSQL中生成样本数据,相关sql脚本为ignite-example\src\main\resources\import.sql,执行该SQL脚本即可完成表的创建和测试数据的初始化。

在配置文件中定义缓存

                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name
阅读全文

NoSQL、NewSQL、OldSQL

  categories:资料  author:

数据库的选择简单而复杂。简单指的是对于大部分互联网公司MySQL或者mongoDB之类的加上缓存就够用了。复杂指的是大家对大数据的预期,导致在数据库技术上的选型颇为难。今天就对比下现在流行的几种SQL之间的区别。

NoSQL

之前在大学创业时做的是一款移动端视频交友APP,在数据库的选择上用的就是mongoDB+redis缓存的底层数据管理架构。这也是我第一次接触NoSQL。当时使用的感觉是方便简单,足够快。那么我们来看下,什么是NoSQL。

NoSQL并无明确的定义,泛指非关系型数据库。NoSQL数据库们具备一些共同的特征:不需要预定义模式;无共享架构,弹性可扩展;可分区;异步复制;最终一致性(弱一致性)。下面列举四类数据库进行比较。

四类数据库比较

其中,KV数据库和文档型数据库是比较相似的,不同的是,文档型数据库能够了解value的内容。文档型数据库将常用的数据存储在同一个文档中,而不是存在表中。如果一个应用程序需要存储不同的属性以及大量的数据,那么文档型数据库会是一个很好的选择(这也是我们以前为什么选mongoDB的原因)。而KV数据库大多用来当缓存。

NewSQL

NewSQL兼具传统数据库的ACID模型和NoSQL所需的高扩展性。NewSQL一直在尝试解决的问题是摆脱人工运维的束缚,在存储层实现真正的自增长自维护,同时用户可以以最自然大的编程接口访问和存储数据。当实现这点后,业务才可以摆脱存储的介质和容量的限制,而专注于逻辑的实现。目前NewSQL比较典型的代表是FoundationDB和VoltDB。

数据库场景对比

在数据库的选型上,始终要关注3个关键词:数据量、实时性、一致性。NoSQL就是牺牲强一致性来增强其扩展性的。下面用一张图来看各种数据库的对比情况。

数据库场景对比

数据价值密度:数据价值密度的高低与数据总量的大小成反比,即数据价值密度越高数据总量越小,数据价值密度越低数据总量越大。

 
多元化架构

在大数据的推动下,数据库的架构逐渐走向多元化,已经从一种架构支持多类应用转变成多种架构支持多类应用。

End(^-^)

如果有需要文中原图,或者有什么需要交流的问题,可以加微信~

来源:https://www.jianshu.com/p/e99d710355e5… 阅读全文

NewSQL体系比Hadoop更具效率

  categories:资料  author:
现今,完全放弃传统关系数据库并忙于使用新兴的NoSQL数据库可能还不是一个合理的选择。相反改进后的SQL(结构化查询语言)系统可能会对一些技术细节进行调整。在8月23日加利福尼亚圣何塞市举行的NoSQL 2011大会上分布式数据库公司VoltDB的首席技术官Michael Stonebraker表达了上述的观点。
Stonebraker所在公司本身提供的是基于NewSQL的数据库软件。他所倡导的新体系架构比传统供应商提供的数据库软件可承受更大的负载。Stonebraker是Ingres和Postgres数据库的总设计师。他还是Vertica(面向列数据库公司)的共同创始人,惠普已在2月份对Vertica进行了收购。
相对于NoSQL蓬勃发展的情况基于SQL的关系数据库系统确实显得有些死气沉沉。但这是数据库厂商的错,而不是SQL的错。
Stonebraker指出,当今大多数商业数据库软件已经在市场上存在30年或更长时间。他们的设计并没有围绕自动化、数据沉重性以及事务性环境。同时在这几十年中不断发展出的新功能并没有想象中的那么好。
Stonebraker表示数据库系统的滞后通常可归结于多项因素。诸如以恢复日志为目的的数据库系统维持的缓冲区池,以及管理锁定和锁定的数据字段。在VoltDB的测试中发现以上这些行为消耗系统96%的资源。
许多新兴的NoSQL数据库的普及,例如MongnDB和Cassandra。这很好的弥补了传统数据库系统的局限性。顾问Dan McCreary表示关系数据库的缺点刺激了开发人员创建出NoSQL数据库。关系数据库不是很灵活,其基本架构设计还是穿孔卡片时代,这反映了严格的数据建模方式。如果一个组织需要添加另一列的数据,他们必须改变架构,这可能相当棘手。建模过程中创建的关系表(实体模型)也并不总是能够准确的反应数据在现实世界中是如何存在的。
McCreary同时指出SQL数据库的另一个问题是其不具备很好的伸缩性。当数据增长超过一台服务器所能承受的极限时,就必须分享或分割数据到多台服务器上,跨越多台服务器是一个复杂的过程。此外如外部链接带来的问题。例如多个表中数据的融合,跨越服务器执行一些操作可能会产生一些问题。
Stonebraker认为NoSQL数据库可提供良好的扩展性和灵活性,但他们也有自己的不足。由于不使用SQL,NoSQL数据库系统不具备高度结构 化查询等特性。NoSQL其他的问题还包括不能提供ACID(原子性、一致性、隔离性和耐久性)的操作。另外不同的NoSQL数据库都有自己的查询语言, 这使得很难规范应用程序接口。
Stonebraker表示NewSQL可提供SQL独有的一些特性,同时还具备NoSQL的扩展性。NewSQL具备一个新的架构设计,他释放了主内存 运行的数据库中消耗系统资源的缓冲池。VoltDB系统使用了NewSQL创新的体系架构,在执行交易时可比传统关系数据库快45倍。VoltDB可扩展 服务器数量为39个,并可以每秒处理160万个交易(300个CPU核心)。而具备同样处理能力的Hadoop则需要更多的服务器。例如做相同的任 务,VoltDB需要20个节点的任务,Hadoop执行起来则需要1000个节点。
DoubleClick创始人和MongoDB创始人之一Dwight Merriman与Stonebraker一致认为SQL本身并不是导致可扩展性和低性能的根源。但Dwight Merriman同时表示在未来的岁月里,可能不是所有人都愿意使用SQL分析和查询他们的数据。因为对于程序员来说,基于SQL的存储过程是特别困难的工作。
最后McCreary也同意Stonebraker的看法,NoSQL没有一个统一的查询语言,这将拖慢NoSQL的发展。但他建议在新的数据库系统统一查询工具使用一个SQL以外的语言。如XQuery,一个XML文档查询语言。 … 阅读全文

C++吐血整理推荐书单从入门到进阶成神之路

  categories:资料  author:

极客侠网站导航(全部书单资源导航页):https://pymlovelyq.github.io/archives/

前言:技术书阅读方法论总结

一.速读一遍(最好在1~2天内完成)

人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。
对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。

二.精读一遍(在2周内看完)

有了前面速读的感觉,第二次看会有慢慢深刻了思想和意识的作用,具体为什么不要问我,去问30年后的神经大脑专家,现在人类可能还没有总结出为什么大脑对记忆的完全方法论,但是,就像我们专业程序员,打代码都是先实践,然后就渐渐懂了过程,慢慢懂了原理,所以第二遍读的时候稍微慢下来,2周内搞定。记住一句话:没看完一个章节后,总结一下这个章节讲了啥。很关键。

三.实践(在整个过程中都要)

实践的时候,要注意不用都去实践,最好看着书,敲下代码,把重点的内容敲一遍有个肌肉记忆就很不错了。
以及到自己做过的项目中去把每个有涉及的原理的代码,研究一遍,就可以了

一共十四个系列整整100+本C++系列电子书,找了好久终于齐了,其中不乏涉及几本和java相关的大数据开发书籍,如果都能看完看懂且科学的总结外加合理的实践,相信未来你的技术路会更好走,当然阿里巴巴,腾讯,阿里这些的Offer不将是梦,除了多看点技术书,你觉得还有什么能拿出来和985,211的朋友比呢?

百度网盘链接:https://pan.baidu.com/s/1B_kYpfOSJExXQ1zBF_Ao-A

提取码:3kjd

备注:里面已经顺便整理压缩好,为防止被和谐尽快下载后在PC端打开查看,网盘直接打开会显示损坏。

下面是书单资源截图:

0.1.jpg
0.2.jpg
0.3.jpg

以下是书单目录,清楚自己缺的是什么,就下定决心去补吧,一个好工作意味着高收入,投资自己的时间换来更宝贵的东西。

目录总结:

零.手册类:

  1. 《C++程序设计语言(The C++ Programming Language)》
  2. 《C++标准程序库(C++ Standard Library Tutorial and Reference) 》
  3. 《The C++ IO Streams and Locales》
  4. 《The C++ Standard (INCITS/ISO/IEC 14882-2011)》
阅读全文

一点点ACM从入门到进阶吐血整理算法推荐书单

  categories:资料  author:

极客侠网站导航(全部书单资源导航页):https://pymlovelyq.github.io/archives/

前言:技术书阅读方法论

一.速读一遍(最好在1~2天内完成)

人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。
对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。

二.精读一遍(在2周内看完)

有了前面速读的感觉,第二次看会有慢慢深刻了思想和意识的作用,具体为什么不要问我,去问30年后的神经大脑专家,现在人类可能还没有总结出为什么大脑对记忆的完全方法论,但是,就像我们专业程序员,打代码都是先实践,然后就渐渐懂了过程,慢慢懂了原理,所以第二遍读的时候稍微慢下来,2周内搞定。记住一句话:没看完一个章节后,总结一下这个章节讲了啥。很关键。

三.实践(在整个过程中都要)

实践的时候,要注意不用都去实践,最好看着书,敲下代码,把重点的内容敲一遍有个肌肉记忆就很不错了。
以及到自己做过的项目中去把每个有涉及的原理的代码,研究一遍,就可以了

一共四个系列整整50+本电子书,找了好久终于齐了,如果都能看完看懂且科学的总结外加合理的实践,相信未来你的技术路会更好走,当然阿里巴巴,腾讯,阿里这些的Offer不将是梦,除了多看点技术书,你觉得还有什么能拿出来和985,211的朋友比呢?
最近在学习算法和数据结构+涉及一点acm方面的知识,看到一篇好的关于数据结构和算法的书籍,如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理。如果只开一门课,那剩下的就一定是:数据结构与算法。Niklaus Wirth说:算法+数据结构=程序,不说废话了,下面列出一份数据结构+算法书单,从入门到进阶说起。

先发个几个G的资源截图吧,感觉不错的点个小心心~
1.png
2.png

百度网盘链接:https://pan.baidu.com/s/1pL6I1w7uOyyYWJ-8LukCRw
提取码:q86s
备注:里面已经顺便整理压缩好,需要下载后才可以打开,网盘直接打开会显示损坏。

以下是每本书的推荐语,清楚自己缺的是什么,就下定决心去补吧,一个好工作意味着高收入,投资自己的时间换来更宝贵的东西。

一.入门系列

推荐理由:通过图片,打比方等通俗易懂的方法讲述算法的书籍让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。

1.1《啊哈!算法哈磊》

1.1.jpg

插图和讲解相当到位~~让人看了很感兴趣,把算法用非常形象的方式表达出来,通俗易懂,这下学习算法的朋友有福了。很有趣。
书里面主要本书中涉及到的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、深度和广度优先搜索、图的遍历、最短路径、两种最小生成树、割点与割边、二分图最大匹配。

1.2《算法图解》

1.2.jpg

算法教科书通常让人昏昏欲睡,麻烦就在于算法是绕不开的必修课。以前大学有这个课程,看过几本算法书,都不太满意,看不懂很打击自信心。
而这本图解书确实有所突破,很容易看懂,不枯燥。书不到200页,我几个小时就看了一半。虽然都是些入门级的算法,经过作者梳理后就很清晰了。
我觉得这是最好的最有趣的算法入门书。媲美国内的《啊哈算法》那本书。
读完本书虽然没有什么高深的算法,但是可以自信地说算法入门了。

1.3《妙趣横生的算法(C语言实现 第2版)》

1.3.jpg

在有些章节的代码有些错误,会令人误解,但还是一本很不错的书,主要是讲解的非常详细,相比较经典书籍而言,经典书过于简练,再加上中文译者在那卖弄学术,弄得苦涩难读,这本书还是好很多,起码用中国人熟悉的语言由浅入深详细描述基本原理。

1.4《趣学算法》

1.4.jpg

非常好的一本书,图解多,思路清晰,不仅讲了问题分析算法设计的过程,还讲了如何优化算法,不同的数据结构上设计算法会有什么样的复杂度。值得推荐。

1.5《大话数据结构》

1.5.jpg

 时逢找工作,为笔试准备,需数据结构、数据库、c/c++、计算机系统、网络方面知识。对于数据结构,力荐此书,通俗易懂,非常适合计算机相关专业朋友…
本人本科初学数据结构时对于所谓时间复杂度完全摸不着头脑,虽然凭着绝佳的短期记忆力在中国式考试中拿到高分,但在实际程序设计开发中一无所用,故借此机会重学这方面知识。本书对时间复杂度,即大O阶的推导讲解十分细致,很容易就将“多年顽疾”解决。
由此管窥此书,其他方面知识点也讲得非常清楚,附有大量插图,更是适合对大段文字提不起兴趣的朋友。

1.6《算法神探》

1.6.jpg

 作者很努力把基础的算法写的有趣,作为入门还是不错的。我看的时候以为是数据分析相关的书,但是里面说的是代码基础算法相关的,但是还是很顺畅地看下去了。故事像是小學時看的

1.7《算法帝国》

阅读全文

Apache Phoenix介绍

  categories:资料  author:

http://phoenix.apache.org/

1. Phoenix定义
Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。

Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。

put the SQL back in NoSQL

Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。

HBase的查询工具有很多,如:Hive、Tez、Impala、Spark SQL、Phoenix等。

Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:

  • 将SQL编译成原生的HBase scans。
  • 确定scan关键字的最佳开始和结束
  • 让scan并行执行

使用Phoenix的公司

Paste_Image.png

2. 历史演进

  • 3.0/4.0 release

ARRAY Type. 支持标准的JDBC数组类型

Sequences. 支持 CREATE/DROP SEQUENCE, NEXT VALUE FOR, … 阅读全文

算法–递推策略

  categories:资料  author:

递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。

递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来,可以将递推算法看成是一种特殊的迭代算法。

引例:Fibonacci数列

Fibonacci数列的代表问题是由意大利著名数学家Fibonacci于1202年提出的“兔子繁殖问题”(又称“Fibonacci问题”)。

问题:

一个数列的第0项为0,第1项为1,以后每一项都是前两项的和,这个数列就是著名的裴波那契数列,求裴波那契数列的第N项。

算法:

f[0]:=0; f[1]:=1;

for i:=2 to n do f[i]:=f[i–1]+f[i–2];

总结:

从这个问题可以看出,在计算裴波那契数列的每一项目时,都可以由前两项推出。这样,相邻两项之间的变化有一定的规律性,我们可以将这种规律归纳成如下简捷的递推关系式:Fn=g(Fn-1),这就在数的序列中,建立起后项和前项之间的关系。然后从初始条件(或是最终结果)入手,按递推关系式递推,直至求出最终结果(或初始值)。很多问题就是这样逐步求解的。

对一个试题,我们要是能找到后一项与前一项的关系并清楚其起始条件(或最终结果),问题就可以递推了,接下来便是让计算机一步步了。让高速的计算机从事这种重复运算,真正起到“物尽其用”的效果。

递推概念

给定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当n>n0时,可以用等号(或大于号、小于号)将Hn与其前面的某些项Hi(0<i<n)联系起来,这样的式子就叫做递推关系。
  • 如何建立递推关系
  • 递推关系有何性质
  • 如何求解递推关系

解决递推问题的一般步骤

  • 建立递推关系式
  • 确定边界条件
  • 递推求解

递推的两种形式

顺推法和倒推法

递推的应用分类

阅读全文

内存数据组织 Apache Ignite

  categories:资料  author:

 1.Ignite是什么?

Apache Ignite是一个以内存为中心的分布式数据库缓存处理平台,支持事务、分析以及流式负载,可以在PB级数据上享有内存级的性能。

1.1.Ignite定位

Ignite是不是内存数据库?

,虽然Ignite的固化内存在内存和磁盘中都工作得很好,但是磁盘持久化可以禁用从而成为一个纯粹的内存数据库,支持SQL和分布式关联。

Ignite是不是内存数据网格(IMDG)?

,Ignite是一个全功能的分布式键-值数据网格,它既可以用于纯内存模式,也可以带有Ignite的原生持久化,它也可以与任何第三方数据库集成,包括RDBMS和NoSQL。
Ignite是不是一个分布式缓存?

,如果禁用原生持久化,Ignite就是一个分布式缓存,它实现了JCache规范(JSR107),并且提供了比规范更多的功能,包括分区和复制分布式模式、分布式ACID事务、SQL查询、原生持久化等等。

Ignite是不是分布式数据库?

,在整个集群的多个节点中,Ignite中的数据要么是分区模式的,要么是复制模式的,这给系统带来了伸缩性,增加了弹性。Ignite可以自动地控制数据如何分区,另外,开发者也可以插入自定义(关系)函数,以及为了提高效率将部分数据并置在一起。

Ignite是不是关系型SQL数据库?

不完整,尽管Ignite的目标是和其他的关系型SQL数据库具有类似的行为,但是在处理约束和索引方面还是有不同的。Ignite支持一级和二级索引,但是只有一级索引支持唯一性,Ignite还不支持外键约束。

Ignite是不是磁盘或者只有内存的存储?

都是,Ignite中的原生持久化是可以开关的,这使得Ignite可以持有比可用内存量大得多的数据。尤其是,少量的操作型数据集可以只保存在内存中,而更大的无法放在内存中的数据集,可以放在磁盘上,将内存作为一个缓存层,可以获得更好的性能。

Ignite是不是一个NoSQL数据库?

不确切,和其他的NoSQL数据库一样,Ignite支持高可用和水平伸缩,但是,和其它的NoSQL数据库不同,Ignite支持跨越整个集群的ACID事务和SQL。

Ignite是不是事务型数据库?

不完整,ACID事务是支持的,但是仅仅在键-值API级别,Ignite还支持跨分区的事务,这意味着事务可以跨越不同服务器不同分区中的键。

在SQL层,Ignite支持原子性,还不是事务型一致性,社区计划在未来的版本中实现SQL事务。

Ignite是不是一个多模型数据库?

,Ignite数据的建模和访问,同时支持键值和SQL,另外,Ignite还为在分布式数据上的计算处理,提供了强大的API。

Ignite是不是一个键-值存储?

阅读全文

Ignite Getting Started

  categories:资料  author:

Ignite是什么?

Apache Ignite是一个以内存为中心的分布式数据库缓存处理平台,支持事务、分析以及流式负载,可以在PB级数据上享有内存级的性能。

1.1.Ignite定位

Ignite是不是内存数据库?

,虽然Ignite的固化内存在内存和磁盘中都工作得很好,但是磁盘持久化可以禁用从而成为一个纯粹的内存数据库,支持SQL和分布式关联。

Ignite是不是内存数据网格(IMDG)?

,Ignite是一个全功能的分布式键-值数据网格,它既可以用于纯内存模式,也可以带有Ignite的原生持久化,它也可以与任何第三方数据库集成,包括RDBMS和NoSQL。
Ignite是不是一个分布式缓存?

,如果禁用原生持久化,Ignite就是一个分布式缓存,它实现了JCache规范(JSR107),并且提供了比规范更多的功能,包括分区和复制分布式模式、分布式ACID事务、SQL查询、原生持久化等等。

Ignite是不是分布式数据库?

,在整个集群的多个节点中,Ignite中的数据要么是分区模式的,要么是复制模式的,这给系统带来了伸缩性,增加了弹性。Ignite可以自动地控制数据如何分区,另外,开发者也可以插入自定义(关系)函数,以及为了提高效率将部分数据并置在一起。

Ignite是不是关系型SQL数据库?

不完整,尽管Ignite的目标是和其他的关系型SQL数据库具有类似的行为,但是在处理约束和索引方面还是有不同的。Ignite支持一级和二级索引,但是只有一级索引支持唯一性,Ignite还不支持外键约束。

Ignite是不是磁盘或者只有内存的存储?

都是,Ignite中的原生持久化是可以开关的,这使得Ignite可以持有比可用内存量大得多的数据。尤其是,少量的操作型数据集可以只保存在内存中,而更大的无法放在内存中的数据集,可以放在磁盘上,将内存作为一个缓存层,可以获得更好的性能。

Ignite是不是一个NoSQL数据库?

不确切,和其他的NoSQL数据库一样,Ignite支持高可用和水平伸缩,但是,和其它的NoSQL数据库不同,Ignite支持跨越整个集群的ACID事务和SQL。

Ignite是不是事务型数据库?

不完整,ACID事务是支持的,但是仅仅在键-值API级别,Ignite还支持跨分区的事务,这意味着事务可以跨越不同服务器不同分区中的键。

在SQL层,Ignite支持原子性,还不是事务型一致性,社区计划在未来的版本中实现SQL事务。

Ignite是不是一个多模型数据库?

,Ignite数据的建模和访问,同时支持键值和SQL,另外,Ignite还为在分布式数据上的计算处理,提供了强大的API。

Ignite是不是一个键-值存储?

阅读全文


快乐成长 每天进步一点点      京ICP备18032580号-1