ArangoDB 3.5:流事務API、搜索性能大幅提高、最短路徑功能

ArangoDB 3.5 發佈了。ArangoDB 是一個分佈式原生的多模型數據庫,具備靈活的文檔、圖形和鍵值數據模型。使用方便的 SQL 查詢語言或 JavaScript 擴展構建高性能應用程序。數據庫

ArangoDB 3.5:流事務API、搜索性能大幅提高、最短路徑功能

 

此版本亮點包括:安全

  • 期待已久的 Streaming Transactions API,能夠直接使用不一樣的語言驅動運行和管理 ACID 事務(已支持 Java Sync、Go、JavaScript 和 PHP)
  • ArangoSearch 改進,包括可配置分析器、超快速排序索引等
  • 擴展圖形數據庫功能,如 k-shortest 路徑和新的 PRUNE 關鍵字
  • Data Masking,能夠安全地使用模糊的生產數據來實現真實的開發和測試環境
  • Time-To-Live 索引、索引提示和命名索引等更新
  • SmartJoins,能夠針對分佈式數據運行高效的共址 JOIN 操做(企業版功能)

流事務 API(Streaming Transactions API)網絡

此版本正式引入了流事務 API(Streaming Transactions API),這是一種更簡單地使用 ACID 事務的方法,不須要編寫任何 JavaScript 代碼。使用新的流事務 API,能夠直接使用喜歡的語言對 ArangoDB 進行 BEGIN、COMMIT 與 ABORT(回滾)操做,與使用 RDBMS 相似,目前官方已經支持 Java Sync、Go、JavaScript 與 PHP。事務能夠包含一系列受支持的事務操做,後跟 commit 或 abort 命令。這容許客戶端以比基於 JavaScript 的事務更有效的方式構建更大的事務。分佈式

事務能夠有許多配置選項,對於調用事務,能夠定義如下內容:性能

  • collections:任何寫操做都須要的事務的集合
  • waitForSync:一個可選的 Boolean 標誌,用於強制事務在返回以前寫入磁盤
  • allowImplicit:容許事務從未聲明的集合中讀取
  • lockTimeout:容許指定事務完成的最長時間(默認爲 10 分鐘)
  • maxTransactionSize:若是使用 RocksDB 做爲存儲引擎(自 ArangoDB 3.4 以來的默認引擎),能夠以字節爲單位定義事務的最大大小。

搜索引擎升級:可配置分析器和超快速排序查詢測試

可配置分析器容許執行區分大小寫的搜索、詞幹分析,並容許使用本身的語言特定的禁用詞列表。同時還能夠更好地調整 ArangoSearch 查詢,包括英語、法語、德語與中文等多種語言。搜索引擎

新的排序索引,包括排序的查詢有大幅性能提高。在爲 ArangoSearch 建立視圖時,如今能夠指定建立此新索引並定義哪一種排序順序最適合查詢要求(升序/降序)。若是查詢中的排序順序與視圖中指定的排序順序匹配,則能夠直接從索引中讀取結果並以超快的速度返回結果。內部基準測試代表,這些狀況下性能提高高達 1500 倍。3d

建立排序視圖能夠經過`arangosh`完成:code

db._createView('myView', 'arangosearch', { links : { ... }, primarySort: [ { field: 'myField', direction: 'asc' }, { field: 'anotherField', direction: 'desc' } ] })
db._query('FOR d in myView SEARCH ... SORT d.myField ASC RETURN d`); // no sorting at query time

圖形數據庫升級:k-shortest 路徑和新的 PRUNE 關鍵字blog

新的 k-shortest 路徑功能提供查詢兩個給定頂點之間的全部最短路徑的選項,根據路徑長度或路徑權重返回排序結果。

ArangoDB 3.5:流事務API、搜索性能大幅提高、最短路徑功能

 

在上圖的歐洲鐵路的例子中,能夠查詢倫敦和格拉斯哥之間旅行的最短距離、最少停靠或最便宜的票價,具體取決於在邊緣存儲的信息。還能夠想象一下將 k-shortest 路徑功能運用到網絡管理與威脅情報等方面。

新的 PRUNE 關鍵字是 AQL 圖遍歷查詢中 FILTER 的替代方法,使用 PRUNE 容許用戶減小遍歷查詢必須查找的文檔數量。PRUNE 在圖遍歷中表現爲中止條件,告訴遍歷在知足給定條件時中止並返回完整結果路徑。

數據遮掩(Data Masking):適用於 GDPR 和 CCPA 兼容的測試和開發

在生產環境中測試新版本或新功能是頗有必要的,可是,將用戶名稱、生日、電子郵件地址或信用卡信息等敏感數據從高度安全的生產系統導出到安全性很低的測試和開發環境,一般是不可能的,或者會致使 GDPR/CCPA(歐盟《通常數據保護條例》/《加利福尼亞州消費者隱私保護法案》)合規性問題。

ArangoDB 中新的 Data Masking 功能容許定義要進行模糊處理的敏感數據,而後生成這些集合的「掩數據」,導出以用於測試或開發目的。

此外,快速一致的集羣備份功能將在下個版本 3.5.1 中出現。

相關文章
相關標籤/搜索