最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ApacheIgnite1.7有哪些新特性

這篇文章主要講解了“Apache Ignite1.7有哪些新特性”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Apache Ignite1.7有哪些新特性”吧!

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比信州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式信州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋信州地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

Apache Ignite 1.7的新特性-非并置的分布式關(guān)聯(lián)

最近,Apache Ignite發(fā)布了1.7.0版,在眾多的改變中,有一個(gè)眾多Apache Ignite用戶和客戶期待已久的殺手級特性-SQL查詢支持非并置的分布式關(guān)聯(lián)。本文會(huì)聚焦于這個(gè)特性,詳細(xì)描述非并置的分布式關(guān)聯(lián)是如何工作的以及它與傳統(tǒng)的(基于關(guān)系并置)Apache Ignite關(guān)聯(lián)有何不同。

基于關(guān)系并置的關(guān)聯(lián)

以前,Apache Ignite支持跨多個(gè)不同表的SQL關(guān)聯(lián)查詢,但是要求一個(gè)查詢中關(guān)聯(lián)的緩存數(shù)據(jù)要并置在一起。實(shí)際上在Ignite中,并置通過關(guān)系鍵可以非常方便地啟用,這時(shí),一個(gè)業(yè)務(wù)實(shí)體的數(shù)據(jù)會(huì)與另一個(gè)相關(guān)業(yè)務(wù)實(shí)體的數(shù)據(jù)存儲(chǔ)于同一個(gè)節(jié)點(diǎn)。 比如,假設(shè)有兩個(gè)業(yè)務(wù)實(shí)體,OrganizationPerson,并且一個(gè)Organization的Id會(huì)作為來自該Organization的Person的一個(gè)關(guān)系鍵。然后,Ignite會(huì)確保將Person的所有數(shù)據(jù)存儲(chǔ)于他們所屬的Organization數(shù)據(jù)所在的節(jié)點(diǎn)上,這個(gè)簡單的概念可以執(zhí)行一系列可以想象的兼容于ANSI-99的SQL查詢,包括多個(gè)緩存的關(guān)聯(lián)。 基本上,一個(gè)使用關(guān)聯(lián)的SQL查詢與一個(gè)沒有關(guān)聯(lián)的SQL查詢的執(zhí)行流程是絕對一致的。 我們可以看一下一個(gè)很基本的查詢的執(zhí)行流程,它使用Organization和Person業(yè)務(wù)實(shí)體通過如下方式定義:

  • Organization(id, address)實(shí)體:這個(gè)id會(huì)作為Organization的ID,它的值在將Organization注入緩存時(shí)會(huì)作為緩存鍵,這個(gè)用作緩存鍵的鍵在Ignite的SQL引擎層會(huì)被視為一個(gè)主鍵,這個(gè)概念會(huì)貫穿本文始終。

  • Person(name, salary)實(shí)體:位于Persons緩存,會(huì)使用AffinityKey(id, orgId)作為緩存鍵,這里AffinityKey是Ignite中的一個(gè)特別的對象,他會(huì)定義一個(gè)Person的唯一Id(第一個(gè)參數(shù))以及他的關(guān)系鍵(第二個(gè)參數(shù)),這里,Organization ID(orgId)被選為一個(gè)Person的關(guān)系鍵,這意味著Persons數(shù)據(jù)會(huì)與他們所屬的Organizations的數(shù)據(jù)位于同一個(gè)節(jié)點(diǎn)上。

在定義這些業(yè)務(wù)實(shí)體以及預(yù)加載緩存數(shù)據(jù)之后,可以隨意執(zhí)行一個(gè)像下面這樣的SQL查詢,因?yàn)镻erson與他們的Organization是關(guān)系并置的,Ignite會(huì)確保返回一個(gè)完整的結(jié)果集。

SELECT * FROM Organization as org JOIN Person as p ON org.id = p.orgId

