Hi,
I think I find the problem.
The keys like default_cake_sessions default_aros_acos default_acos and all
the models like default_MODEL_NAME have an expiration of '+999 days'
In cake/libs/cache.php at line 238 we have
if (isset($settings['duration']) && !is_numeric($settings['duration'])) {
$settings['duration'] = strtotime($settings['duration']) - time();
}
which translates to: get me the timestamp for +999 days and then substract
from it the timestamp for current time which leaves 1970 + 999 days which
invalidates my awsome memcache key/value. And of couse, if I'll use the file
cache probably it will be rewritten each and every time, I haven't test
this.
So far I don't know why that subtraction is there, why it is needed the
differernce as a result if someone can illuminate me, please do.
Thank you,
Adrian
On Wed, Jan 12, 2011 at 12:24 PM, Adrian Arnautu
<[email protected]>wrote:
> Hi to all,
>
> I activated the Memcached default support with this config
> Cache::config('default', array(
> 'engine' => 'Memcache',
> 'duration'=> 9577829600,
> 'servers' => array(
> '127.0.0.1:11211'
> ),
> 'compress' => false,
> ));
>
> and -vvv option in memcached to see what is actually happening and couple
> of questions arose.
> 1. I cleared the files from the app/tmp/cache directory and they were
> recreated. Is this a some sort of fallback, if nothing is retrieved from
> memcached these files will be used and if it does not exists it will be
> recreated? If so, it's good.
> 2. As you can see I set duration to a insanely large value.
> In memcached log I've got something like this
>
> 31: going from conn_read to conn_parse_cmd
> <31 get app_cake_core_file_map
> > FOUND KEY app_cake_core_file_map_ 1 822
> a:3:{s:4:"Core";a:3:{s:6:"Router";s: ..........
> -nuked by expire
> >31 END
>
>
> 31: going from conn_parse_cmd to conn_mwrite
> 31: going from conn_mwrite to conn_new_cmd
> 31: going from conn_new_cmd to conn_waiting
> 31: going from conn_waiting to conn_read
> 31: going from conn_read to conn_parse_cmd
> <31 get app_cake_core_dir_map
> > FOUND KEY app_cake_core_dir_map -nuked by expire
> >31 END
>
> <31 get app_cake_core_object_map
> > FOUND KEY app_cake_core_object_mapr 1 25
> a:1:{s:6:"plugin";a:0:{}}
> -nuked by expire
> >31 END
>
> 1: going from conn_nread to conn_write
> 31: going from conn_write to conn_new_cmd
> 31: going from conn_new_cmd to conn_waiting
> 31: going from conn_waiting to conn_read
> 31: going from conn_read to conn_parse_cmd
> <31 get app_cake_model_default_cake_sessions
> > FOUND KEY app_cake_model_default_cake_sessions1 1 321
>
> a:3:{s:2:"id";a:5:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";s:0:"";s:6:"length";i:255;s:3:"key";s:7:"primary";}s:4:"data";a:4:{s:4:"type";s:4:"text";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";i:1073741824;}s:7:"expires";a:4:{s:4:"type";s:7:"integer";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";N;}}
> -nuked by expire
> >31 END
>
> 1: going from conn_nread to conn_write
> 31: going from conn_write to conn_new_cmd
> 31: going from conn_new_cmd to conn_waiting
> 31: going from conn_waiting to conn_read
> 31: going from conn_read to conn_parse_cmd
> <31 get app_cake_model_default_cake_sessions
> > FOUND KEY app_cake_model_default_cake_sessions1 1 321
>
> a:3:{s:2:"id";a:5:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";s:0:"";s:6:"length";i:255;s:3:"key";s:7:"primary";}s:4:"data";a:4:{s:4:"type";s:4:"text";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";i:1073741824;}s:7:"expires";a:4:{s:4:"type";s:7:"integer";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";N;}}
> -nuked by expire
> >31 END
>
> 31: going from conn_parse_cmd to conn_mwrite
> 31: going from conn_mwrite to conn_new_cmd
> 31: going from conn_new_cmd to conn_waiting
> 31: going from conn_waiting to conn_read
> 31: going from conn_read to conn_parse_cmd
> <31 set app_cake_model_default_cake_sessions 1 86310000 321
> 31: going from conn_parse_cmd to conn_nread
> > NOT FOUND app_cake_model_default_cake_sessions1 1 321
>
> a:3:{s:2:"id";a:5:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";s:0:"";s:6:"length";i:255;s:3:"key";s:7:"primary";}s:4:"data";a:4:{s:4:"type";s:4:"text";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";i:1073741824;}s:7:"expires";a:4:{s:4:"type";s:7:"integer";s:4:"null";b:1;s:7:"default";s:0:"";s:6:"length";N;}}
>
> >31 STORED
>
>
> What's with the NOT FOUND and nuked by expire?
> I'm expecting that once the values were set to see only get and found
> entries in my log.
> I've tried with different duration values, I've got the same results.
> First I though that the date is not set correctly, the date utility returns
> the correct value, the timezone is OK, I have NTP installed, the app is
> configured with the correct timezone.
> Also, in a small script all is fine.
>
> Thank you,
> Adrian
>
>
Check out the new CakePHP Questions site http://cakeqs.org and help others with
their CakePHP related questions.
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en