<dfn id="hx5t3"><strike id="hx5t3"><em id="hx5t3"></em></strike></dfn>

    <thead id="hx5t3"></thead><nobr id="hx5t3"><font id="hx5t3"><rp id="hx5t3"></rp></font></nobr>

    <listing id="hx5t3"></listing>

    <var id="hx5t3"></var>
    <big id="hx5t3"></big>

      
      

      <output id="hx5t3"><ruby id="hx5t3"></ruby></output>
      <menuitem id="hx5t3"><dfn id="hx5t3"></dfn></menuitem>

      <big id="hx5t3"></big>

        深入了解開源數據庫

        芒果果

        深入了解開源數據庫

        開源數據庫只是隨其源代碼一起分發的常規數據庫。

        用戶可以自由地閱讀、修改和擴展軟件。對于許多人來說,最有吸引力的特性可能是它可以在任何時候在任何地方的任何硬件上運行它。源代碼是所有程序員都可以根據自己的需要使用的公共資源。

        什么是開源數據庫

        并不是說架構、語言或者定義開源數據庫的特性集有什么不同。事實上,許多開源選項就像它們的專有版本一樣使用 SQL 版本。

        對于與專有軟件供應商重新授權談判的管理人員來說,許可一直很有吸引力。如果源代碼不被共享,他們唯一的選擇就是轉移到另一個產品,這通常包括大量的重寫。

        但是,天下沒有免費的午餐。這些源代碼或許也存在一些“陷阱”,有些比較明顯有些則是隱藏起來的。許多開源許可證中,有些對用戶幾乎沒有任何限制,有些則堅持要求用戶共享任何增強,從根本上確保公共代碼對所有人保持開放。

        另一個沒有明確說明但對用戶來說非常重要的就是,必須有人付錢給開發人員。

        一些使用開放源碼數據庫的公司會雇人為代碼庫做貢獻。他們不是購買專有許可證,而是通過向開發人員支付薪水。選擇這種方式的公司傾向于他們對所獲得的代碼庫的控制。

        許多開源數據庫是在混合模式下發布的。有些人會創建兩個不同的版本,其中更簡單、更通用的代碼可以被稱為“社區版”,并且可以自由發布。探索該技術并創建新原型的開發人員可以免費下載它。

        支持開發的公司的賬單通常由逐漸采用”商業版本”的公司支付,這種版本通常提供與處理較大數據集或提供更好的安全性有關的額外功能。它們通常是新開發人員不需要的特性,但是對于運行生產代碼的團隊來說,它們提供了長期的價值。設置多個版本并確保每個版本都有正確的特性是一門藝術。在商業版中保留太多的功能,沒有人會去嘗試。在社區版中留下太多,沒有人會覺得需要升級和付費。

        開放源碼數據庫可以分為很多類別,這些類別在很大程度上取決于它們的發展時代。最早的工具,如 MySQL 或 PostgreSQL,仿效了商業領袖。它們使用 SQL 語言,并將數據存儲在按索引排序、由 JOIN 例程鏈接的關系表中。有時它們并不提供同樣完整的特性選擇,但是它們逐漸進化到支持相同的數據存儲風格。

        后來的 NoSQL 數據庫,如 MongoDB 和 Cassandra,以其靈活的模式和文檔風格的鍵值對存儲而聞名。這種特殊類型的數據庫在很大程度上演化為開放源碼。

        一些最新的數據庫,比如那些支持分類賬或地理數據的數據庫,通常是幾對產品的混合體。一個是免費提供的功能齊全的社區版本。另一個通常被稱為“企業版”,因為它包含的特性支持更大的數據集,而這些數據集可能需要更高的穩定性和可靠性。這些額外的功能通常只有在付費的情況下才能使用。

        主要供應商是如何接受開源的

        甲骨文在 2009 年收購 Sun Microsystems 的過程中收購了 MySQL,有效地認識到了開源模式的力量,于是他們繼續開發和支持數據庫。用戶可以選擇免費版,也就是所謂的社區版,也可以選擇更高級的版本,其中包含大公司所需的額外功能。其中,備份、額外的安全性和集群管理是需要付費的。

        甲骨文還收購了 BerkeleyDB,這是一組常常被編譯成程序的鍵值數據庫。它們使開發人員可以減輕維護數據結構的工作。

        微軟已經選擇在 Azure 云上托管一些主要的開源數據庫。希望依賴 PostgreSQL 或 MySQL 的團隊可以啟動由微軟管理的實例,從而省去配置和維護服務器的麻煩。

        其他云供應商也在遵循類似的路徑,亞馬遜、谷歌、DigitalOcean、Rackspace 和其他幾家公司都提供了租用全配置服務器的選擇,這些服務器都有主流開源數據庫的運行版本。亞馬遜獨自提供了大多數主要開源數據庫的托管版本。

        這些托管實例的出現使一些開發人員感到困擾。許多云計算提供商發布的新產品公告都提供了安裝和維護開源軟件包的信息。這些不是無關緊要的任務,但是工作可以自動化。這導致了工具開發人員和云公司之間的摩擦,而這些沖突還遠未解決。

        從開源項目開始的新數據庫

        許多新數據庫都是從開源項目開始的。有數十家新公司根據社區開源許可證發布了新數據庫。其中大多數公司還試圖通過出售一些支持和額外的專有功能來支持自己。

        這些開源項目中,有些項目建立在以前的版本之上。MariaDB 是 MySQL 的創始人之一 Monty Widenius 發起的 MySQL 的分支。在把 MySQL 賣給甲骨文后,他開始了這個新版本。早期版本始于原始的代碼庫,但最新版本增加了一些特性,可以加快處理極大數據集的速度。SQL 語法的許多基本特性和核心部分是相同的,所以許多開發人員可以在它們之間自由切換。在未來,這種差異可能還會擴大。例如,MariaDB 已經增加了與 Cassandra、 TokuDB 和 sphinx 等流行數據庫的集成。

        SequoiaDB 是一個支持 SQL、鍵值文檔存儲和直接 JSON 存儲的大型分布式數據庫。數據庫將各種節點連接在一起,每個節點可能是不同的存儲引擎,如 MySQL 或 PostgreSQL。數據庫將查詢路由到適當的節點,同時確保事務可以提供 acid 級別的并發性。核心是在 AGPL 下發布的,而有些連接器是由 Apache 許可證管理的。

        雖然許多新的數據庫都是開源的,但并非所有公司都接受這種模式。例如,Fauna 為它的分布式數據庫選擇了一個商業許可證。對企業友好的特性針對的是那些必須兼顧數據保留策略和快速擴展的管理人員。新的開發人員可能無法訪問源代碼,但是他們可以使用托管服務的免費層,該層嚴格限制每月可讀或寫的元素數量。

        如何治理開源數據庫

        軟件的控制是吸引許多用戶使用開源數據庫的原因,他們愿意為專有軟件公司出售的產品按時支付工資,通常是為了避免供應商鎖定可能帶來麻煩。開源許可證明確地使用戶成為控制代碼的正式合作伙伴。

        但是,這種伙伴關系的性質和局限性仍然受到質疑。最近,幾家數據庫公司對某些云公司將硬件和維護捆綁在一起的方式表示反感。MongoDB 和 Elastic 都對這一過程是否公平提出了質疑,部分原因是云公司不直接與原公司分享收入。云計算公司并沒有違反開源許可協議的字面意思,但有些人認為他們保留了大部分的付款份額,違背了開源協議的精神。

        最近,Elastic 的首席執行官 Shay Banon 宣布,他們正在將所有新的開發轉移到一套更嚴格的許可證,旨在阻止大型云提供商自由轉售他們的工具,同時不限制終端用戶。

        他說:“我們嘗試了所有可能的途徑,包括通過法院。但鑒于 AWS 的持續行為,我們決定改變我們的許可證,這
        樣我們就可以專注于生產產品和創新,而不是訴訟?!?/p>

        作為回應,亞馬遜宣布將為 Elastic“fork”代碼。也就是說,他們將公開獲取最新版本,并繼續自己維護同時在云中轉售它。

        image.png

        亞馬遜的 Carl Meadows、Jules Graybill、Kyle Davis 和 Mehul Shah “今天,我們在亞馬遜 ES 上提供18個 Elasticsearch 版本,沒有一個受到許可證變更的影響。未來,亞馬遜的 ES 將由 Elasticsearch 和 Kibana 的新分支提供動力。我們將繼續提供新的特性、修復和增強功能?!?/p>

        這其中有兩條路徑可能沿著相同的方向發展,也可能不會。核心功能可能保持不變,但用戶可能需要與其中一個保持一致。他們的代碼可能在兩者之間順利工作,或者可能存在問題。我們不知道開發團隊會做出哪些決定。

        過去已經開發出了這種 Forks 這種方式,甲骨文版本的 MySQL 仍然與 MariaDB 非常相似,并且看起來兩家公司都認為保持緊密的兼容性非常重要,至少在核心特性和語法上是這樣。

        另一家數據庫公司 MongoDB 是采用限制性更強的許可證——服務器端公共許可證(SSPL)的先驅之一,該許可證限制非合作伙伴的云提供商。自 2018 年以來,它一直在這個許可下發布產品,平衡了公司和用戶的需求。

        MongoDB 首席執行官兼總裁 Dev Ittycheria 在一次采訪中說,“我們希望為開發人員提供一種簡單的方式來訪問我們的產品,這樣他們就可以以無摩擦的方式使用、修改和重新發布我們的產品,這在 SSPL 下沒有什么不同?!?/p>

        但他也指出,MongoDB 已經在研發方面投資了7億美元,這是由合作伙伴支付的。他解釋說: “我們希望對抗超級云供應商拿走我們的免費產品并提供服務而不付出任何回報的威脅。自從我們將許可改為 SSPL 以來,已經過去兩年多了,這對用戶接受程度和我們作為一家公司的成功沒有產生任何負面影響?!?/p>


        開源的真正意義是,竭盡全力支持自由閱讀、使用和修改代碼的最初愿景。

        作為開源軟件運動的原始開發者之一,Richard Stallman 曾說過這樣一句話:“Open source is free as in freedom, not as in beer.”

        segmentfault 公眾號

        閱讀 1.5k

        SegmentFault 行業快訊
        第一時間為開發者提供行業相關的實時熱點資訊
        avatar
        芒果果
        SegmentFault 技術編輯

        一路走走看看,順便留下點什么。

        3.3k 聲望
        60 粉絲
        0 條評論
        avatar
        芒果果
        SegmentFault 技術編輯

        一路走走看看,順便留下點什么。

        3.3k 聲望
        60 粉絲
        宣傳欄
        一本到在线是免费观看_亚洲2020天天堂在线观看_国产欧美亚洲精品第一页_最好看的2018中文字幕