我正在開發一個分佈式數據庫中間件,它打算作爲MySQL的代理。當談到跨多個MySQL的事務時,我發現很難讓多個MySQL作爲整體提交或回滾。這裏是這樣的情況:如何執行作爲MySQL代理的分佈式事務
說有2個mysql實例是由我的數據庫中間件代理的,在應用程序端,當我想對兩個mysql實例執行「prepare-commit」操作時,首先,我發送向中間件「準備」請求,中間件將請求轉發給2個mysql實例,然後通過中間件執行一些sql,最後,當我向中間件發送「提交」請求時,中間件會將請求轉發給2個mysql實例,這裏是讓我困惑的事情:
如果發送到第一個mysql實例的「提交」請求成功執行,而發送到第二個實例的「提交」請求以某種方式失敗,如我所知,如果一個事務已經被提交,它不能被回滾,但是這個h因爲導致2個mysql實例處於不一致的狀態。
我想知道如何處理這個問題,任何幫助將不勝感激。