RethinkDB已經將其數據庫移植到Windows
2016-02-15 17:53:25 來源:Abel Avram ,譯者 謝麗 評論:0 點擊:
RethinkDB已經推出了其數據庫的Windows版本。該版本耗時一年開發,可以運行在64位Windows操作系統上,目前尚處于Beta測試階段。
考慮到此次移植所付出的巨大的時間成本,我們采訪了RethinkDB聯合創始人Michael Glukhovsky,了解更多關于其數據庫Windows版本的細節。
InfoQ:將RethinkDB移植到Windows,最困難的部分有哪些?
MG:RethinkDB的異步I/O操作依賴特定于平臺的API。Windows上的相關API同Linux的epoll和OS X的kqueue有很大的不同。在Linux上,開發人員使用epoll獲取通知,讓他們知道一個描述符已經讀或寫就緒。在Windows上,開發人員使用I/O完成端口(IOCP),這需要將異步操作進行排隊,并在操作成功或失敗時發送通知。改寫構建系統是另一個主要的難點。我們必須在Windows上統一編譯所有第三方開源依賴。
InfoQ:RethinkDB有一個跨不同操作系統的公用代碼庫嗎?
MG:是的,RethinkDB有一個統一的跨平臺代碼庫。不過,有些特定于平臺的代碼路徑依賴于本地平臺的API。在我們的GitHub庫中,有一個
arch
目錄,其中包含了所有特定于平臺的代碼。據我們估計,RethinkDB有3%到4%的源代碼是特定于某個操作系統的。
InfoQ:Windows版本的功能同Linux和OS X版本一樣嗎?
MG:RethinkDB on Windows在功能上與Linux和OS X版本相同。該數據庫的特性在所有三個平臺上都是一致的。不過,我們仍然在優化Windows版本,以便它達到同樣的性能。
InfoQ:您能給我們大體介紹下路線圖上有哪些特性嗎?
MG:對于新的Windows移植,我們正努力讓開發人員可以將數據庫作為一個Windows服務運行。更廣泛地講,我們正在實現一些安全特性,如支持數據庫用戶賬戶和權限。此外,我們還在擴展數據庫的實時處理能力,讓開發人員可以在更多的操作中使用changefeeds。
RethinkDB是一個開源、分布式、可擴展的數據庫,可以配置用于實時向應用程序推送數據變化通知,而不是讓應用程序不斷地輪詢數據庫變化。InfoQ過去曾經介紹過RethinkDB。
Kyle Kingsbury是Jepsen系列文章的作者,他最近對RethinkDB進行了測試,以核實它在使用majority
讀&寫時是否支持線性操作。Kingsbury總結道:
據我所知,RethinkDB的安全聲明是準確的。如果寫操作的一致性水平低于
majority
,那么可能會丟失更新,并在使用single
或outdated
讀時遇到各種讀異常,但是majority/majority
似乎是線性的。
關于這一點,我們建議讀者閱讀Kingsbury詳細介紹有關測試執行和測試結果的博文來了解更多信息。
相關熱詞搜索:rethinkdb windows 數據科學 實時 NoSQL Windows 數據庫 操作系統
上一篇:Shane Hastie在敏捷之旅新加坡大會上作了題為“運用敏捷思維應對嚴峻
下一篇:谷歌廣告徹底放棄Flash,100%轉向HTML5
