偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Apache Ignite 內(nèi)存速度級(jí)的分布式數(shù)據(jù)庫(kù)

開(kāi)源
Apache Ignite 是一個(gè)專注于分布式內(nèi)存計(jì)算的開(kāi)源項(xiàng)目。Ignite 將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,分布在提供快速數(shù)據(jù)訪問(wèn)的多個(gè)節(jié)點(diǎn)上。將數(shù)據(jù)異步傳播到持久層的選項(xiàng)是一個(gè)額外的優(yōu)勢(shì)。

介紹

企業(yè)正在以巨大的速度積累數(shù)據(jù),需要大量的存儲(chǔ)空間。由于要存儲(chǔ)和處理數(shù) TB 的數(shù)據(jù),開(kāi)發(fā)人員常常會(huì)陷入困境。 Apache Ignite 以內(nèi)存為中心的分布式數(shù)據(jù)庫(kù)、緩存和處理平臺(tái),用于事務(wù)性、分析性和流式工作負(fù)載,可以在PB級(jí)數(shù)據(jù)上享有內(nèi)存級(jí)的性能。Ignite 為應(yīng)用和不同的數(shù)據(jù)源之間提供一個(gè)高性能、分布式內(nèi)存中數(shù)據(jù)組織管理的框架。

Ignite的一個(gè)突出特性是完全支持分布式的SQL關(guān)聯(lián),Ignite支持并置和非并置的數(shù)據(jù)關(guān)聯(lián)。并置時(shí),關(guān)聯(lián)是在每個(gè)節(jié)點(diǎn)的可用數(shù)據(jù)集上執(zhí)行的,而不需要在網(wǎng)絡(luò)中移動(dòng)大量的數(shù)據(jù),這種方式在分布式數(shù)據(jù)庫(kù)中提供了最好的擴(kuò)展性和性能。Ignite和其他關(guān)系型數(shù)據(jù)庫(kù)具有相似的行為,但是在處理約束和索引方面略有不同。Ignite支持一級(jí)和二級(jí)索引,但是只有一級(jí)索引支持唯一性。在持久化方面,Ignite固化內(nèi)存在內(nèi)存和磁盤(pán)中都能良好的工作,但是持久化到磁盤(pán)是可以禁用的,一般將Ignite作為一個(gè)內(nèi)存數(shù)據(jù)庫(kù)來(lái)使用。

發(fā)展史

