When you set up your e-commerce site, the last thing you think about is your site crashing. Instead, you probably ask “How should my site look?” “How much should I spend on advertising and SEO?” and “How can I get more customers?” Later, as your site gains traction, you might ask yourself about discounting, flash sales, and cross-channel marketing campaigns. You will pay more attention to conversion rates and abandoned carts, and how to ramp the former and lower the latter. You’ll start to look at seasonal trends and try to increase yields over time. In short, you’ll be completely market-focused and that’s exactly where you need to be.
And then you hit your first seasonal peak, probably during the holidays. That’s when you’ll face a powerful challenge to your e-commerce store: the ‘e’ part of e-commerce. Suddenly, it’s not just about growing customers and revenue and how high your e-commerce site is ranked by search engines. Now, you’re also wrestling with availability. You might ask, “Is my site slower when it’s busy?” or, if you’re expecting a huge surge of customers, “Will my site crash?”
In short, the more successful your site becomes, the more your traffic grows and the more the systems running your site are put to the test. Your e-commerce application is stressed, your catalog pages become harder to update and slower to load, your clients notice that ‘adding to cart’ takes time, and checkouts sometimes stall so long that customers finally give up and leave. The ugly truth is that even though your site might not be technically ‘crashed’, if it’s slow enough, your customers will leave anyway. Studies show that 57 percent of customers will abandon a cart if a page takes more than three seconds to load, and 80 percent of those will never return. Or worse, they’ll take to social media to let everyone know about it, affecting your brand and future revenue.
And that’s just the result of a site slow down; what about a site crash? When Amazon went down in 2013, the service disruption cost $66,240 per minute. You might say, “I’d love to have Amazon’s problems”, but a recent study by the Ponemon Institute found that the average cost of website downtime is $7,908 per minute. Ouch! Could this happen to your site?
What Makes an E-Commerce Site Crash?
E-commerce sites are only as good as the platform that supports them. Those hidden servers running your website ensure that your customer experience is snappy and accurate and that your inventory and order-management systems are always correct.
At the heart of your system platform is the store of knowledge about the site, the ‘database’. The database holds all your data — from your online catalog, customer list and inventory, to your customers’ carts and saved carts, to your pricing, discounts, and promotional materials. This data is the lifeblood of your e-Commerce business and it must be carefully managed. Accurate data is needed to ensure that customers don’t purchase items you don’t have in inventory – unless they know it’s backordered – and that appropriate discounts and pricing are being applied. The database must do its work reliably and precisely, whether data is being read or written, and that work can really build up during a huge sale, let alone a seasonal peak.
There are three main ways your database will slow down or crash:
- Under-provisioned: “My database was running on a server that wasn’t big enough to handle the load”.
- Server, power or network loss: “The server crashed”, “The datacenter went down”, “The system isn’t available”.
- Software bugs: “An error is being reported, we’re trying to figure out what it means.”
Under-provisioning: The natural tendency when using resources like a database is to utilize all of its capacity. Most computer systems need some extra capacity to allow for the natural variability in loads. This is especially true with database systems and even more true in e-commerce where a sale or the holidays can create a dramatic spike in demand. Generally, if you leave less than 50% of your capacity available, a crash can follow. When you are at the upper limit of capacity and keep pushing your database system, you will crash. Many companies stay with their existing capacity until they see warning signs that they should upgrade, but this is dangerous: things can fall apart very quickly as limits are approached – and there are many potential limits in a system, any one of which can take the system down.
Server loss: Sometimes servers become unavailable. It’s just how computers work – even hard drives are rated for MTBF – ‘Mean Time Between Failure’. The problem is you don’t always have any warning that a failure is about to occur. Not planning for server failure is like playing Russian Roulette: you can ‘win’ for a while, but eventually your ‘number will come-up’.
Software bugs: It’s not just hardware that can take a system down. Software bugs are notorious for causing system failures and some of the buggiest places are where different software systems meet each other. Things that are supposed to work together often don’t – especially in circumstances that aren’t tested all that often – like times of unusually high loads.
Ultimately, under-provisioning cannot be solved by a database solution that depends on a single server. Preventing outages from server loss obviously requires that the database be available from a server other than the one that failed. Unfortunately, one of the most popular databases in the e-commerce world – MySQL – was not designed to work across multiple systems. Sure, there are workarounds to offload a system that’s approaching its limits, but these workarounds get increasingly ‘creative’ involving special rules and other software – which is where bugs enter the picture. Workarounds usually require expensive people to anticipate and correct for the problems that inevitably occur.
ClustrixDB – Better by Design
There is a better way! ClustrixDB is a MySQL-compatible distributed database system that is architected from the ground up to spread the database across a group of commodity servers. ClustrixDB brings these servers together to form what’s called a cluster of nodes. ClustrixDB harnesses the combined power of all nodes in the cluster to provide high performance. Gone are the many workarounds needed to squeeze a little more performance out of a single MySQL server: ClustrixDB scales with each node added, without having to rework the application.
Better yet, unlike other databases, ClustrixDB takes advantage of increases – and decreases – in hardware by automatically rebalancing the data and workload while web site traffic is being processed. Because it’s so easy to add and remove nodes in a ClustrixDB database, you can easily accommodate peak season by adding the hosting capacity you need before you need it (‘flex up’) and removing it after the peak season is over (‘flex down’), saving you money.
On top of all this, ClustrixDB is fault-tolerant. The server can absorb the failure of any node in the cluster while the web site keeps on running.
The best time to plan for slowdowns and outages is before they become a problem. Clustrix would like to help you learn how you can avoid failures due to under-provisioning, system outages and bugs arising from complex software workarounds. Clustrix can help you save money to boot, with our unique ability to ‘flex up’ your hosting environment before a peak season and ‘flex down’ afterwards. It’s probably easier than you think to switch to a solution that is designed from the ground up to ensure your web site performs smoothly now and long into the future.