事務型系統由SQL遷移到NoSQL問題總結(轉)
事務型系統由SQL遷移到NoSQL場景:
1.業務系統:需要保證高一致性的交易系統;
2.NoSQL資料庫:簡單的key value型資料庫,用hash實現的key value。
在這樣的場景下通常會面臨的問題如下:
1、表中有多個索引的問題
例如表 t_acct(a,b,c) 索引為a,b。業務系統會以a b為key做查詢,也會對b進行修改。
解決這樣的問題是把表進行拆分為,存入key value資料庫時,拆分為兩條資料:
(a,a b c) (b, a b c)
但是這樣帶來兩個問題:1.資料冗餘;2.單條記錄操作的原子型。資料冗餘可以忍受,但是操作的原子性是無法忍受的,對於這個問題後面會有解決方案。
2、需要對錶範圍查詢的問題
對於key value資料庫,範圍查詢的場景,暫時沒有看到相關解決方案。但是一般範圍查詢都是offline的應用,可以通過準實時同步key value資料庫的資料到關係型資料庫中來解決。
3、單機事務的問題
通常key value型的記憶體資料庫,不支援事務,但是也有通過近似的機制來模擬事務的情況。
在redis上,事務是通過multi指令來簡單支援的。先傳送命令,呼叫exec時一次執行所有指令。
OK
redis> incr a
QUEUED
redis> incr b
QUEUED
redis> exec
1. (integer) 1
2. (integer) 1
這樣大大減少了失敗的可能性。既可以近似看作事務,也可以保證高效能。
4、分散式事務的問題
通常銷售操作要對兩個表進行操作,使用者資訊表和訂單表,在分散式環境下就涉及到了分散式事務。
對於分散式事務ebay已經提出瞭解決方案,最重要的技術就是訊息佇列和訊息應用狀態表。
詳細說明可以參考http://queue.acm.org/detail.cfm?id=1394128
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-714575/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql遷移到greenplum sql改造總結MySql
- 從websphere6.1遷移到weblogic10.3的問題總結Web
- svn 遷移到 git 的問題Git
- 關於SQL Server事務日誌的問題彙總SQLServer
- 實現資料庫由檔案系統遷移到 ASM 磁碟組中資料庫ASM
- 分散式系統中的事務問題分散式
- 異構資料庫系統遷移到Oracle 工具 - Oracle SQL Developer資料庫OracleSQLDeveloper
- 由一條sql語句導致的系統IO問題SQL
- 資料遷移部分問題總結
- NoSql-Redis事務SQLRedis
- 有關NOSQL事務SQL
- 從檔案系統遷移到ASM上ASM
- oralce 從檔案系統遷移到ASMASM
- 【轉】Nosql生態系統SQL
- EAS附件表由資料庫遷移到FTP資料庫FTP
- LONG型別遷移到LOB型別(三)型別
- LONG型別遷移到LOB型別(二)型別
- LONG型別遷移到LOB型別(一)型別
- 一招解決遷移到ModStart後連結不相容問題
- 行列轉換問題總結
- 使用RAM將檔案系統遷移到ASMASM
- Window遷移到Linux下Tomcat配置問題LinuxTomcat
- 任務打卡系統總結
- SQL精華總結索引型別優化SQL優化事務大表優化思維導圖❤️SQL索引型別優化
- PHP弱型別安全問題總結PHP型別
- mysql總結(二)-事務MySql
- 分散式事務總結分散式
- Oracle事務控制總結Oracle
- ocfs2檔案系統問題總結(zt)
- 吉特倉庫管理系統-.NET列印問題總結
- 資料庫事務與 MySQL 事務總結資料庫MySql
- 從關聯式資料庫遷移到NoSQL雲資料庫資料庫SQL
- Oracle遷移到PPAS(PostgreSQL)時的日期計算問題OracleSQL
- 將ServiceLoader遷移到Java 9模組系統 - frankelJava
- 將spfile從ASM裡遷移到檔案系統ASM
- 資料庫從檔案系統遷移到ASM資料庫ASM
- GoldenGate資料遷移的問題總結(一)Go
- GoldenGate資料遷移的問題總結(二)Go