MySQL NDB Cluster API 開發者指南  /  NDB Cluster API:概述和概念  /  NDB Cluster API 概述:版本相容性

1.2 NDB Cluster API 概述:版本相容性

NDB API 現在已相當成熟,最近的版本中幾乎沒有重大變更。若有變更,會在受影響的物件和方法的文件中指出。

NDB API 應用程式的 API 版本由應用程式用於提供 NDB API 功能的 libndbclient 版本決定。由於有必要支援滾動升級,我們針對較舊的 API 版本連線到較新版本的資料節點,以及較新的 API 版本連線到較舊版本的資料節點,在多個版本 (7.5 到 8.2) 中執行基本測試。我們不再對 NDB 7.5 之前的版本執行此類測試,因為這些版本不再維護或在生產環境中支援。

此外,在 NDB 8.0 中,已刪除與 7.5 之前 API 版本的部分相容性,但保留與 7.5 和 7.6 版本的相容性。

當新功能新增至 NDB 時,通常會以這樣的方式進行,新功能會檢查目前連線的資料節點是否正在執行支援該功能的版本。這樣做是為了防止在群集完全升級到增加支援的版本之前,在滾動升級期間意外使用新功能。

如果使用較新版本 NDB API 的應用程式對不支援該應用程式使用之新功能的較舊群集執行,則該應用程式在嘗試使用該功能時會引發錯誤代碼 4003 Function not implemented yet。根據所涉及的新功能,可能會發生其他錯誤 (請參閱第 2.4.2 節「NDB 錯誤代碼:依類型」)。

當使用較舊版本 libndbclient 的應用程式連線到執行較新版本 NDB 的群集時,資料節點應支援較舊的 API 呼叫,但還有其他考量。特別是,如果群集上的結構描述使用較舊的 API 版本不支援的新功能,則操作可能會次佳或產生錯誤。以下列出一些範例

  • 群集中有些資料表使用 JSON 資料類型,此資料類型在 7.5 之前的 NDB 版本中不明。

  • 群集使用一個或多個完全複寫的資料表,這些資料表在 7.5 之前的 NDB 版本中不受支援。

  • 群集包含使用產生資料行的資料表,這些資料行在 7.5 之前的 NDB 版本中不受支援。

在線上升級群集時 (也就是說,透過使用滾動重新啟動),會保留現有的資料表結構描述,從而避免過早啟用新的結構描述功能。當升級重新建立結構描述並還原所有資料時,情況並非如此,此時新版本預設可能會使用新的結構描述功能。因此,最佳實務做法是使用特定的結構描述、操作和版本進行測試,然後再升級生產系統,以找出將較舊的應用程式或 SQL 節點連線到執行較新版本 NDB 的群集時可能發生的任何問題。

如需編譯 NDB API 和 MGM API 應用程式的一般需求相關資訊,請參閱第 2.1.1.1 節「一般需求」