特性

  • 多層存儲(chǔ):Apache Ignite 多層存儲(chǔ)實(shí)現(xiàn)了一種尖端的存儲(chǔ)架構(gòu),它將內(nèi)存的性能優(yōu)勢(shì)與基于磁盤(pán)的數(shù)據(jù)庫(kù)的可擴(kuò)展性和持久性優(yōu)勢(shì)相結(jié)合,存儲(chǔ)模式包括內(nèi)存模式、內(nèi)存+外部數(shù)據(jù)庫(kù)模式、多層數(shù)據(jù)庫(kù)模式
  • ACID兼容:存儲(chǔ)在Ignite中的數(shù)據(jù),在內(nèi)存和磁盤(pán)上是同時(shí)支持ACID的,使Ignite成為一個(gè)強(qiáng)一致的系統(tǒng),Ignite可以在整個(gè)網(wǎng)絡(luò)的多臺(tái)服務(wù)器上保持事務(wù)。
  • SQL支持:Ignite提供了完整的SQL、DDL和DML的支持,可以使用純SQL而不用寫(xiě)代碼與Ignite進(jìn)行交互,這意味著只使用SQL就可以創(chuàng)建表和索引,以及插入、更新和查詢數(shù)據(jù)。有這個(gè)完整的SQL支持,Ignite就可以作為一種分布式SQL數(shù)據(jù)庫(kù)。
  • 鍵-值:Ignite的內(nèi)存數(shù)據(jù)網(wǎng)格組件是一個(gè)完整的事務(wù)型分布式鍵值存儲(chǔ),它可以在有幾百臺(tái)服務(wù)器的集群上進(jìn)行水平擴(kuò)展。在打開(kāi)持久化時(shí),Ignite可以存儲(chǔ)比內(nèi)存容量更大的數(shù)據(jù),并且在整個(gè)集群重啟之后仍然可用。
  • 并置處理:大多數(shù)傳統(tǒng)數(shù)據(jù)庫(kù)是以客戶機(jī)-服務(wù)器的模式運(yùn)行的,這意味著數(shù)據(jù)必須發(fā)給客戶端進(jìn)行處理,這個(gè)方式需要在客戶端和服務(wù)端之間進(jìn)行大量的數(shù)據(jù)移動(dòng),通常來(lái)說(shuō)不可擴(kuò)展。而Ignite使用了另外一種方式,可以將輕量級(jí)的計(jì)算發(fā)給數(shù)據(jù),即數(shù)據(jù)的并置計(jì)算,從結(jié)果上來(lái)說(shuō),Ignite擴(kuò)展性更好,并且使數(shù)據(jù)移動(dòng)最小化。
  • 可擴(kuò)展性和持久性:Ignite是一個(gè)彈性的、可水平擴(kuò)展的分布式系統(tǒng),它支持按需地添加和刪除節(jié)點(diǎn),Ignite還可以存儲(chǔ)數(shù)據(jù)的多個(gè)副本,這樣可以使集群從部分故障中恢復(fù)。如果打開(kāi)了持久化,那么Ignite中存儲(chǔ)的數(shù)據(jù)可以在集群的完全故障中恢復(fù)。Ignite集群重啟會(huì)非常快,因?yàn)閿?shù)據(jù)從磁盤(pán)上獲取,瞬間就具有了可操作性。從結(jié)果上來(lái)說(shuō),數(shù)據(jù)不需要在處理之前預(yù)加載到內(nèi)存中,而Ignite會(huì)緩慢地恢復(fù)內(nèi)存級(jí)的性能。
  • 機(jī)器學(xué)習(xí):Ignite的機(jī)器學(xué)習(xí)(ML)是一套簡(jiǎn)單、可擴(kuò)展以及高效的工具,可以構(gòu)建可預(yù)測(cè)的機(jī)器學(xué)習(xí)模型,而不需要昂貴的數(shù)據(jù)傳輸。
  • 多語(yǔ)言支持:Ignite是以Java語(yǔ)言為主進(jìn)行開(kāi)發(fā)的,因此可以在JVM支持的任何操作系統(tǒng)和架構(gòu)上部署和運(yùn)行

場(chǎng)景

三種主要使用場(chǎng)景

  • 應(yīng)用程序加速和橫向擴(kuò)展:使用 Ignite 作為內(nèi)存緩存或部署在一個(gè)或多個(gè)外部數(shù)據(jù)庫(kù)上的內(nèi)存數(shù)據(jù)網(wǎng)格,將現(xiàn)有應(yīng)用程序加速 100 倍。
  • 用于HTAP 工作負(fù)載的分布式數(shù)據(jù)庫(kù):通過(guò)將 Ignite 用作可擴(kuò)展超出可用內(nèi)存容量的數(shù)據(jù)庫(kù),構(gòu)建支持事務(wù)和分析工作負(fù)載的應(yīng)用程序。
  • 數(shù)字集成中心:創(chuàng)建一個(gè)高級(jí)平臺(tái)架構(gòu),將多個(gè)后端系統(tǒng)和數(shù)據(jù)庫(kù)聚合到一個(gè)低延遲和共享的數(shù)據(jù)存儲(chǔ)中。

存儲(chǔ)模式

Apache Ignite 多層存儲(chǔ)實(shí)現(xiàn)了一種尖端的存儲(chǔ)架構(gòu),它將內(nèi)存的性能優(yōu)勢(shì)與基于磁盤(pán)的數(shù)據(jù)庫(kù)的可擴(kuò)展性和持久性優(yōu)勢(shì)相結(jié)合,存儲(chǔ)模式包括內(nèi)存模式、內(nèi)存+外部數(shù)據(jù)庫(kù)模式、多層數(shù)據(jù)庫(kù)模式

內(nèi)存模式

基于內(nèi)存計(jì)算解決方案的所有優(yōu)勢(shì)。以最低延遲和最高吞吐量存儲(chǔ)和處理數(shù)據(jù),整個(gè)數(shù)據(jù)集僅在內(nèi)存層中可用,為了避免節(jié)點(diǎn)故障,建議在集群中至少保留一份數(shù)據(jù)的備份副本,適用于數(shù)據(jù)緩存、高性能計(jì)算、Web 會(huì)話緩存、實(shí)時(shí)處理連續(xù)數(shù)據(jù)流

