#97 closed defect (invalid)
var cache is loosing his value after some time (3-4 hours)
Reported by: | Dioxin | Owned by: | moo |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | cacher | Version: | 1.2-dev |
Keywords: | xcache var cache loosing value | Cc: | |
Application: | xcache | PHP Version: | 5.2 |
Other Exts: | SAPI: | ||
Probability: | Blocked By: | ||
Blocking: |
Description
Hi,
the var cache is loosing his value after some time (3-4 hours). we store two big string arrays in the cache and after some time, the caching is getting purged automatically.
we set the cache entries via:
xcache_set('wikiCache', $wikiCache, 0);
any known issues about this?
what does this setting mean:
xcache.var_gc_interval=300
no explanation found in the docs.
thank you in advance :)
[xcache] ; ini only settings, all the values here is default unless explained ; select low level shm/allocator scheme implemenation xcache.shm_scheme = "mmap" ; to disable: xcache.size=0 ; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows ; Dioxin: modified values xcache.size = 72M ; set to cpu count (cat /proc/cpuinfo |grep -c processor) xcache.count = 2 ; just a hash hints, you can always store count(items) > slots xcache.slots = 8K ; ttl of the cache item, 0=forever xcache.ttl = 0 ; interval of gc scanning expired items, 0=no scan, other values is in seconds xcache.gc_interval = 0 ; same as aboves but for variable cache ; Dioxin: modified values xcache.var_size = 4M xcache.var_count = 2 xcache.var_slots = 8K ; default ttl xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off ; N/A for /dev/zero xcache.readonly_protection = Off ; for *nix, xcache.mmap_path is a file path, not directory. ; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection ; 2 group of php won't share the same /tmp/xcache ; for win32, xcache.mmap_path=anonymous map name, not file path xcache.mmap_path = "/tmp/xcache" ; leave it blank(disabled) or "/tmp/phpcore/" ; make sure it's writable by php (without checking open_basedir) xcache.coredump_directory = "" ; per request settings xcache.cacher = On xcache.stat = On ; Dioxin: activated xcache.optimizer = On [xcache.coverager] ; per request settings ; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance) xcache.coverager = Off ; ini only settings ; make sure it's readable (care open_basedir) by coverage viewer script ; requires xcache.coverager=On xcache.coveragedump_directory = ""
Change History (2)
comment:1 Changed 13 years ago by moo
- Resolution set to invalid
- Status changed from new to closed
comment:2 Changed 13 years ago by moo
btw, xcache.var_gc_interval=300 means we do gc every 300 seconds
Note: See
TracTickets for help on using
tickets.
xcache_set('wikiCache', $wikiCache, 0), ttl=0 means no ttl expiration
here we goes the pseudo-code
function xcache_set($name, $value, $ttl = null) { global $xcache_settings; if ($ttl === null) { $ttl = $xcache_settings['var_ttl']; // default } if ($xcache_settings['maxttl']) { $ttl = min($ttl, $xcache_settings['var_maxttl']); } if ($ttl) { store $value as $name, with ttl=$ttl seconds } else { store $value as $name, with no ttl } }