一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - PostgreSQL - Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

2023-09-05 03:00未知服務器之家 PostgreSQL

Pigsty v2.3.1 現已發布。這個版本中PGVECTOR迎來 v0.5 史詩級更新,添加了新的 HNSW 索引支持。也對新發布的PostgreSQL 16 RC1 提供了支持。此外,官方文檔現在提供中文版本,現有文檔也進行了豐富與完善。最后,還有例行的軟件版本更新

Pigsty v2.3.1 現已發布。這個版本中 PGVECTOR 迎來 v0.5 史詩級更新,添加了新的 HNSW 索引支持。也對新發布的 PostgreSQL 16 RC1 提供了支持。此外,官方文檔現在提供中文版本,現有文檔也進行了豐富與完善。最后,還有例行的軟件版本更新與問題修復。

HNSW 版 PGVECTOR?

PGVECTOR 是一個非常實用強大的 PostgreSQL 擴展插件,允許你在現有的關系型數據庫 PostgreSQL 上擁有完整的向量數據存儲檢索能力。

9 月 1 號,PGVECTOR 發布了一個重大版本更新 v0.5 ,引入了一種全新類型的索引:HNSW 。在 ANN Benchmark 中,召回率和性能表現上相比原有的 IVFFLAT 索引都有巨大的提升,在綜合性能表現上相比專業向量數據庫毫不遜色! 此外,在距離的計算性能上相比 0.4.4 有顯著提升(特別是 L2 歐式距離)。最后是 IVFFLAT 索引的并行創建能力:可以讓耗時的索引創建操作加速 N 倍!

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

向量數據庫的利弊權衡

向量數據庫索引算法也有一個 “不可能三角”:質量、效率、成本

質量:查詢結果的召回率(正確程度)

效率:查詢的響應時間

成本:查詢所需的內存大小 // 索引構建速度

對于向量數據庫的典型場景 —— 語義搜索而言。最重要的屬性毫無疑問是召回率,這會直接影響終端用戶的體驗。性能通常來說不是大問題,夠用就行:模型編碼耗時通常在幾十毫秒到上百毫秒,把 10 毫秒的查詢優化到 1 毫秒對用戶體驗來說毫無意義;吞吐可以通過無限拖從庫的方式解決。內存使用 / 構建速度通常是最不重要的 —— 對用戶無感知,而且只要能跑起來,以目前的內存價格,加錢加資源能解決的問題通常不算什么問題。

經典的暴力全表搜索算法有著無可替代的最好質量,但是性能很差,所需內存資源極少(順序掃一遍,輪流載入內存)。PGVector 原先使用的 IVFFLAT 索引有著很好的性能,但召回率表現一般,內存使用一般。而現在新增的 HNSW 索引,在召回率和性能上都有優秀的表現,最大的缺點在于索引構建速度慢 / 內存使用量高。

HNSW 算法幾乎是專用向量數據庫的標配,因為它在質量、性能上都有優異的表現。雖然有索引構建速度慢的缺陷,但它也有幾個額外的好處:

  • “增量維護”:使用 HNSW 索引,你可以在空表上創建索引并隨時添加向量,而不會影響召回率!這與 IVFFLAT 不同:IVFFLAT 在構建索引之前首先需要加載向量數據,使用 Kmeans 以找到最佳中心點,才能有最好的召回率。當你更新了許多數據時,可能需要重建索引,才能有最好的召回效果。
  • 更新和刪除:pgvector 的 HNSW 實現允許更新和刪除,你可以使用標準的 UPDATE / DELETE 語句。許多 HNSW 向量數據庫實現都不支持這一功能!

這意味著 HNSW 索引幾乎不需要什么額外的維護工作:你可以并發寫入 / 更新,增量維護,在不影響讀寫請求的前提下新建索引,也不用擔心數據的變化會影響索引的質量。數據是持久化的,受到 PITR 時間點恢復的保護,并且可以使用標準 WAL 基礎設施可無縫復制到從庫上。

PGVector 的 HNSW 實現性能表現優異,根據 Jonathan Katz 的測試結果,顯著優于 pg_embedding (基于磁盤的實現) 的表現。各種 PostgreSQL 的向量擴展分叉恐怕要面對巨大的生存競爭壓力了。

