Cockroach DB 1.0发布
分布式SQL數(shù)據(jù)庫Cockroach DB遵循軟件產(chǎn)品以動物命名的模式。近日,該數(shù)據(jù)庫的第一個(gè)生產(chǎn)就緒版本1.0發(fā)布。
許多人將Cockroach DB視為Google?Spanner的開源版本。后者是一個(gè)強(qiáng)一致性、橫向可擴(kuò)展的RDBMS,它起初是一個(gè)服務(wù)于谷歌服務(wù)的內(nèi)部項(xiàng)目,近日加入了谷歌云。和NuoDB一樣,這些數(shù)據(jù)庫都致力于解決同樣的問題,那個(gè)NoSQL數(shù)據(jù)庫在過去十年中設(shè)法從不同角度解決的問題。高可用性、線性可擴(kuò)展性、強(qiáng)一致性、運(yùn)行中復(fù)制技術(shù)以及快速響應(yīng)和呈指數(shù)增長的數(shù)據(jù)集,所有這些問題都是數(shù)據(jù)庫供應(yīng)商數(shù)十年來致力于解決的問題。
NoSQL供應(yīng)商采用的一種方法是放松關(guān)系型數(shù)據(jù)庫強(qiáng)加的部分約束,一致性、可用性或分區(qū)容錯(cuò)性,就像CAP理論所描述的那樣。SQL支持即使存在,大多數(shù)時(shí)候也是受限的。
另一方面,有時(shí)稱為“NewSQL”數(shù)據(jù)庫的方法是從頭設(shè)計(jì)一種完全兼容SQL的數(shù)據(jù)庫系統(tǒng),并且仍然設(shè)法滿足上述所有需求。
構(gòu)建分布式數(shù)據(jù)庫的其中一個(gè)最大的挑戰(zhàn)是事件順序。一個(gè)事務(wù)中的有序操作可以確保讀取者和寫入者有一致的數(shù)據(jù)視圖。
根據(jù)谷歌發(fā)表的論文,Google?Spanner使用了TrueTime概念中的GPS和原子鐘在幾毫秒內(nèi)實(shí)現(xiàn)不同節(jié)點(diǎn)之間的同步。Cockroach的全局排序方法使用了他們在博客中描述的混合邏輯時(shí)鐘。據(jù)稱,兩種方法都違背了CAP理論的定律,就是在一個(gè)分布式系統(tǒng)中,我們無法通過稍微不同的實(shí)現(xiàn)同時(shí)保證一致性、高可用性和分區(qū)容錯(cuò)性。
Cockroach的第一個(gè)生產(chǎn)就緒版本還提供了零宕機(jī)(在線)模式修改、次級索引和外鍵支持。在提供高可用性的同時(shí),Cockroach還重點(diǎn)強(qiáng)調(diào)了一致性,使用每個(gè)數(shù)據(jù)集三個(gè)或三個(gè)以上的活動副本,所有這些副本都可以同時(shí)讀/寫。除了增加高可用性外,地理上分散的客戶端可以連接到最近的服務(wù)器進(jìn)行寫入,確保每個(gè)客戶端的狀態(tài)在全球范圍內(nèi)都是一致的,在這種情況下,該“多活可用性”模型也很有用。Cockroach的其中一個(gè)客戶是一家大型游戲公司,他們正積極地在生產(chǎn)環(huán)境中使用這項(xiàng)特性。Cockroach的主要客戶還包括百度,他們積極地用它處理每秒23000多次的寫入操作。
Cockroach DB的一大賣點(diǎn)是,它不需要重寫MVC代碼或者使用一些中間層翻譯ORM和數(shù)據(jù)庫查詢,因?yàn)樗峁┝嗣嫦蛟S多流行框架(如Ruby on Rails、Hibernate、Python和Node的Sequelize)的連接器及示例代碼。GitHub上提供了詳細(xì)的架構(gòu)圖,企業(yè)客戶可以獲得商業(yè)支持。復(fù)雜SQL聯(lián)合查詢還不夠優(yōu)化,它的名字也讓許多用戶心情復(fù)雜,但這沒有阻止Cockroach于月初在紅點(diǎn)創(chuàng)投領(lǐng)投的B輪融資中獲得了2700萬美元。
總結(jié)
以上是生活随笔為你收集整理的Cockroach DB 1.0发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: CoreML实现的MobileNet
 - 下一篇: 史上最复杂业务场景,逼出阿里高可用三大法