Hey Nathan,<br><br>I think the appropriate solution is largely dependent on your particular situation.&nbsp; For instance, we have one website that is media hosting, we cache media requests for 10 minutes.&nbsp; Now if a user updates their media description or something we simply tell them that it will not show up on the site right away.&nbsp; Then after roughly ten minutes the media expires from cache, upon the next request our php code gets null back from memcached, gets the media from the database and disk, puts in memcache and then returns.
<br><br>So we don&#39;t use cron or any other batch processing, instead we figure that stale for 10 minutes is ok and just let the content naturally expire from cache.<br><br>Hope this helps,<br>Kevin<br><br><div><span class="gmail_quote">
On 5/21/07, <b class="gmail_sendername">Nathan Nobbe</b> &lt;<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
All,<br><br>I recently began investigating memcached, and im very excited about it.&nbsp; im planning on using it w/ php to implement variables whose lifetime can be the duration of the application.<br>I understand that storing the results of queries to the database can increase efficiency if those variables are checked for the data first on consecutive requests for the data they store, but
<br>i still have a disconnect...<br>what i dont understand is when the data profile of a particular table changes, and the variable in the memcache that represents that table becomes stale, how can the variable be updated efficiently?
<br>obviously w/ php and a&nbsp; unix system, a simple cron could be used to poll the database periodically to see if there are changes to the data profile of a given table.&nbsp; i was thinking to make this even more<br>efficient; triggers could be employed (im using mysql 5+) to update a table, call it 
<span style="font-style: italic;">recent_tables_that_changed</span>, dedicated to signifying particular tables in the database have changed.&nbsp; then the cron&#39;d php script could simply check <span style="font-style: italic;">

recent_tables_that_changed&nbsp; </span>to determine which, if any, application variables had become stale (do to a change in data profile).&nbsp; the stale variable&nbsp; could then be updated and the record removed from&nbsp; <span style="font-style: italic;">

recent_tables_that_changed</span>.<br>though decent, i am personally not a fan of this approach, because there would still be a frequent query running against the database just to determine what data had changed so that application variables in the cache
<br>would not remain stale for long once theyve become stale.&nbsp; additionally, the mechanisms&#39; responsiveness would be limited to the time granularity of cron, which i believe is a minute.&nbsp; im wondering if there is some way to signal the cache only when tables, represented by application variables, have changed.&nbsp; if you dont feel like typing out a response, because this is probably a naive question, would anyone mind directing me to a resource or two where i could read up on the topic myself?
<br><br>(sorry for the lengthy posting)<br>thanks,<br><span class="sg"><br>-Nathan<br>
</span></blockquote></div><br>