與此同時,原有的 IVFFLAT 索引也有一系列改進:你現在可以并行創建 IVFFLAT 索引了。視并發程度可以加速幾倍到十幾倍不等。而距離度量函數的性能也進行了優化,例如 L2 距離計算在 ARM64 下有 36% 的性能提升。

PGVECTOR 的戰略卡位

實現一個向量數據類型 / 索引功能只需要幾千行代碼,而實現 PostgreSQL 這樣功能完備穩定可靠的數據庫需要的是百萬行級的代碼,復雜度根本不可同日而語。一個合格的向量數據庫 首先得是一個合格的數據庫,而從零開始做到這一點并不容易。錯誤的路線將耗費百倍力氣做無用功,PGVector 選擇站在巨人的肩膀上,而不是造土法輪子重新發明一個數據庫,這是明智而務實的做法。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

例如,你可以將向量功能與各種 PostgreSQL 提供的功能組合使用:使用表達式索引只索引一部分感興趣的內容,實時查看索引創建進度,不阻塞讀寫請求在線創建 / 重建索引,使用多個進程并發創建索引。

當然,也可以將 Vector 模糊搜索 / 語義搜索 與 PostgreSQL 原有的全文檢索 / 倒排索引功能組合使用,提供可解釋性更佳的搜索結果。也可以繼續使用標準 SQL 對元數據 / 各種字段進行精準的過濾,將精確搜索與模糊搜索相結合。并避免在多個專用數據組件中來回搬運數據的煩惱。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

專用向量數據庫本來唯一能拿的出手的亮點特色就是性能,然而 pgvector 的 HNSW 實現讓這唯一的亮點都面臨挑戰,恐怕我們很快就會看見地理數據庫、文檔數據庫、時序數據庫、分布式數據庫的歷史再一次上演。

PostgreSQL 16 RC 1

PostgreSQL 16 的第一個候選發布版本 RC1 于 9 月 1 號釋出!正式發布日期為 9 月 14 日。

Pigsty 也許是最先提供 PostgreSQL 16 支持的發行版:從 16 beta1 就支持了。盡管目前仍然沒有正式發布,但你已經可以拉起 PostgreSQL 16 的高可用集群。PostgreSQL 16 有一些比較實用的新功能:從庫邏輯解碼與邏輯復制,針對 I/O 的新統計視圖,全連接的并行執行,更好的凍結性能,符合 SQL/JSON 標準的新函數集,以及在 HBA 認證中使用正則表達式。

Pigsty 特別關注 PostgreSQL 16 中的可觀測性改進,新的 pg_stat_io 視圖,讓用戶可以直接從數據庫內訪問到重要的 I/O 統計指標,對于性能優化,故障分析具有非常重要的意義。在以前,用戶只能在數據庫 / BGWriter 上看到有限的統計指標,想要更精細的統計數據,只能關聯操作系統層面的 I/O 指標進行分析。現在,你可以從后端進程類型 / 關系類型 / 操作類型三個維度,對讀 / 寫 / 追加 / 回刷 / Fsync / 命中 / 逐出等行為進行深入的洞察。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

另外一個非常有價值的可觀測性改進點是,pg_stat_all_tables 與 pg_stat_all_indexes 會記錄最后一次順序掃描 / 索引掃描的時間。盡管這個功能在 Pigsty 的監控系統中可以通過掃描統計圖表實現,但官方提供直接的支持肯定更好:用戶可以直觀地得出一些結論:比如某一個索引是不是沒用上可以考慮移除。此外,n_tup_newpage_upd 指標可以告訴我們表上有多少行在更新時不是在頁內原地更新,而是移動到了一個新的頁面上,這個指標對于優化 UPDATE 性能,調整表填充因子具有重要的參考價值。

在 Pigsty v2.3.1 中,EL 8 / EL 9 的離線軟件包中已經默認收錄了 PostgreSQL 16 RC1 的 RPM 包。并將在下個 Release 中立即跟進 PostgreSQL 16 的正式版本。

中文文檔

從 v2.0 開始,Pigsty 的官方文檔就一直只有英文。不過從這個版本開始,中文文檔又回來了!多虧了 GPT-4 提供了高質量的中英互譯。原有的英文文檔,也新增了許多補充內容。

