幾乎每個商業應用程序都需要數據庫來存儲數據和在該數據上完成的事務。事務通常需要幾毫秒的時間。同時,在交易應用程序中,一件完全不可接受的事情是「延遲」。那麼,在這種需要延遲上限的應用中做出什麼樣的權衡呢?交易應用程序權衡:數據庫和低延遲
例如,客戶已經進行了交易,它必須通過一些檢查,這些檢查存儲在數據庫中,需要數據庫提取。然後,交易應轉交給OMS/ORS或交易所。而且,在每一層,都需要在數據庫中存儲某種交易數據。應該如何在事務持久性和低延遲之間保持平衡?
幾乎每個商業應用程序都需要數據庫來存儲數據和在該數據上完成的事務。事務通常需要幾毫秒的時間。同時,在交易應用程序中,一件完全不可接受的事情是「延遲」。那麼,在這種需要延遲上限的應用中做出什麼樣的權衡呢?交易應用程序權衡:數據庫和低延遲
例如,客戶已經進行了交易,它必須通過一些檢查,這些檢查存儲在數據庫中,需要數據庫提取。然後,交易應轉交給OMS/ORS或交易所。而且,在每一層,都需要在數據庫中存儲某種交易數據。應該如何在事務持久性和低延遲之間保持平衡?
兩件事情:
現在有一天人們使用內存中的交易系統,所以你減少了數據庫獲得的網絡延遲。
這裏有一些東西,你可以考慮爲低延遲
- 試圖減少爭用使用等待算法(whi ch有點困難),鎖定自由算法。你可以找到很多的例子
- 使用內存計算。內存很便宜,你可以在內存中有四字節的數據。
- 使用機械同情 - 請參閱lmax干擾器,優秀的框架
這些是相當不錯的想法。但是,您是否有任何關於如何實施緩存方案的指示? – Lazylabs
這在很大程度上取決於你如何訪問數據庫和一般的架構。 –