內(nèi)存+外部數(shù)據(jù)庫(kù)模式

通過(guò)將 Ignite 部署為現(xiàn)有基于磁盤(pán)的數(shù)據(jù)庫(kù)和后端系統(tǒng)之上的緩存層來(lái)加速和卸載現(xiàn)有數(shù)據(jù)庫(kù)。以將 Ignite 用作現(xiàn)有數(shù)據(jù)庫(kù)(例如 RDBMS 或 NoSQL 數(shù)據(jù)庫(kù),例如 Apache Cassandra 或 MongoDB)之上的緩存層,Ignite 提供與 Apache Cassandra 的開(kāi)箱即用集成。對(duì)于其他沒(méi)有現(xiàn)成集成的 NoSQL 數(shù)據(jù)庫(kù),您可以提供自己的CacheStore接口實(shí)現(xiàn)。

多層數(shù)據(jù)庫(kù)模式

通常,內(nèi)存緩存和數(shù)據(jù)庫(kù)提供有限的持久性能力。Ignite持久性沒(méi)有任何限制,超出可用內(nèi)存容量并在重啟時(shí)跳過(guò)內(nèi)存預(yù)熱,100% 的數(shù)據(jù)被持久化到 Ignite 原生持久化,相同數(shù)量或更少的數(shù)據(jù)緩存在內(nèi)存中。緩存的數(shù)據(jù)越多,性能越快。應(yīng)用程序可以查詢內(nèi)存中和僅磁盤(pán)的記錄,透明地?cái)U(kuò)展到可用內(nèi)存容量之外。由于 Ignite 可以從磁盤(pán)提供數(shù)據(jù),因此無(wú)需在重新啟動(dòng)時(shí)進(jìn)行內(nèi)存預(yù)熱。

分布式 SQL

對(duì) SQL 的原生支持讓可以像使用標(biāo)準(zhǔn) SQL 數(shù)據(jù)庫(kù)一樣使用 Ignite,Apache Ignite自帶JDBC 驅(qū)動(dòng)程序、ODBC 驅(qū)動(dòng)程序以及支持Java、C#、C++、Python 和其他編程語(yǔ)言的sql API,Ignite支持所有的DML指令,包括SELECT、UPDATE、INSERT和DELETE,它還實(shí)現(xiàn)了一個(gè)與分布式系統(tǒng)有關(guān)的DDL指令的子集。Ignite的一個(gè)突出特性是完全支持分布式的SQL關(guān)聯(lián),Ignite支持并置和非并置的數(shù)據(jù)關(guān)聯(lián)。并置時(shí),關(guān)聯(lián)是在每個(gè)節(jié)點(diǎn)的可用數(shù)據(jù)集上執(zhí)行的,而不需要在網(wǎng)絡(luò)上移動(dòng)大量的數(shù)據(jù),這種方式在分布式數(shù)據(jù)庫(kù)中提供了最好的擴(kuò)展性和性能

分布式 ACID

Ignite是一個(gè)強(qiáng)一致的平臺(tái),完全支持分布式ACID事務(wù),內(nèi)存和磁盤(pán)層,都提供一樣的一致性保證。Ignite的事務(wù),可以跨越多個(gè)節(jié)點(diǎn),多個(gè)緩存(或者說(shuō)表)以及多個(gè)分區(qū)。對(duì)于應(yīng)用來(lái)說(shuō),樂(lè)觀鎖和悲觀鎖都是可用的,樂(lè)觀模式還支持無(wú)死鎖事務(wù),可以在業(yè)務(wù)代碼層面避免分布式死鎖。

