銀行業務的 noSQL ACID 和一致性
我們正在建構一個實時銀行平台和應用程序。
我們最關心的是跨多個數據庫伺服器的數據的安全性和一致性。我們需要事務,我們不能冒停電和失去數據的風險(我說的是 MongoDB)。我們的第二個關注點是為我們的應用租戶使用者提供類似模式的功能。
我們還想避免大型數據庫上的模式更新地獄。我們租戶的自定義模式是可選的,但非常可取。
我們是非常重的 AJAX 前端,我們的後端是完整的 nodejs。我們做了很多 JSON 數據處理。
我們應該使用 MySQL 嗎?我們的案例是否有任何 noSQL 解決方案(可能是 CouchDB?)?
感謝您花時間回答這個問題!
據我所知,沒有承諾 ACID 事務的“nosql”數據庫,因此出於銀行目的,它們不是入門者。參照一致性支持通常也不在它們的關鍵特性集中。
mySQL 在使用 innodb 表時聲明 ACID 事務,但我相信有一些警告可能會阻止顯示(其他表類型的任何組合,包括有時用於復雜邏輯中的中間結果的記憶體表,都會破壞 ACID例如合規性)。
如果您正在查看這些選項,因為它們是免費的,那麼請考慮提供 ACID 事務的 postgres,甚至包括進行架構更改的事務。不過請考慮您的支持 SLA:如果這是一個需要高可用性的系統(並且“實時”和“銀行”這兩個詞表明它是這樣),那麼我建議您簽訂支持契約,以防您無法理解或無法修復出現問題. 這將是相當昂貴的,一旦你談到那種錢,你至少也可以考慮商業數據庫伺服器。
最後一點與任何特定數據庫無關:確保為完整的 ACID 行為選擇了正確的選項。許多系統預設設置會彎曲隔離部分,因為保證完全隔離通常需要序列化,這會顯著影響並發操作的性能。無論您選擇何種 DBMS,請確保您了解其隔離/序列化選項(如 MSSQL 中的“SET TRANSACTION ISOLATION LEVEL”和相關指令)以及它們如何相互互動。
有GT.M:http ://www.fisglobal.com/products-technologyplatforms-gtm
數據庫引擎,於 2000 年開源,
$$ 1 $$由富達資訊服務維護。GT.M 用作其 FIS Profile 銀行應用程序的後端,$$ 2 $$它為西班牙、法國、意大利、荷蘭、羅馬尼亞和印度的 ING DIRECT 銀行提供支持;美國第一資本360;加拿大的橘子(豐業銀行);蘇格蘭寡婦和巴克萊直銷在英國。 http://en.wikipedia.org/wiki/GT.M
我不了解商業支持,但無論如何,您應該牢牢掌握 ACID 的含義和深厚的技術知識,以使用此數據庫或您可能用於此類應用程序的任何數據庫。