<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Atif,<br>
<br>
I understood it the same way you did, and was saying that serving files
from memcached as opposed to the filesystem has negligible benefits,
and sometimes actually performs worse.<br>
<br>
The reference to error_page (not error_file as I said before - memory
slip) was just as a means to populate memcache when there's no data in
the cache - you could easily use this method to put the file into
memcache from the filesystem.&nbsp; You wouldn't need to use an Nginx module
to put the file into memcache (at least not with the current Perl
module - it's blocking, so would slow everything down too much, though
with a non-blocking version it could be ok) - though I understand that
that's what he's talking about and where he's talking about hooking it
in.<br>
<br>
Another method would be to use the try_files directive.<br>
<br>
Overall, though, I can only see populating memcache with a file to
serve through Nginx as being overall slower than serving the file from
the filesystem.&nbsp; In my tests, memcache vs filesystem is pretty similar,
and adding any kind of overhead to put a file in memcache will mean
just serving the file statically will be more efficient (and won't
waste memory unnecessarily).&nbsp; I could see storing static files in an
internal memory cache being a bit quicker than serving files
statically, but actually not all that much, and would only possibly be
of real benefit for files that are under very high demand (e.g. a
homepage or a logo on a high-traffic site).<br>
<br>
Cheers,<br>
<br>
Marcus.<br>
<br>
<br>
Given that the<br>
<br>
Atif Ghaffar wrote:
<blockquote
 cite="mid:f240b640903050751i7b52c787y6926da3cebb45d16@mail.gmail.com"
 type="cite"><br>
  <br>
  <div class="gmail_quote">On Thu, Mar 5, 2009 at 12:34 PM, Marcus
Clyne <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:eugaia@gmail.com">eugaia@gmail.com</a>&gt;</span> wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div bgcolor="#ffffff" text="#000000"><br>
For populating the cache, have you looked at the error_file directive.&nbsp;
You can set the error file to script which could be passed to an FCGI
process, so that on a cache-miss the script is called to generate the
page, which could in the process put the file into the memcached
cache.&nbsp; </div>
  </blockquote>
  <div><br>
Marcus, <br>
  <br>
I believe Daniel&nbsp; was talking about the opposite. He want to populate
the cache if nginx hits the file instead of when it does not find it.<br>
  <br>
So something like this (this is how nginx would do it<br>
  <br>
request comes from /files/1.txt<br>
1. Check if memcache exists and serve from there.<br>
2. Check if file exist and serve from here.&nbsp; &lt;---- This is where he
wants to hook it :-)<br>
3. If file does not exists, handle error.<br>
  <br>
What Daniel wants (if I understood correctly)<br>
request comes from /files/1.txt<br>
1. Check if memcache exists and serve from there.<br>
2. if(-f file ) call the perl/fcgi process that populates the memcache
cache and returns the file. (so this would be done only where there is
no cache in memcache)<br>
3. If file does not exists, handle error.<br>
  <br>
  <br>
Still I dont see whats the point of this but yes it is doable.<br>
  <br>
best regards<br>
  <br>
  <br>
  <br>
  <br>
&nbsp;<br>
  </div>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div bgcolor="#ffffff" text="#000000">This of course only really
makes sense for dynamically-generate
content.<br>
    <font color="#888888"><br>
Marcus.</font>
    <div>
    <div class="h5"><br>
&nbsp;<br>
    <br>
Atif Ghaffar wrote:
    <blockquote type="cite">Daniel, <br>
      <br>
I see now your other posts, <br>
      <br>
I do not think that you will get any benifit of using memcached with
static files.<br>
Nginx is already very optimized at serving static files.<br>
      <br>
      <br>
      <div class="gmail_quote">On Wed, Mar 4, 2009 at 11:17 PM, Daniel
Rhoden <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:drhoden@iiwinc.com" target="_blank">drhoden@iiwinc.com</a>&gt;</span>
wrote:<br>
      <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">This
is purely speculative, so please don't think I know how to do this.
&nbsp;I'm throwing this out so hopefully, if a good idea, the right people
can create the example.<br>
        <br>
Memcached has a good assortment of Perl clients.<br>
        <br>
Nginx has a means of embedding Perl into the configuration.<br>
        <br>
Couldn't there be a way of combining these to immediately populate the
cache when the cache returns missing?<br>
        <br>
By the way, I'm looking at this as a means of improving I/O for static
pages (on SliceHost). &nbsp;Ideally nginx's Memcached Module would have the
ability to do this when the requested filename exists on the hard drive:<br>
(-f $request_filename/index.html)<br>
        <font color="#888888"><br>
        <br>
Daniel Rhoden<br>
Director of Information Technology<br>
Interactive Internet Websites, Inc.<br>
3854 - 2 Killearn Court<br>
Tallahassee, Florida 32309<br>
Voice: (256) 878-5554<br>
E-Mail: <a moz-do-not-send="true" href="mailto:drhoden@iiwinc.com"
 target="_blank">drhoden@iiwinc.com</a><br>
Website: <a moz-do-not-send="true" href="http://iiwinc.com"
 target="_blank">iiwinc.com</a><br>
        <br>
        <br>
        </font></blockquote>
      </div>
      <br>
      <br clear="all">
      <br>
-- <br>
best regards<br>
Atif Ghaffar<br>
    </blockquote>
    <br>
    </div>
    </div>
    </div>
  </blockquote>
  </div>
  <br>
  <br clear="all">
  <br>
-- <br>
best regards<br>
Atif Ghaffar<br>
</blockquote>
<br>
</body>
</html>