這個(gè)查詢的執(zhí)行流程是這樣的:

  1. 查詢發(fā)起節(jié)點(diǎn)(mapper和reducer)會(huì)將查詢發(fā)給所有緩存數(shù)據(jù)的節(jié)點(diǎn);

  2. 從reducer收到查詢的所有節(jié)點(diǎn)會(huì)在本地執(zhí)行查詢,只會(huì)使用本地?cái)?shù)據(jù)執(zhí)行關(guān)聯(lián);

  3. 這些節(jié)點(diǎn)會(huì)將結(jié)果集的一部分反饋給reducer;

  4. reducer最后會(huì)匯總從所有遠(yuǎn)程節(jié)點(diǎn)收到的結(jié)果集,然后向發(fā)起節(jié)點(diǎn)發(fā)送一個(gè)最終的聚合的結(jié)果。

非并置的分布式關(guān)聯(lián)

如果同樣的查詢執(zhí)行在一個(gè)非關(guān)系并置的數(shù)據(jù)上,那么會(huì)得到一個(gè)不完整以及不一致的結(jié)果,原因是Apache Ignite在1.7.0之前的版本只會(huì)在本地?cái)?shù)據(jù)上執(zhí)行查詢(就像上述流程的第二步描述的那樣)。 然而,在Ignite 1.7.0之后的版本不再是這樣的了,他會(huì)支持非并置的分布式關(guān)聯(lián),這些關(guān)聯(lián)不再要求并置數(shù)據(jù)。 現(xiàn)在,會(huì)使用Person的真實(shí)Id作為緩存鍵,替代AffinityKey(id, orgId),然后將orgId字段加入Person對象的內(nèi)部來執(zhí)行這兩個(gè)緩存的關(guān)聯(lián),即使這些發(fā)生了改變,仍然會(huì)得到一個(gè)完整的結(jié)果,不用管實(shí)際上Person的數(shù)據(jù)是否與他們的Organization數(shù)據(jù)并置在一起,這是因?yàn)樽钚掳娴腎gnite會(huì)以如下的流程執(zhí)行同樣的SQL查詢(上面提到的):

  1. 查詢發(fā)起節(jié)點(diǎn)(mapper和reducer)會(huì)將查詢發(fā)給所有緩存數(shù)據(jù)的節(jié)點(diǎn);

  2. 從reducer收到查詢的所有節(jié)點(diǎn)會(huì)在本地執(zhí)行查詢,但是使用本地?cái)?shù)據(jù)和遠(yuǎn)程節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行關(guān)聯(lián)(因?yàn)閿?shù)據(jù)是全集群分布的);

  3. 這些節(jié)點(diǎn)會(huì)將結(jié)果集的一部分反饋給reducer;

  4. reducer最后會(huì)匯總從所有遠(yuǎn)程節(jié)點(diǎn)收到的結(jié)果集,然后向發(fā)起節(jié)點(diǎn)發(fā)送一個(gè)最終的聚合的結(jié)果。

這里需要注意的一個(gè)重要的事是,由于查詢的特殊性,一個(gè)節(jié)點(diǎn)會(huì)向集群發(fā)送廣播來請求在第二步中丟失的數(shù)據(jù),然而,現(xiàn)在也有一種方式來優(yōu)化,就是SQL引擎會(huì)為特定的關(guān)聯(lián)類型、典型的查詢將廣播切換為單播,下面的修改就會(huì)切換為單播模式:

SELECT * FROM Organization as org JOIN Person as p ON org._key = p.orgId

在這個(gè)查詢中,如果SQL引擎決定在Persons緩存加上Organizations上執(zhí)行查詢,然后引擎會(huì)使用org._key(s)向存儲(chǔ)Organizations緩存的節(jié)點(diǎn)發(fā)送單播請求,這里_key是Ignite SQL查詢中使用的一個(gè)特別的關(guān)鍵字,他會(huì)指向一個(gè)對象的緩存鍵/主鍵?;旧?,因?yàn)橐嬷懒怂木彺骀I/主鍵,會(huì)輕松地找到存儲(chǔ)條目的節(jié)點(diǎn),用于多個(gè)緩存的關(guān)系鍵也是同樣的道理。

感謝各位的閱讀,以上就是“Apache Ignite1.7有哪些新特性”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Apache Ignite1.7有哪些新特性這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!


文章題目:ApacheIgnite1.7有哪些新特性
URL地址:http://fisionsoft.com.cn/article/gcdcdi.html