Battling the "Slashdot Effect"

Tuesday, January 26. 2010

I've always wondered what exactly one can do to combat high volume traffic from slashdot, digg, reddit and other populate news sites - known commonly as the Slashdot effect. The other day, I got a first hand opportunity to find out.  One of our clients sites was posted to multiple news site - so what better way to try out and see what works in a real life slashdotting.  Below, is the solution I ended up with that seemed to remove a significant amount of strain from the server without costing any additional money.

As I was doing some research, I came across some creative uses of the Coral CDN - and I have previously used lighttpd for high volume sites - so I put the two together. For those of you that don't know about Coral CDN, its a peer-to-peer content distribution network. To take advantage of the CDN its easily - simply append .nyud.net to the end of any dns name and that's it!  Since the site I was dealing with was fully dynamic, I did not have a lot of options that could be quickly implemented.

Once you get lighttpd setup, here are the example config bits to setup and perform the redirect:

# make sure this isn't CoralCache requesting content
$HTTP["useragent"] !~ "^CoralWebPrx" {
    # make sure that this wasn't sent back to us from CoralCache
    $HTTP["querystring"] !~ "(^|&)coral-no-serve$" {
        url.redirect = ( "^/.*" => "http://%1.nyud.net$0" )
    }
}

The above will redirect all requests that do not have the Coral CDN user agent. It's important to add this or else you'll get a redirect loop.  Also - make sure you enable the "rewrite" and "redirect" server modules. 

For those of you that are using apache, you can add rules similiar to:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx
RewriteRule ^(.*)$ http://yourdomain.com.nyud.net/$1 [R,L]

In the end, caching, static pages, and load balancing is your best bet. But if your in a bind, lighttpd and Coral CDN will do the trick!

Woot Random Crap!

Tuesday, December 22. 2009

Today, USPS brought me my 13.5lbs box of random crap. 

One never knows what to expect, the contents of the box were:

  • American Tourister Photo Bag - qty 3
  • NFL Pro Form Football Talking Electronic Handheld Game - qty 2
  • Spock Star Trek Quog Action Figure - qty 2
  • Captain Kirk Star Trek Quog Action Figure - qty 2
  • Victory Wax 16oz - qty 4
  • Fact or Crap Quiz Book - qty 2
  • Woot Brown Paper Bag - qty 16
  • Flying Aces Series Model - Mitsubishi A6M2 Zero - qty 1
  • Flying Aces Series Model - Spitfire Mk. Vb - qty 1
  • Flying Aces Series Model - Messerschmitt Me 109 F - qty 1
  • Flying Aces Series Model - P-47D Thunderbolt - qty 1
  • Flying Aces Series Model - Focke-Wulf Fw 190 A-5 - qty 1
  • Flying Aces Series Model - P-51D Mustang - qty 1

More pictures available here

BTW - smartpost still sucks.

Defined tags for this entry:

Wordpress Post Expirator Bugs/Feature Requests

Tuesday, October 13. 2009


I have created a SourceForge project to assist in tracking the number of features and bug reports that have came in via blog comments.  I did my best to populate things based on the current comments - however please add and update as necessary.  My goal is to find time in the next few weeks to start working on some of the current issues and additional feature requests.

SourceForge Project: https://sourceforge.net/projects/post-expirator/

Please post all new features and bugs on the SF project page instead of in blog comments!

Thanks everyone for all the feedback!

Wordpress Post Expirator 1.3.1 Released

Wednesday, April 8. 2009

The 1.3.1 release is now available and can be downloaded at the Wordpress Plugins Page.  This release fixes a problem which caused some installs to not delete posts at expiration time.  Enjoy!

WPMU Ldap Plugin 2.7 Released!

Sunday, February 22. 2009


Please check the new project site for detailed release information: http://wpmuldap.frozenpc.net

All future release and other information specific to the wpmu-ldap plugin will be posted on the new site.

Wordpress Post Expirator 1.3 Released

Sunday, January 4. 2009


This should be the last of the rapid releases for a while.  The 1.3 release addresses most if not all of the known issues and feature requests that were reported to me.  I also added a few new features.  The plugin can be downloaded at the Wordpress Plugins Page.  Enjoy!

Changelog:

  • Expiration date is now retained across all post status changes
  • Modified date/time format options for shortcode postexpirator tag
  • Added the ability to add text automatically to the post footer if expiration date is set

There are currently 3 valid attributes that can be used with the [postexpirator] shortcode:

  • dateformat - overrides the default date setting
  • timeformat - overrides the default time setting
  • type - full, date or time - defaults to full

For more information on the date/time format see the PHP Date Function.


The post footer text has 3 variables which can be used that will be replaced with the post expiration date/time.  The date and time format defaults will be used.  The options are:

  • EXPIRATIONFULL
  • EXPIRATIONDATE
  • EXPIRATIONTIME
