2013-04-24 11 views
6

Tôi đang sử dụng ehcache entreprise 2.7 với bộ nhớ lớn. Tôi muốn có một bộ nhớ cache tràn vào đĩa khi đầy VÀ tôi muốn bộ nhớ cache này được kiên trì thông qua khởi động lại.Ehcache, có thể khởi động lại nhanh chóng và tràn vào đĩa

cấu hình hiện tại của tôi là:

<cache name="dataservice" 
      eternal="true" 
      maxEntriesLocalHeap="1" 
      overflowToOffHeap="true" 
      maxBytesLocalOffHeap="60M"> 
    <persistence strategy="localRestartable"/> 
</cache> 

Cấu hình này làm cho bộ nhớ cache dai dẳng qua khởi động lại (và nó hoạt động rất tốt) nhưng nó dường như không tràn vào đĩa. Tôi thực sự muốn sử dụng "localRestartable" vì nó hoạt động tốt hơn so với thuộc tính cũ diskPersistent = "true". "localRestartable" không tương thích với thuộc tính overflowToDisk = "true" ...

Bất kỳ ý tưởng nào về cách tôi có thể làm cho bộ nhớ cache của tôi tràn vào đĩa ??

Trả lời

0

Tôi đang sử dụng một cái gì đó như thế này và nó không làm việc với khởi động lại (cũng không phải là phiên bản doanh nghiệp) NHƯNG, tôi đang sử dụng một số loại "quản lý bộ nhớ đệm" (giải pháp riêng) - nơi tôi đang sao lưu tất cả bộ nhớ cache vào các tệp XML cứ 20 giây một lần. Nếu có bất kỳ giải pháp tốt hơn - tôi sẽ đánh giá cao một số lời khuyên quá.

<cache name="dataservice" 
    maxElementsInMemory="1000" 
    maxElementsOnDisk="10000" 
    overflowToDisk="true" 
    eternal="true" 
    > 
</cache> 
0

Ít nhất là 4.1, BigMemory Go + Ehcache Enterprise không hỗ trợ những gì bạn đang tìm kiếm. Nếu bạn bật tùy chọn localRestartable, Ehcache sẽ sao chép bộ nhớ cache của bạn vào đĩa (đồng bộ hoặc không đồng bộ). Lưu ý rằng đây không phải là "tràn" hoặc "tràn" vào đĩa.

"localRestartable" - Bật tính năng Khởi động lại nhanh tự động ghi nhật ký tất cả dữ liệu BigMemory. Tùy chọn này cung cấp khả năng khởi động lại nhanh với sự kiên trì dữ liệu chịu lỗi. (từ http://www.terracotta.org/documentation/4.1/bigmemorygo/configuration/fast-restart)