我一直在尋找高性能的文件存儲解決方案,用於在Java EE環境中持久化SOAP消息。消息的高性能存儲
我們目前在Oracle RMDBS上使用CLOB表,但它的擴展非常昂貴。儘管oracle在存儲相關元數據方面效果很好,但對於消息內容來說效果不佳。使用CLOB插入表的性能比沒有CLOB的表的性能差大約1000%(這是通過比較在CLOB禁用行存儲時VARCHAR2(4000)插入到CLOB插入的性能來衡量的)
堅持文件系統上的消息是一種選擇,但是我對平均文件系統每天如何執行存儲數百萬個文件有些疑問。考慮到我們必須將這些文件保留幾個月,這聽起來不對。
我知道有幾個開源鍵值數據庫(兔崽子,MongoDB的命名等等),可能是彌補了任務,但是我只是找不到時間來評估他們。我也想聽聽開源RMDBS的性能。
考慮到傳輸的消息量不斷增加,優先考慮的是低延遲和高性能。我們不需要集羣或事務性,系統故障時的(輕微)數據丟失是可以接受的。
要求:
- 必須能夠維持至少100persisted消息/秒的速率時的消息大小是8kilobytes
- 必須能夠存儲至少1億消息
- 必須支持的持續缺失按年齡排列的消息
- 必須支持持續同時刪除正在進行中
- 必須支持通過標識檢索消息
幫助表示讚賞
我會嘗試couchDB,但我不知道這比其他數據庫解決方案更適合您的使用。你會想要全部閱讀。另外,如果您的IT/DBA不支持mongodb或couchdb,您可能需要使用它們。 – 2013-04-29 19:35:58
通過將lob存儲轉換爲SECUREFILES,我們實際上設法使Oracle負載下降了很多。不過,我認爲我仍然需要評估開源選項。當我完成後,我會發表一篇關於我的發現的文章。 – 2013-04-30 10:18:49