As always, please report any problems!

Don't yell at your harddrive!

Sunday, January 4. 2009

This is kinda funny - but does make sense.  Check it out!


Wordpress Post Expirator 1.2 Released

Saturday, January 3. 2009

Changes in version 1.2:

  • Changed wording from "Expiration Date" to "Post Expirator" and moved the configuration options to the "Settings" tab.
  • Added shortcode tag [postexpirator] to display the post expiration date within the post
    • Added new setting for the default format
  • Fixed bug where expiration date was removed when a post was auto saved

It can be downloaded at the Wordpress Plugins Page.  Enjoy!

Wordpress Post Expirator 1.1 Released

Monday, December 29. 2008

This is a minor release which add's the ability to retain the expiration date after the post is reverted back to the draft status.

It can be downloaded at the Wordpress Plugins Page.

RSS Fusion 1.1 Released

Saturday, December 27. 2008

RSS Fusion now has full podcast enclosure support.  Please report any odd behaviors using the feedback form.  Enjoy!

RSS Fusion 1.0 Released

Wednesday, December 24. 2008


A few weekends ago I had the need to combine RSS feeds and was not satisfied with any of the solutions I found on the net.  A few hours later, I had a general proof of concept script working - which is now called RSS Fusion.  The site will fuse together multiple rss feeds and attempt to retain as much information as possible.  Currently it only works on RSS, and does not retain enclosures (podcasts) but I will look into adding that ability in the future.

Check it out: http://www.rssfusion.org

Merry Christmas!

Defined tags for this entry:

Wordpress 2.7 Released!

Thursday, December 11. 2008



Wordpress 2.7 Release Announcement

WPMU Ldap Plugin 2.6 Released!

Friday, August 1. 2008


In conjunction with the new WPMU release and release numbering, i'm proud to announce the release of the WPMU Ldap 2.6 plugin!  This release does require WPMU 2.6 due to the utilization of some new hooks.

Download it now!

Important Upgrade Notice! - If you are upgrading from the previous 1.3 versions that did not have support for local user creation, its important that after the upgrade you login as the local administrator, and with the "Fix Ldap Meta" option on the plugin configuration page.  This will populate the ldap_login meta value for all accounts (except the local admin) so that existing users are able to login.

Changes:

  • Removed ugly hacks for the retrieve password form utilizing a new filter in the trunk.
  • Freshened up the look of the admin pages
As always, continue to visit the SourceForge project page for details, and to report bugs or add feature requests!

Defined tags for this entry:

Wordpress Post Expirator Plugin Released

Friday, August 1. 2008

The Post Expirator plugin allows the user to set expiration dates for
both posts and pages. There is a configuration option page in the
plugins area that will allow you to separately control whether or not
posts/pages are either deleted or changed to draft status.

The plugin hooks into the wp-cron process and runs every hour.  It was designed and developed to work with Wordpress MU, however it will not work in the mu-plugins folder due to how the plugin activation is setup to register the cron hooks.

It can be downloaded from the Wordpress Plugin Directory - http://wordpress.org/extend/plugins/post-expirator/

Let me know if anyone encounters any issues and I hope you enjoy it!

WPMU Ldap Plugin 1.5.0 Released!

Sunday, July 6. 2008

After a few weeks of testing i'm proud to announce that the official release of the Wordpress MU Ldap Plugin for the 1.5 series has been released!  You can download it on the SF project page: Download Now!

The Wordpress 2.5 series code changes made quiet a few changes to the authentication and cookie setting bits of the wordpress core.  These changes made alot more sense, and actually allowed me to make the plugin more stable.

Here are a few of the major changes:

  • Remove override of wp_setcookie function - no longer needed!  This also means no more conflict with the admin ssl plugin!
  • Removed experimental wp_munge hooks - no longer needed!
  • Custom pluggable.php is no longer needed, and is totally remove from the release.
  • Revamps logic for local users - removed chunks of unnecessary code!
  • Enhanced error reporting sent back on authentication failures
  • Support for local users!  You can now create local users and use them as well!  Local users can be regular users or admins, it doesn't matter, they all work!
  • Using the new "Add User" screen, it's now possible to LDAP users to the blog that have never logged into WPMU.  As long as they exist in your LDAP directory, they can be added!

There are also 2 mailing lists setup:

  • wpmu-ldap-users - All SF tracker changes are posted to this list.  Please continue to post bugs and features to the SF Trackers.  On top of that, it can also be used for general discussion and hopefully more timely resolutions to problems.  Subscribe Here
  • wpmu-ldap-commits - This list is used to notify others of SVN commits.  It is setup as an announce only list.  Subscribe Here
I hope everyone enjoys the long awaited release!