Michael Stonebraker列出了PostgreSQL未來發展的優先順序
關於流行開源資料庫PostgreSQL的未來,其共同創造者Michael Stonebraker列出了其未來發展的優先順序。
PostgreSQL的共同創造者、麻省理工學院電腦科學教授Michael Stonebraker列出了他對新增到這個流行的開源資料庫中的功能的首要要求——時間旅行,他承認在1980年代實施的時間旅行功能很糟糕。
Stonebraker在Postgres Vision會議上說,時間旅行程式碼從根本上說是一個好主意,因為它允許使用者從資料庫的歷史中查詢資料,並在20世紀90年代推出了一個實現。
“1995年時,時間旅行的實現非常糟糕。它很慢,很慢,很慢,很慢。無論時間旅行是否是一個好主意,這個實現都太慢了,所以委員會的權力機構理所當然地刪除了它,該委員會自1995年以來一直在處理Postgres,”他告訴與會者。
1986年,作為Ingres的繼任者,Postgres被首次提出,彼時Stonebreaker還是UCL Berkeley的教授。PostgreSQL是在OSI批准的PostgreSQL許可證下發布的。他因引入型別系統而獲得2014年圖靈獎,該系統至今仍是PostgreSQL的基礎。
儘管先前的嘗試失敗了,但他說時間旅行將是他希望在未來看到PostgreSQL的功能清單中的首位。“它允許你修復使用者應用程式的錯誤。基本上,它允許你放入不同的條款,允許你查詢日誌,所以如果你想知道昨天發生了什麼,只要把它設定為昨天,就可以實現,”他說。
Stonebraker補充說,時間旅行的好處是可以幫助管理員分析拒絕服務攻擊。
他希望從PostgreSQL開發者那裡看到的第二個推動力是將軟體即服務作為一個優先事項。他說,雖然像Postgres服務商EDB這樣的公司為PostgreSQL提供了一個平臺即服務,減少了執行系統的麻煩,但目標應該是真正的SaaS。
“通過PaaS,你在AWS或谷歌雲平臺上有一個例項,你為這個例項付費,24/7,直到你刪除它。但這不會使你的資源管理問題變得更加有效。”
“我是SaaS的忠實粉絲。你分享了一些別人擔心的例項集,而且只有當你使用實際交易服務時才向你收費。如果有人擔心你和其他人之間的資源分配和分時問題,這顯然會更便宜。”他說。
然而,AWS Aurora等已經在這個領域領先於開源PostgreSQL,他補充說。
“我認為SaaS的問題在於,目前它是由一些‘雲大象’提供的,比如Aurora。在我看來,PostgreSQL應該加入到這場遊戲中,否則它可能會被雲端計算的山寨產品所取代。更廣泛地說,雲端計算是未來,PostgreSQL和EDB應該非常、非常仔細地關注這個世界上所需要的設施,”這位資料庫先驅解釋道。
Stonebrakers願望清單上的第三個是資料倉儲。他說,自20世紀90年代以來,資料倉儲一直是PostgreSQL錯過的一個市場。問題是,PostreSQL是一個行儲存資料庫,而資料倉儲最好由列儲存資料庫支援,他說。
“當你只搜尋幾個欄位時,列儲存比行儲存更有效,”他補充說。
“PostgreSQL在資料倉儲市場上沒有競爭力。我已經和EDB和其他地方的人談過這個問題,[他們]已經有意識地決定不玩了,因為這需要大量的工作。獲得一個列儲存實際上是一個新的儲存引擎,一個新的執行器和新的優化器,這是很重要的。我理解[這個]決定。然而,這是個大市場。”
願望清單中的最後一個是希望在PostgreSQL中更好地支援使用者定義函式和儲存過程。他指出,電腦科學家知道,在資料庫系統中的儲存過程或使用者定義的函式中執行邏輯,比把資料帶到應用程式中更好。但是 “真正的程式設計師不會使用這種東西”。
Stonebraker描述了一名史丹佛學生如何對開發人員進行調查,調研發現,開發人員的絆腳石包括沒有偵錯程式、沒有版本控制、沒有測試環境、缺乏標準以及缺乏語言支援。
“使用者定義函式和儲存過程在生產中是非常痛苦的,因為在開發和除錯中,他們真的很痛苦。所以拜託,拜託,拜託PostgreSQL:你可以為使用者定義函式和儲存過程提供好的工具,你可以實現偵錯程式,這並不難。”
由於Stonebreaker仍然被視為資料庫軟體的開拓者,也許社群會聽取他的意見。不過,他們是否會採取行動是另一回事。然而,EDB本身是該專案的主要貢獻者,有足夠的資源來這樣做。該公司剛剛宣佈了由貝恩資本私募基金提供的新一輪資金,以促進其未來的發展。
原作者:
來自 “ https://www.theregister.com/2022/06/14/database_fr ”,原文連結:http://blog.itpub.net/69925873/viewspace-2901224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 封裝優先順序佇列封裝佇列
- Facebook的分散式優先順序佇列FOQS分散式佇列
- Java優先順序佇列DelayedWorkQueue原理分析Java佇列
- CSS優先順序CSS
- 運算子的優先順序
- python運算子及優先順序順序Python
- 佇列 優先順序佇列 python 程式碼實現佇列Python
- 棧,佇列,優先順序佇列簡單介面使用佇列
- Android程式優先順序Android
- 中斷優先順序
- Yacc使用優先順序
- [譯]HTTP/2的優先順序HTTP
- SpringBoot配置檔案優先順序載入順序Spring Boot
- SQL 優先順序join>whereSQL
- java運算子優先順序Java
- Python 列表推導及優先順序佇列的實現Python佇列
- 個推基於 Apache Pulsar 的優先順序佇列方案Apache佇列
- RMQ——支援合併和優先順序的訊息佇列MQ佇列
- 設計中的優先順序(下)
- SAP UI configuration determination的優先順序UI
- 設計中的優先順序(上)
- CSS 選擇器的優先順序CSS
- 測試用例的優先順序
- Python3 執行緒優先順序佇列( Queue)Python執行緒佇列
- css 選擇器優先順序CSS
- Yarn任務優先順序配置Yarn
- ansible 變數優先順序示例變數
- C++運算子優先順序C++
- java setPriority()設定優先順序Java
- nginx的location匹配順序、優先順序,location對映衝突排查Nginx
- Java之執行緒的優先順序Java執行緒
- 【分享】如何評估 bug 的優先順序
- 【pytest】fixture 與 setup, teardown 的優先順序
- 怎樣做好客戶的優先順序?
- 原始碼解析C#中PriorityQueue(優先順序佇列)的實現原始碼C#佇列
- html優先順序和層疊性HTML
- 任務卡片優先順序排序-Leangoo排序Go
- C語言運算子優先順序C語言