All,<br><br>These are excellent responses!&nbsp; Thanks so much.&nbsp; I can&#39;t wait to begin implementing memecached in my PHP applications.<br><br>-Nathan<br><br><div><span class="gmail_quote">On 5/21/07, <b class="gmail_sendername">
<a href="mailto:memcached-request@lists.danga.com">memcached-request@lists.danga.com</a></b> &lt;<a href="mailto:memcached-request@lists.danga.com">memcached-request@lists.danga.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;">
Send memcached mailing list submissions to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com</a><br><br>To subscribe or unsubscribe via the World Wide Web, visit<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://lists.danga.com/mailman/listinfo/memcached">
http://lists.danga.com/mailman/listinfo/memcached</a><br>or, via email, send a message with subject or body &#39;help&#39; to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:memcached-request@lists.danga.com">memcached-request@lists.danga.com
</a><br><br>You can reach the person managing the list at<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:memcached-owner@lists.danga.com">memcached-owner@lists.danga.com</a><br><br>When replying, please edit your Subject line so it is more specific
<br>than &quot;Re: Contents of memcached digest...&quot;<br><br><br>Today&#39;s Topics:<br><br>&nbsp;&nbsp; 1. telling code to pull from the database when the data in a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp; changes (Nathan Nobbe)<br>&nbsp;&nbsp; 2. Re: telling code to pull from the database when the data in a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp; changes (Tomas Markauskas)<br>&nbsp;&nbsp; 3. Re: telling code to pull from the database when the data in a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table changes (Thomas Seifert)<br>&nbsp;&nbsp; 4. Re: telling code to pull from the database when the data in a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp; changes (KevinImNotSpacey)<br><br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Mon, 21 May 2007 10:05:19 -0400<br>From: &quot;Nathan Nobbe&quot; &lt;
<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt;<br>Subject: telling code to pull from the database when the data in a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp; changes<br>To: <a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com
</a><br>Message-ID:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:7dd2dc0b0705210705q57b7ccdag1302251325293bca@mail.gmail.com">7dd2dc0b0705210705q57b7ccdag1302251325293bca@mail.gmail.com</a>&gt;<br>Content-Type: text/plain; charset=&quot;iso-8859-1&quot;
<br><br>All,<br><br>I recently began investigating memcached, and im very excited about it.&nbsp;&nbsp;im<br>planning on using it w/ php to implement variables whose lifetime can be the<br>duration of the application.<br>I understand that storing the results of queries to the database can
<br>increase efficiency if those variables are checked for the data first on<br>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
<br>changes, and the variable in the memcache that represents that table becomes<br>stale, how can the variable be updated efficiently?<br>obviously w/ php and a&nbsp;&nbsp;unix system, a simple cron could be used to poll the<br>database periodically to see if there are changes to the data profile of a
<br>given table.&nbsp;&nbsp;i was thinking to make this even more<br>efficient; triggers could be employed (im using mysql 5+) to update a table,<br>call it recent_tables_that_changed, dedicated to signifying particular<br>tables in the database have changed.&nbsp;&nbsp;then the cron&#39;d php script could
<br>simply check recent_tables_that_changed&nbsp;&nbsp;to determine which, if any,<br>application variables had become stale (do to a change in data profile).<br>the stale variable&nbsp;&nbsp;could then be updated and the record removed from
<br>recent_tables_that_changed.<br>though decent, i am personally not a fan of this approach, because there<br>would still be a frequent query running against the database just to<br>determine what data had changed so that application variables in the cache
<br>would not remain stale for long once theyve become stale.&nbsp;&nbsp;additionally, the<br>mechanisms&#39; responsiveness would be limited to the time granularity of cron,<br>which i believe is a minute.&nbsp;&nbsp;im wondering if there is some way to signal
<br>the cache only when tables, represented by application variables, have<br>changed.&nbsp;&nbsp;if you dont feel like typing out a response, because this is<br>probably a naive question, would anyone mind directing me to a resource or
<br>two where i could read up on the topic myself?<br><br>(sorry for the lengthy posting)<br>thanks,<br><br>-Nathan<br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <a href="http://lists.danga.com/pipermail/memcached/attachments/20070521/ac143a94/attachment-0001.htm">
http://lists.danga.com/pipermail/memcached/attachments/20070521/ac143a94/attachment-0001.htm</a><br><br>------------------------------<br><br>Message: 2<br>Date: Mon, 21 May 2007 16:12:17 +0200<br>From: &quot;Tomas Markauskas&quot; &lt;
<a href="mailto:info@tamole.net">info@tamole.net</a>&gt;<br>Subject: Re: telling code to pull from the database when the data in a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp; changes<br>To: &quot;Nathan Nobbe&quot; &lt;<a href="mailto:quickshiftin@gmail.com">
quickshiftin@gmail.com</a>&gt;,&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com</a><br>Message-ID:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:8edd6e790705210712h27fafe6fj71ad72768631cb2@mail.gmail.com">8edd6e790705210712h27fafe6fj71ad72768631cb2@mail.gmail.com
</a>&gt;<br>Content-Type: text/plain; charset=UTF-8; format=flowed<br><br>Hello,<br><br>why not deleting/updating the cache entry when you updating the table?<br>At that moment you know, which rows you&#39;re updating.<br>
<br>Tomas<br><br>On 5/21/07, Nathan Nobbe &lt;<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt; wrote:<br>&gt; All,<br>&gt;<br>&gt; I recently began investigating memcached, and im very excited about it.&nbsp;&nbsp;im
<br>&gt; planning on using it w/ php to implement variables whose lifetime can be the<br>&gt; duration of the application.<br>&gt; I understand that storing the results of queries to the database can<br>&gt; increase efficiency if those variables are checked for the data first on
<br>&gt; consecutive requests for the data they store, but<br>&gt; i still have a disconnect...<br>&gt; what i dont understand is when the data profile of a particular table<br>&gt; changes, and the variable in the memcache that represents that table becomes
<br>&gt; stale, how can the variable be updated efficiently?<br>&gt; obviously w/ php and a&nbsp;&nbsp;unix system, a simple cron could be used to poll the<br>&gt; database periodically to see if there are changes to the data profile of a
<br>&gt; given table.&nbsp;&nbsp;i was thinking to make this even more<br>&gt; efficient; triggers could be employed (im using mysql 5+) to update a table,<br>&gt; call it recent_tables_that_changed, dedicated to signifying particular
<br>&gt; tables in the database have changed.&nbsp;&nbsp;then the cron&#39;d php script could<br>&gt; simply check recent_tables_that_changed&nbsp;&nbsp;to determine which, if any,<br>&gt; application variables had become stale (do to a change in data profile).
<br>&gt; the stale variable&nbsp;&nbsp;could then be updated and the record removed from<br>&gt; recent_tables_that_changed.<br>&gt; though decent, i am personally not a fan of this approach, because there<br>&gt; would still be a frequent query running against the database just to
<br>&gt; determine what data had changed so that application variables in the cache<br>&gt; would not remain stale for long once theyve become stale.&nbsp;&nbsp;additionally, the<br>&gt; mechanisms&#39; responsiveness would be limited to the time granularity of cron,
<br>&gt; which i believe is a minute.&nbsp;&nbsp;im wondering if there is some way to signal<br>&gt; the cache only when tables, represented by application variables, have<br>&gt; changed.&nbsp;&nbsp;if you dont feel like typing out a response, because this is
<br>&gt; probably a naive question, would anyone mind directing me to a resource or<br>&gt; two where i could read up on the topic myself?<br>&gt;<br>&gt; (sorry for the lengthy posting)<br>&gt; thanks,<br>&gt;<br>&gt; -Nathan
<br>&gt;<br><br><br>------------------------------<br><br>Message: 3<br>Date: Mon, 21 May 2007 16:14:30 +0200<br>From: Thomas Seifert &lt;<a href="mailto:thomas-lists@mysnip.de">thomas-lists@mysnip.de</a>&gt;<br>Subject: Re: telling code to pull from the database when the data in a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table changes<br>To: Nathan Nobbe &lt;<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt;<br>Cc: <a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com</a><br>Message-ID: &lt;<a href="mailto:4651A946.7020006@mysnip.de">
4651A946.7020006@mysnip.de</a>&gt;<br>Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br><br>Hi Nathan,<br><br>I think thats simply up to the application how this is handled.<br>E.g. you could just &quot;delete&quot; or &quot;update&quot; the cached variable at the
<br>place where the data in the table is changed, thats<br>how we handle it in most areas.<br>Or you use some &quot;version&quot; which increases if the data changed and use<br>that version-number together with the key to retrieve
<br>data from memcached.<br><br><br>thomas<br><br>Nathan Nobbe schrieb:<br>&gt; All,<br>&gt;<br>&gt; I recently began investigating memcached, and im very excited about<br>&gt; it.&nbsp;&nbsp;im planning on using it w/ php to implement variables whose
<br>&gt; lifetime can be the duration of the application.<br>&gt; I understand that storing the results of queries to the database can<br>&gt; increase efficiency if those variables are checked for the data first<br>&gt; on consecutive requests for the data they store, but
<br>&gt; i still have a disconnect...<br>&gt; what i dont understand is when the data profile of a particular table<br>&gt; changes, and the variable in the memcache that represents that table<br>&gt; becomes stale, how can the variable be updated efficiently?
<br>&gt; obviously w/ php and a&nbsp;&nbsp;unix system, a simple cron could be used to<br>&gt; poll the database periodically to see if there are changes to the data<br>&gt; profile of a given table.&nbsp;&nbsp;i was thinking to make this even more
<br>&gt; efficient; triggers could be employed (im using mysql 5+) to update a<br>&gt; table, call it recent_tables_that_changed, dedicated to signifying<br>&gt; particular tables in the database have changed.&nbsp;&nbsp;then the cron&#39;d php
<br>&gt; script could simply check recent_tables_that_changed&nbsp;&nbsp;to determine<br>&gt; which, if any, application variables had become stale (do to a change<br>&gt; in data profile).&nbsp;&nbsp;the stale variable&nbsp;&nbsp;could then be updated and the
<br>&gt; record removed from&nbsp;&nbsp;recent_tables_that_changed.<br>&gt; though decent, i am personally not a fan of this approach, because<br>&gt; there would still be a frequent query running against the database<br>&gt; just to determine what data had changed so that application variables
<br>&gt; in the cache<br>&gt; would not remain stale for long once theyve become stale.<br>&gt; additionally, the mechanisms&#39; responsiveness would be limited to the<br>&gt; time granularity of cron, which i believe is a minute.&nbsp;&nbsp;im wondering
<br>&gt; if there is some way to signal the cache only when tables, represented<br>&gt; by application variables, have changed.&nbsp;&nbsp;if you dont feel like typing<br>&gt; out a response, because this is probably a naive question, would
<br>&gt; anyone mind directing me to a resource or two where i could read up on<br>&gt; the topic myself?<br>&gt;<br>&gt; (sorry for the lengthy posting)<br>&gt; thanks,<br>&gt;<br>&gt; -Nathan<br><br>-------------- next part --------------
<br>An HTML attachment was scrubbed...<br>URL: <a href="http://lists.danga.com/pipermail/memcached/attachments/20070521/bcf60a26/attachment-0001.html">http://lists.danga.com/pipermail/memcached/attachments/20070521/bcf60a26/attachment-0001.html
</a><br><br>------------------------------<br><br>Message: 4<br>Date: Mon, 21 May 2007 09:17:16 -0500<br>From: KevinImNotSpacey &lt;<a href="mailto:kevin.amerson@gmail.com">kevin.amerson@gmail.com</a>&gt;<br>Subject: Re: telling code to pull from the database when the data in a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table&nbsp;&nbsp; changes<br>To: &quot;Nathan Nobbe&quot; &lt;<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt;<br>Cc: <a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com</a><br>Message-ID:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a href="mailto:68f7cf9d0705210717mf30e3f1s528fda9a2dd8f449@mail.gmail.com">68f7cf9d0705210717mf30e3f1s528fda9a2dd8f449@mail.gmail.com</a>&gt;<br>Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
<br>Hey Nathan,<br><br>I think the appropriate solution is largely dependent on your particular<br>situation.&nbsp;&nbsp;For instance, we have one website that is media hosting, we<br>cache media requests for 10 minutes.&nbsp;&nbsp;Now if a user updates their media
<br>description or something we simply tell them that it will not show up on the<br>site right away.&nbsp;&nbsp;Then after roughly ten minutes the media expires from<br>cache, upon the next request our php code gets null back from memcached,
<br>gets the media from the database and disk, puts in memcache and then<br>returns.<br><br>So we don&#39;t use cron or any other batch processing, instead we figure that<br>stale for 10 minutes is ok and just let the content naturally expire from
<br>cache.<br><br>Hope this helps,<br>Kevin<br><br>On 5/21/07, Nathan Nobbe &lt;<a href="mailto:quickshiftin@gmail.com">quickshiftin@gmail.com</a>&gt; wrote:<br>&gt;<br>&gt; All,<br>&gt;<br>&gt; I recently began investigating memcached, and im very excited about it.
<br>&gt; im planning on using it w/ php to implement variables whose lifetime can be<br>&gt; the duration of the application.<br>&gt; I understand that storing the results of queries to the database can<br>&gt; increase efficiency if those variables are checked for the data first on
<br>&gt; consecutive requests for the data they store, but<br>&gt; i still have a disconnect...<br>&gt; what i dont understand is when the data profile of a particular table<br>&gt; changes, and the variable in the memcache that represents that table becomes
<br>&gt; stale, how can the variable be updated efficiently?<br>&gt; obviously w/ php and a&nbsp;&nbsp;unix system, a simple cron could be used to poll<br>&gt; the database periodically to see if there are changes to the data profile of
<br>&gt; a given table.&nbsp;&nbsp;i was thinking to make this even more<br>&gt; efficient; triggers could be employed (im using mysql 5+) to update a<br>&gt; table, call it recent_tables_that_changed, dedicated to signifying<br>&gt; particular tables in the database have changed.&nbsp;&nbsp;then the cron&#39;d php script
<br>&gt; could simply check recent_tables_that_changed&nbsp;&nbsp;to determine which, if any,<br>&gt; application variables had become stale (do to a change in data profile).<br>&gt; the stale variable&nbsp;&nbsp;could then be updated and the record removed from
<br>&gt; recent_tables_that_changed.<br>&gt; though decent, i am personally not a fan of this approach, because there<br>&gt; would still be a frequent query running against the database just to<br>&gt; determine what data had changed so that application variables in the cache
<br>&gt; would not remain stale for long once theyve become stale.&nbsp;&nbsp;additionally,<br>&gt; the mechanisms&#39; responsiveness would be limited to the time granularity of<br>&gt; cron, which i believe is a minute.&nbsp;&nbsp;im wondering if there is some way to
<br>&gt; signal the cache only when tables, represented by application variables,<br>&gt; have changed.&nbsp;&nbsp;if you dont feel like typing out a response, because this is<br>&gt; probably a naive question, would anyone mind directing me to a resource or
<br>&gt; two where i could read up on the topic myself?<br>&gt;<br>&gt; (sorry for the lengthy posting)<br>&gt; thanks,<br>&gt;<br>&gt; -Nathan<br>&gt;<br>-------------- next part --------------<br>An HTML attachment was scrubbed...
<br>URL: <a href="http://lists.danga.com/pipermail/memcached/attachments/20070521/32de3ddf/attachment.htm">http://lists.danga.com/pipermail/memcached/attachments/20070521/32de3ddf/attachment.htm</a><br><br>------------------------------
<br><br>_______________________________________________<br>memcached mailing list<br><a href="mailto:memcached@lists.danga.com">memcached@lists.danga.com</a><br><a href="http://lists.danga.com/mailman/listinfo/memcached">
http://lists.danga.com/mailman/listinfo/memcached</a><br><br><br>End of memcached Digest, Vol 34, Issue 42<br>*****************************************<br></blockquote></div><br>