世界正每秒從移動設備,Web和各種小工具向應用程序推送大量數據。 如今,更多的應用程序必須處理此數據。 為了保持性能,這些應用程序需要快速訪問數據層。
在過去的幾年中,RAM價格下降了,我們現在可以便宜得多地獲得具有TB級RAM的硬件。 好,有了硬件,現在呢? 我們通常使用虛擬化來創建較小的虛擬機,以滿足應用程序橫向擴展的要求,因為擁有一個TB級的Java應用程序是不切實際的。 JVM Garbage Collection將立即殺死您的應用程序。 有沒有想過要對一個TB的堆進行單個完整的垃圾回收需要多少時間? 它將使應用程序暫停數小時,使其無法使用。
BigMemory是在不維護磁盤/ raid配置/數據庫的情況下以毫秒為單位訪問數TB數據的關鍵。
BigMemory =大數據+內存中
BigMemory可以利用您的硬件到RAM的最后一個字節。 BigMemory在單個Java進程中最多可以存儲TB的數據。
BigMemory以每個節點1 TB的速度提供“快速”,“可預測”和“高可用性”數據。
以下測試使用兩個盒子,每個盒子都有1 TB的RAM。 為操作系統留出足夠的空間,我們能夠分配2 x 960 GB的BigMemory,總共可存儲1.8+ TB的數據。 無需面對高延遲的問題,無需使用龐大的橫向擴展體系結構即可……直接使用硬件。
測試結果:每秒23K只讀事務,延遲為20 ms。
隨時間推移的測試吞吐量和周期性等待時間的圖表。
![]() |
只讀定期吞吐量圖 |
![]() |
只讀定期延遲圖 |
參考:來自Billion &Terabytes博客的JCG合作伙伴 Himadri Singh的快速,可預測和高度可用@ 1 TB /節點 。
翻譯自: https://www.javacodegeeks.com/2012/06/fast-predictable-highly-available-1.html