Ignite采用二階段提交協(xié)議,在分布式系統(tǒng)中,事務(wù)可能跨越多個(gè)節(jié)點(diǎn),顯然,要保證所有參與節(jié)點(diǎn)的數(shù)據(jù)一致性是一個(gè)很大的挑戰(zhàn)。比如,如果一個(gè)節(jié)點(diǎn)故障,故障節(jié)點(diǎn)的事務(wù)就不能完整提交,在這類場(chǎng)景中,要保證數(shù)據(jù)一致性,一個(gè)廣泛使用的方法是二階段提交協(xié)議(2PC)。Ignite帶來(lái)了二階段提交協(xié)議的最快實(shí)現(xiàn),另外,如果事務(wù)只涉及一個(gè)分區(qū)或者一個(gè)節(jié)點(diǎn),Ignite會(huì)使用一個(gè)更快的一階段提交協(xié)議。在一個(gè)事務(wù)中,如果數(shù)據(jù)發(fā)生了變化,那么在變化提交之前,Ignite會(huì)在本地事務(wù)映射中保存一個(gè)事務(wù)的狀態(tài),提交時(shí),數(shù)據(jù)會(huì)被發(fā)送到相關(guān)的遠(yuǎn)程節(jié)點(diǎn),其中只有持有相關(guān)數(shù)據(jù)主副本的節(jié)點(diǎn),才會(huì)參與事務(wù)。

一致性和Ignite持久化

如果使用了Ignite的原生持久化,那么所有的更新都會(huì)寫(xiě)入預(yù)寫(xiě)日志(WAL)文件中來(lái)保證一致性,即使事務(wù)執(zhí)行期間集群或者某個(gè)節(jié)點(diǎn)故障,也沒(méi)有問(wèn)題。WAL的目的是,以附加模式將更新傳播到磁盤(pán),這是將數(shù)據(jù)持久化到磁盤(pán)的最快方式,如果集群或者某個(gè)節(jié)點(diǎn)故障,WAL提供了一個(gè)故障場(chǎng)景的恢復(fù)機(jī)制,集群總是可以恢復(fù)到最近成功提交的事務(wù)狀態(tài)。

一致性和第三方持久化

如果Ignite作為緩存層運(yùn)行于第三方數(shù)據(jù)庫(kù)之上,比如RDBMS,Ignite仍然會(huì)保證緩存數(shù)據(jù)和外部數(shù)據(jù)的事務(wù)一致性。比如,如果RDBMS作為持久化層,Ignite會(huì)在將提交消息發(fā)給相關(guān)的集群節(jié)點(diǎn)之前,將事務(wù)寫(xiě)入數(shù)據(jù)庫(kù),這樣的話,如果在數(shù)據(jù)庫(kù)層發(fā)生事務(wù)故障,Ignite仍然會(huì)將回滾消息發(fā)給所有的相關(guān)節(jié)點(diǎn),從而保持兩者之間的數(shù)據(jù)一致性

架構(gòu)

  • 持久化層:Ignite同時(shí)支持原生持久化和用第三方存儲(chǔ)做持久化,比如RMDBMS,HDFS等。雖然Ignite有以內(nèi)存為中心的存儲(chǔ),但是畢竟內(nèi)存中數(shù)據(jù)在節(jié)點(diǎn)出現(xiàn)故障的時(shí)候都有丟失的可能性。 因此持久化層為Ignite提供了故障恢復(fù)的能力。另外有了持久化能力,可以讓冷熱數(shù)據(jù)更合理使用內(nèi)存。比如在內(nèi)存足夠情況下,數(shù)據(jù)可以全部加載到內(nèi)存中。 而當(dāng)內(nèi)存緊張時(shí),可以只加載熱數(shù)據(jù)至內(nèi)存中,冷數(shù)據(jù)就留在硬盤(pán)上。
  • Ignite內(nèi)存存儲(chǔ)層:這一層可以算是Ignite的核心層了。數(shù)據(jù)可以通過(guò)不同分區(qū),復(fù)制模式分布在Ignite集群所有節(jié)點(diǎn),部分節(jié)點(diǎn)或者本地節(jié)點(diǎn)。通過(guò)數(shù)據(jù)分區(qū)和復(fù)制,比如1主多備的方式,可以提高數(shù)據(jù)的可用性,即便主數(shù)據(jù)節(jié)點(diǎn)故障后,集群中的備數(shù)據(jù)節(jié)點(diǎn)可以切換為主節(jié)點(diǎn)繼續(xù)提供讀寫(xiě)服務(wù)。 同時(shí)備節(jié)點(diǎn)也可以作為只讀節(jié)點(diǎn)使用,提高數(shù)據(jù)讀操作的吞吐量。Ignite還利用Java堆外內(nèi)存存儲(chǔ)數(shù)據(jù)和索引,減少了JVM的垃圾回收次數(shù)和時(shí)間,提供了更高效的操作。
  • API接口層: 豐富多樣的接口支撐Ignite向上提供了諸如分布式數(shù)據(jù)庫(kù),數(shù)據(jù)網(wǎng)格和計(jì)算網(wǎng)格的能力。Key/Value+transaction,可以把Ignite當(dāng)做和Redis,Memcached一樣的緩存使用。 而對(duì)SQL ANSI-99的兼容,有可以把Ignite當(dāng)做一個(gè)分布式數(shù)據(jù)庫(kù)來(lái)用。 除了數(shù)據(jù)能力,Ignite還允許你通過(guò)Compute Grid的接口提交計(jì)算任務(wù),充分利用集群的計(jì)算資源。Ignite還支持把計(jì)算任務(wù)部署在和計(jì)算數(shù)據(jù)所在的相同節(jié)點(diǎn)上,減少網(wǎng)絡(luò)傳輸和數(shù)據(jù)的序列化開(kāi)銷,提高計(jì)算效率。 流處理,機(jī)器學(xué)習(xí)網(wǎng)格,服務(wù)網(wǎng)格,消息隊(duì)列等,Ignite也同時(shí)提供支持。

