<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Tue, 21 May 2013 03:18:25 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Getting Started with Varnish]]></title>
      <guid>http://www.phpdeveloper.org/news/19074</guid>
      <link>http://www.phpdeveloper.org/news/19074</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial that can help you increase the performance of your application relatively painlessly with the help of the <a href="http://www.varnish-cache.org/">Varnish</a> proxy tool. <a href="http://phpmaster.com/getting-started-with-varnish/">The article</a> helps you get started.
</p>
<blockquote>
<a href="http://www.varnish-cache.org/">Varnish</a> is a reverse proxy server; it sits in front of your web server and serves content from your server and no one else's. Reverse proxy servers are tightly coupled to the web server and can act on messages received from it. [...] Simply put, Varnish does one thing: serve web content super fast.
</blockquote>
<p>
You'll need command line access to the machine (as well as permissions to install the software) but getting it installed is a simple "apt-get" away. There's a bit of configuration to set up to get it up and working, but it's only a few lines...and examples are included in the tutorial. They get into some of the more advanced configuration options too, like the time-to-live and changing the port it listens on. Varnish isn't just for PHP applications either - it can be used effectively for any kind of web application as it's just a proxy layer that sits on top and waits for requests.
</p>]]></description>
      <pubDate>Tue, 22 Jan 2013 10:37:17 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Ole Markus' Blog: High load websites: A lock on Memcached::get]]></title>
      <guid>http://www.phpdeveloper.org/news/15640</guid>
      <link>http://www.phpdeveloper.org/news/15640</link>
      <description><![CDATA[<p>
<i>Ole Markus</i> has <a href="http://olemarkus.org/2010/12/high-load-websites-a-lock-on-memcachedget/">a new post</a> to his blog looking at a technique for working with memcached and fetching data out of the store using a binary semaphore for better performance.
</p>
<blockquote>
A typical document takes but a few hundred milliseconds to generate when a single request for the document enters the backend. The problem is that this is a highload website. In its current form, the backend serves hundreds of pages per second. This pretty much guarantees that the backend will concurrently receive cache miss on multiple languages and at the same time also receive cache miss on the pre-translated document.
</blockquote>
<p>
Given that he wants the translated version to be the one that's always shared, a problem can come up when the cache request is "missed" and the document starts generating from multiple places. His fix for the situation is that only the first miss generates and all others see a lock on it and wait for it to be removed before successfully fetching the result. He provides code in a "LockedMemcached" class to help make it all more useful.
</p>]]></description>
      <pubDate>Mon, 27 Dec 2010 12:34:14 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Bas de Nooijer's Blog: Controlling Varnish ESI inside your application]]></title>
      <guid>http://www.phpdeveloper.org/news/14802</guid>
      <link>http://www.phpdeveloper.org/news/14802</link>
      <description><![CDATA[<p>
As is <a href="http://devzone.zend.com/article/12319-Varnish-Edge-Side-Includes">mentioned</a> on the Zend Developer Zone, there's a new post from <i>Bas de Nooijer</i> about a cool feature of <a href="http://varnish-cache.org/">Varnish</a> - Edge Side Includes - and <a href="http://blog.raspberry.nl/2010/07/05/controlling-varnish-esi-inside-your-application/">how you can control them</a>.
</p>
<blockquote>
For me one of the best features of Varnish is ESI (Edge Side Includes).  It allows you to combine elements with different lifetimes into a single page. This way you don't need to regenerate a complete page as soon as a news listing somewhere on the page changes. And you can still cache pages while displaying user-specific information somewhere on the page. This lowers the load on your application even further and it can also help in simplifying your application, by focussing purely on the content of the page and loading all other elements via ESI.
</blockquote>
<p>
He talks about the upsides and downsides to using the technique and what to avoid when implementing it in your Varnish config. One solution to the problem is sending an ESI "marker" to tell Varnish that a certain bit of content needs to be updated. He shows how to put it to use with a Zend Framework view helper that adds a special "esi" tag to the page when the content for a URL needs to be updated.
</p>]]></description>
      <pubDate>Fri, 16 Jul 2010 08:50:57 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[techPortal: Surviving a Plane Crash]]></title>
      <guid>http://www.phpdeveloper.org/news/12395</guid>
      <link>http://www.phpdeveloper.org/news/12395</link>
      <description><![CDATA[<p>
On the Ibuildings techPortal blog today there's a <a href="http://techportal.ibuildings.com/2009/04/23/surviving-a-plane-crash/">new article</a> (a case study of sorts) on how to survive a plane crash. More specifically, a look at how the <a href="http://nu.nl/">NU.nl news website</a> handled the load as a result of the crash of a Turkish Airliner.
</p>
<blockquote>
On February 25th, 2009, less than 90 days after the new infrastructure was rolled out, it was stress tested when a Turkish Airliner crashed at Schiphol. On that day the new site set a single day traffic record by serving up 21 million page views in a 24 hour time period, all without any noticeable slowdown and without having to bring additional hardware online to handle the additional load.
</blockquote>
<p>
Their framework of choice, <a href="http://codeigniter.com/">CodeIgniter</a>, allowed then to create snippets of content - cached versions - that could be pulled and displayed without having to render them every single time. They looked into the <a href="http://varnish.projects.linpro.no/">Varnish</a> project and a <a href="http://www.atk-framework.com/">ATK</a>-based CMS to piece it all back together.
</p>]]></description>
      <pubDate>Thu, 23 Apr 2009 12:03:57 -0500</pubDate>
    </item>
  </channel>
</rss>
