That is exactly what I'm worried about - my disk space. Something like a file size max limit would be nice too. I think the the OptimizeOnRemove should work for us though too if we configure it correctly. We are doing load testing on our application now, with these new settings so I hope to know if this is sufficient. I do think controlling based on file size would be ideal - like when a new "put" happens, just check the resulting file size and do the clean up then. This is probably turning into more of a feature request now, but might be something to think about if I'm not the only one worried about disk space.
Thanks again for the detailed responses, and all the help. JCS has a lot more features then some of the other cache systems we looked at, and I think it will work well for us. Thanks, Josh Fuller On 9/21/05, Smuts, Aaron <[EMAIL PROTECTED]> wrote: > > Are you running out of disk space? > > Perhaps an emergency limit that just causes the disk cache to truncate > the file would be a good safety net. > > The optimization process is time intensive. . . . > > ------------------------------ > > *From:* Joshua Fuller [mailto:[EMAIL PROTECTED] > *Sent:* Tuesday, September 20, 2005 9:07 PM > *To:* Smuts, Aaron > *Cc:* JCS Users List > *Subject:* Re: Limiting Disk Cache Size? > > Thanks again for the quick replies and clarifications. I now understand > that the file will not grow indefinitely as you have the > "OptimizeAtRemoveCount" option - that makes me feel better - except that if > you don't get a lot of removes for a while, the file could get quite large. > Have you thought about adding something like "OptimizeAtRecycleSize"? I'm > thinking about extending the existing classes to do something like this - if > the number of items in the recycle are X then optimize. Any thoughts? > > Thanks again, > Josh Fuller > > On 9/20/05, *Smuts, Aaron* <[EMAIL PROTECTED]> wrote: > > Max objects at the region level sets configures the memory manager. > > http://jakarta.apache.org/jcs/RegionProperties.html > > If you use the indexed disk cache, then the MaxKeySize setting on that > auxiliary, configures the number of disk indexes that the disk can have. > > http://jakarta.apache.org/jcs/IndexedDiskCacheProperties.html > > This configuration limits the memory cache to 10 and the disk cache to > 1000 keys: > > ############################################################## > > > > ##### Default Region Configuration > > jcs.default=DC > > > > jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes > > jcs.default.cacheattributes.MaxObjects=10 > > jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache > > ############################################################## > > > > ##### AUXILIARY CACHES > > # Indexed Disk Cache > > > > jcs.auxiliary.DC=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory > > jcs.auxiliary.DC.attributes=org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes > > jcs.auxiliary.DC.attributes.DiskPath=target/test-sandbox/indexed-disk-cache > > > > jcs.auxiliary.DC.attributes.MaxPurgatorySize=500 > > jcs.auxiliary.DC.attributes.MaxKeySize=1000 > > jcs.auxiliary.DC.attributes.MaxRecycleBinSize=300 > > ------------------------------ > > *From:* Joshua Fuller [mailto:[EMAIL PROTECTED] > *Sent:* Tuesday, September 20, 2005 3:16 PM > > > *To:* Smuts, Aaron > *Cc:* JCS Users List > *Subject:* Re: Limiting Disk Cache Size? > > I'm sorry I seem so confused on this - but I think it must come from a > misunderstanding of how the disk cache is used in the first place. The site > says "When the memory cache exceeds its maximum size it tells the cache hub > that the item to be removed from memory should be spooled to disk." What is > the "maximum size" then that is being referred to? I was under the > impression it was the "jcs.default.cacheattributes.MaxObjects" value, but > that does not seem to make sense now either. Can you clarify what values do > what in regards to disk cache? If I want 10 items in memory, and 1000 items > on disk in my cache - how can I do that? > > Thanks, > Josh Fuller > > On 9/20/05, *Smuts, Aaron* <[EMAIL PROTECTED]> wrote: > > ------------------------------ > > *From:* Joshua Fuller [mailto: [EMAIL PROTECTED] > *Sent:* Tuesday, September 20, 2005 12:40 PM > *To:* Smuts, Aaron > *Cc:* JCS Users List > *Subject:* Re: Limiting Disk Cache Size? > > Thanks for your quick response and help. So would you recommend setting > up multiple disk cache, and using the MaxKeySize value to limit it? Or is > your last statement saying that the MaxKeySize will not actually limit the > size of objects on the disk anyway, but only the number of keys in memory? > > The indexec disk cache is a memory index of items on disk. The keys and > the starting location of on disk for an item are stored in memory. The > maxkeysize on the disk cache limits the number of keys stored in the index. > This has nothing to do with the max size setting on the memory cache. > > So to clarify, if I have a database of 100,000 records that are heavily > used - and I have a cache setup with a MaxKeySize of 1,000 - then there is > nothing preventing all 100,000 records from being spooled to disk as long as > they have yet to expire? > > Yes and no. All of them can get spooled, but only 1000 will be available. > > > > > A follow-up question to that would be - Does the memory shrinker thread > get used also to clean up the disk cache items that may have expired, or how > do they get cleaned out? > > Nope. It is just a memory cache shrinker. > > They get cleaned out when remove is called. Remove is called when you > call remove or when you call get and an item is found to be expired. > > > Thanks, > Josh Fuller > > On 9/20/05, *Smuts, Aaron* <[EMAIL PROTECTED] > wrote: > > You can only limit the number of keys, not the size of the file. The > disk cache keeps track of empty spots from where an item has been > removed and it tries to reuse them, but this doesn't stop it from > growing indefinitely if you keep putting larger and larger items on > disk. I don't think that the disk cache marks a spot as available when > a key is spooled off the disk cache key lru. . . . > > > -----Original Message----- > > From: Joshua Fuller [mailto: [EMAIL PROTECTED] > > Sent: Monday, September 19, 2005 9:07 PM > > To: jcs-users@jakarta.apache.org > > Subject: Fwd: Limiting Disk Cache Size? > > > > Sorry, if this is a repeat - the last email didnt seem to send so I'm > > trying > > again...... > > > > Is there a way to limit the size of the items in the cache being > stored to > > disk for a given region, or even globally? I can't find any setting > > anywhere > > that limits the size of the files on disk (by number of elements or > > physical). > > > > Thanks, > > Josh Fuller > >