結(jié)論

Apache Ignite 是一個(gè)專注于分布式內(nèi)存計(jì)算的開(kāi)源項(xiàng)目。Ignite 將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,分布在提供快速數(shù)據(jù)訪問(wèn)的多個(gè)節(jié)點(diǎn)上。將數(shù)據(jù)異步傳播到持久層的選項(xiàng)是一個(gè)額外的優(yōu)勢(shì)。此外,與各種數(shù)據(jù)庫(kù)集成的能力也使 Ignite 成為開(kāi)發(fā)人員使用它進(jìn)行數(shù)據(jù)庫(kù)緩存的簡(jiǎn)單選擇?!pache Ignite整體來(lái)說(shuō),它基本把現(xiàn)在分布式的一些概念都集成了,包含分布式存儲(chǔ)、分布式計(jì)算、分布式服務(wù)、流式計(jì)算等等。而且,它對(duì)Java語(yǔ)言的支持,與JDK能夠很好的整合,能夠很友好的兼容JDK的現(xiàn)有API,當(dāng)你開(kāi)啟一個(gè)線程池,你不需要關(guān)系是本地線程池還是分布式線程池,只管提交任務(wù)就行。Apache Ignite在與RDBMS、Hadoop、Spark、Kafka等傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)和主流大數(shù)據(jù)套件的集成,提供了非常靈活好用的組件API。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2018-03-02 15:17:16

分布式數(shù)據(jù)庫(kù)MySQL

2012-09-20 09:58:11

分布式分布式數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)

2021-12-20 15:44:28

ShardingSph分布式數(shù)據(jù)庫(kù)開(kāi)源

2023-12-05 07:30:40

KlustronBa數(shù)據(jù)庫(kù)

2023-07-31 08:27:55

分布式數(shù)據(jù)庫(kù)架構(gòu)

2023-07-28 07:56:45

分布式數(shù)據(jù)庫(kù)SQL

2023-11-14 08:24:59

性能Scylla系統(tǒng)架構(gòu)

2022-03-10 06:36:59

分布式數(shù)據(jù)庫(kù)排序

2022-06-09 10:19:10

分布式數(shù)據(jù)庫(kù)

2022-08-01 18:33:45

關(guān)系型數(shù)據(jù)庫(kù)大數(shù)據(jù)

2020-06-23 09:35:13

分布式數(shù)據(jù)庫(kù)網(wǎng)絡(luò)

2023-03-07 09:49:04

分布式數(shù)據(jù)庫(kù)

2024-09-09 09:19:57

2011-05-19 09:18:48

分布式數(shù)據(jù)庫(kù)

2024-03-11 08:57:02

國(guó)產(chǎn)數(shù)據(jù)庫(kù)證券

2023-04-26 06:56:31

分布式數(shù)據(jù)庫(kù)偽需求

2018-05-25 13:12:10

UCloud數(shù)據(jù)庫(kù)UDDB

2012-09-29 13:18:23

分布式數(shù)據(jù)庫(kù)Google Span

2021-12-14 10:16:00

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)