我們使用的是EhCache 2.6.2。因爲我們需要高生存能力,所以我們只使用DiskStorage而不使用MemoryStorage。爲什麼每個DiskStorage在EhCache中刷新需要4秒?
每次數據更新後,我們在程序中,我們將數據刷新到磁盤。
經過一段時間,cache.data文件超過了1 gb的最大值。當數據文件爲250 MB時,刷新需要250毫秒,當它是1 GB時,需要3.5秒。
我們的對象大約20kb,所以它們有數以百萬計。
有沒有辦法將數據文件拆分爲幾個較小的文件並讓EhCache處理它?
我們希望有解決方案只涉及配置更改而不更改代碼,導致它在生產環境中。
環境的詳細信息:
與IBM的Java 1.6具有的Ehcache 2.6.2在AIX 6.1 64位運行WebSphere 7。
請注意,「高生存能力」不會像磁盤存儲的開源版本那樣提供。例如虛擬機崩潰或正確的JVM(和CacheManager)關閉可能導致數據損壞。儘管Ehcache在確定磁盤上的緩存數據是否在重新啓動時沒有損壞方面做出了最大的努力,但並不總是能夠這樣做。 –
謝謝你的回答!我在你提到的句子中所提到的是,在每次更新緩存中的數據後 - 都會強制高速緩存寫入磁盤。它不等待定期自動保存。我還支持在磁盤和RAM之間組合緩存的想法,但目前在該項目中並不可行。我會檢查你提到的diskAccessStripes!再次感謝 – arieljannai