此外,原有 Github Pages 托管文檔的地址是 https://vonng.github.io/pigsty/ ,現在則有了一個新的專用域名 https://doc.pigsty.cc 。針對墻內用戶訪問不便的問題,還提供了鏡像的官方站點: https://pigsty.cc ,這里的中英雙語文檔都也都已經更新至 v2.3.1 最新版本。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

另一個變化是,Pigsty 的公開 Demo https://demo.pigsty 現在也使用機構簽發的正規 HTTPS 證書,而不是 Pigsty 自簽名的證書了。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

測試環境

在以前,Pigsty 的測試一直是個頭疼的問題:需要對五個受支持的 PG 數據庫大版本(PG 12,13,14,15,16),三個操作系統的大版本(EL7,EL8,EL9),以及幾種操作系統的兼容發行版變體(RHEL,CentOS,Alma,Rocky)之間的排列組合進行測試。

所以在 v2.3.1 中,提供了一個新的配置文件 check.yml ,一次性拉起 30 臺不同操作系統、不同大版本、不同規格的數據庫集群進行測試。這個配置文件(check.yml),也演示了不同大版本的安裝方式,具有一定的參考價值。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

問題修復

Pigsty v2.3.1 修復了 v2.3.0 中的兩個問題。

第一個問題與 Watchdog 有關:當你希望在極端情況下避免腦裂,可以將 patroni_watchdog_mode 參數設置為 required ,在這種情況下,Patroni 的服務現在將自動執行 modprobe softdog 與 chown postgres watchdog 操作,確保 Patroni 擁有 watchdog 的使用權限。

第二個問題是關于從上游下載軟件包的:當你下載的軟件包中使用了通配符 '*' 時,現在會使用單引號擴起轉義,避免受到目標目錄中已有軟件包的影響。

軟件更新

此外,在離線軟件包中,一些軟件包也更新到了最新的版本。例如,Grafana 升級到了 v10.1 ,引入了一些有趣的新特性。Loki / Promtail 升級至 2.8.4 ,提供 MongoDB 兼容性的中間組件 FerretDB 升級到了 1.9,PG 日志分析組件 pgbadger 升級至了 1.12.2,TimescaleDB 擴展升級至了 2.11.2。

Pigsty v2.3.1 的默認軟件包中還添加了 SealOS,這是一個快速部署 Kubernetes 集群的精簡二進制軟件。Pigsty 會在后續版本中對 Kubernetes,以及 Kubernetes 中的數據庫有進一步的支持。

Pigsty v2.3.1:HNSW 版 PGVECTOR 來了

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 2019国内自拍| 欧美日韩一区二区综合在线视频 | 含羞草国产亚洲精品岁国产精品 | 亚洲国产99在线精品一区二区 | 免费一级欧美片在线观看 | 欧美国产精品久久 | 久久综合给合久久狠狠狠… | 成人午夜影院在线观看 | 亚洲人成网站在线观看播放青青 | 免费在线视频成人 | 美女张开腿黄网站免费精品动漫 | 垫底辣妹免费观看完整版 | 骚虎最新网址 | 国产精品二区高清在线 | 久久永久影院免费 | 欧美肥胖老妇做爰变态 | 人体做爰aaaa免费 | 国产高清在线播放免费观看 | 国产精品欧美韩国日本久久 | 九色PORNY丨视频入口 | 国产欧美va欧美va香蕉在线观 | 8插8插 | 日本一卡二卡3卡四卡无卡网址 | www.91在线| 国色天香社区视频在线观看免费完整版 | 青草青草伊人精品视频 | 97热久久免费频精品99国产成人 | 亚洲理论视频 | 国产aⅴ一区二区三区 | 亚裔aⅴ艳星katsuni | 国产suv精品一区二区四区三区 | 成人免费福利网站在线看 | 出轨娇妻的呻吟1—9 | 2019天天干夜夜操 | 久久中文字幕乱码免费 | 莫莉瑞典1977k | 8天堂资源在线官网 | 微拍秒拍99福利精品小视频 | 大伊香蕉在线精品不卡视频 | av中文字幕网免费观看 | 波多野结衣在线中文 |