Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#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:



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:

no explanation found in the docs.

thank you in advance :)

; 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

; 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

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

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.