• Contact Us
  • Support
  • Questions? Contact Us Today: 617.630.2800
  • Follow us on Twitter
  • Join our Facebook Group
  • Find us on LinkedIn
  • Subscribe to our RSS Feed
  • Search Site

  • Solutions
    • By Use Case
    • By Industry
    • By Delivery Model
  • Product
    • Product Architecture
    • Scale Out via Data Distribution
    • Scale Out via Read/Write Splitting
    • Admin & High Availability
    • Key Features / Benefits
    • Easing Capacity Planning
    • What is Database Sharding?
  • Resources
    • Datasheets
    • Case Studies
    • Whitepapers
    • Webinars
    • Videos
    • Scale Out Readiness Calculator
    • Database Assessment
    • Benchmark
    • Frequently Asked Questions
    • Documentation
  • Blogs
    • ScaleBase Blog
    • CTO Blog
  • Company
    • Customers
    • Management
    • News
      • Press Releases
      • Coverage
      • Events
    • Partners
    • Investors
    • Careers
    • Contact Us

You are here: ScaleBase / Performance

Archive for category: Performance

Top Two Signs your MySQL Database is Maxing Out

02 Apr 2013 / 0 Comments / in Blog, Database Scalability, Performance, ScaleBase/by Ron Truxton

MySQL Database Maxing OutOne of the main responsibilities of any database administrator is to keep a close eye on how database performance is impacting size and storage. Decisions will have to be made on whether or not to make changes within the database structure or application itself, or to make the changes on the storage and resource side instead.

Here are two key indicators that your MySQL Database is getting too large: Read More

How to Tune a MySQL Application Like a Piano

01 Apr 2013 / 0 Comments / in Blog, Database Scalability, Performance/by Ron Truxton

Tune a MySQL Application like a PianoA default installation of MySQL is easy to perform, but if you really want your databases to sing, you should tune them like you would tune a piano. In MySQL tuning pertains to either the application or the database system. In this post, we cover some common tuning techniques and best practices to increase your MySQL application performance. An upcoming post will discuss tuning the DB system via your my.cnf configuration file.

Optimize – If you are working with a MySQL database that has a table or tables that are constantly changing, disk space will be wasted and in need of optimization. This is where the OPTIMIZE Table command comes in handy. You should create automation around this command or run it periodically. In order to run this command on a table, perform the following query:

“OPTIMIZE TABLE <Database>.<Table>.”

Read More

Avoiding a Database Fumble on Sunday

31 Jan 2013 / 0 Comments / in Architecture, Blog, Database Scalability, Performance/by Paul Campaniello

Got a cool $4 Million sitting around? That’s what a 30-second  Super Bowl commercial costs this year, and advertisers are banking on huge ROI — major website traffic increases and big social engagement.

But are they ready?

Spikes in traffic (perhaps the biggest companies will see all year) require massive transactional processing power. Without it, advertisers inch closer to disaster with every user click — and while there’s never a good time for an outage, when there’s a $4m investment on the line, the pressure is on.

Here are a few strategies to help advertisers and social channels to avoid major fumbles:

  1. Get on the same page. Marketing teams build entire campaigns around Super Bowl advertisements, and IT departments and DBAs need to be in the know from day one. A website outage or slowed servers can kill months of work and throw millions down the drain.
  2. Expect more. More users. More content. At the end last year’s Super Bowl, there were 12,233 tweets sent per second — the highest number of tweets per second for an English-language event in Twitter’s history. With even more Twitter users this year, you can expect to see an even higher number.
  3. Know the consequences & if you’re in the line of fire. Take YouTube for example — there’s a whole group of people that skip the game all together, but watch the commercials on YouTube. Between uploading videos of the commercials, watching the videos, sharing, liking and commenting, YouTube needs to be  prepared for an onslaught of activity, regardless of ties to the actual event. Otherwise, they face lots of angry users and loss of confidence, bringing credibility into question.

Just like the Ravens and the 49ers, advertisers and social media networks have one shot to prove themselves this Sunday. With the proper infrastructure in place, these organizations can score big — but an unexpected outage send them to the locker room early.

ScaleBase & Codership Team Up to Deliver Ultimate Database & Application Performance

01 Oct 2012 / 0 Comments / in Architecture, Blog, Performance, ScaleBase/by Paul Campaniello

News flash: The first ever combined database scalability and replication solution just hit the market.

This isn’t brochure ware.  Our newly formed partnership with Codership means our customers have instant access to a single solution that solves two very real and urgent database concerns – all in the interest of achieving ultimate database performance.

In a nutshell, here are the highlights:

  • Simplify and automate the difficult and often manual process of moving and managing data.
  • Guarantee database continuity, and compliance with SLAs.
  • Ensure business-critical apps are up-and-running, 24/7.
  • Provide a unified view of all data, regardless of location.

But wait! There’s more!  Check out the official announcement here.

Calling all next gen app providers: Who’s got your back?

19 Sep 2012 / 0 Comments / in Architecture, Blog, Next Gen Apps, Performance, ScaleBase/by Paul Campaniello

Next gen app providers (and perhaps more specifically, database architects) are clamoring for database technologies that just work. At least, that’s the message we got from one of our newest customers: Mozilla.

Earlier this month, we caught up with Sheeri Cabral, database architect at Mozilla and and overall MySQL rock star, to get the down-and-dirty on why she and her team chose ScaleBase to back the company’s new App Store. Here’s some of what she had to say…

“With ScaleBase backing Mozilla Marketplace, we don’t have to worry about database capacity or availability. The day the marketplace launches, Mozilla’s infrastructure is set to seamlessly scale, ensuring the highest service levels.”

“I’m excited to put ScaleBase in front of many of our applications because high availability is critical to Mozilla’s success.”

Check out the full video here.

Enabling next-gen apps – with a database as nimble as a (Fire)Fox

26 Jul 2012 / 0 Comments / in Architecture, Blog, Company News, News, Next Gen Apps, Performance, ScaleBase/by Paul Campaniello

Just like every closer needs a setup guy, every next-gen application provider needs a partner that can facilitate performance

We see thousands of new online and mobile apps launching every day.  Cool stuff – but what happens when demand climbs and databases can’t keep up?

Facebook Blames Outage On Database Failure

RBS Bank joins the IT failures ‘Hall of Shame’

In other words, headlines we’d all like to avoid.

The long-term success (and reputation) of any online app or store hangs on a company’s ability to provide uninterrupted access and availability.  Translation: Database performance and scalability.

That’s why smart companies, like Mozilla, are thinking about database performance first.

Mozilla’s using ScaleBase’s Data Traffic Manager to maximize availability and scalability of databases worldwide in advance of launching its much-anticipated online app store: Mozilla Marketplace. The new marketplace will give app developers a cost-effective, high-performance platform for creating and delivering applications, and consumers a one-stop-shop for downloading mobile apps.  Once the store launches, ScaleBase’s unique ability to distribute data to multiple datacenters across distributed geographies – all while centralizing the management of it – will be used to move relevant data to datacenters close to each customer’s location.  A database scalability strategy only the most innovative companies are adopting.

Additionally, with ScaleBase difference, you’ll never know when there’s an outage because the data is distributed across multiple locations.

Every next-gen app and app-store provider should have the same goal: Deliver the best possible service to customers – with around-the-clock access.  And for our friends at Mozilla, perhaps a news story that looks something like this: “Always-Available Online App Store First Choice for Buyers and Developers.”

Headache Relief for the Database

06 Jun 2012 / 0 Comments / in Architecture, Blog, Company News, News, Performance, ScaleBase/by Paul Campaniello

If you polled small to midsize tech teams on their biggest database headaches, cost would be at the top of the list — without question. If you haven’t already run into this, the number one reason (and complaint we hear all the time) is hardware.

Hardware is pricey. And time consuming to implement, plus there’s a learning curve — all of which create problems for most of the companies we come across where the primary concern is instant database scalability to meet user demands.

Echoing this, Boris Livshitz, Sever Data Lead at AppDynamics, a ScaleBase customer, explained what drove the company to seek out a new database scalability solution to SearchDataManagement.com:

From the [AppDynamics] founder all the way down, everyone had been asking for an architecture that can scale, and our customers had been asking for an architecture that would scale because they would see performance problems. They want to instantly scale and they want to make sure that we can instantly scale along with them.

And what was the hold up with most of the solutions they tested?

It’s the hardware that really makes it expensive, and you can’t really negotiate that stuff.

So where did AppDynamics turn?

AppDynamics first began looking into database sharding technologies about a year and a half ago, when it became evident that the company needed to scale its MySQL implementation with the needs of its customers — and that continuing to throw hardware at the problem would eventually become prohibitively expensive.

For some companies, throwing new, expensive hardware at the database to increase performance is fine — but for others, like AppDynamics, and web 2.0 entrepreneurs looking to get their venture off the ground, it just isn’t a viable or strategic option.

We’re watching the database industry evolve faster than ever and there are sky high expectations from users for immediate access to applications.

Here’s what we offer: No hardware installation. No changes to existing infrastructure. Instant scalability and the ability to adapt to dynamic business environments.

Scaling or Failing? Keys to Riding the Momentum of the Cloud

09 May 2012 / 0 Comments / in Architecture, Blog, Company News, Database Scalability, News, Performance, ScaleBase/by Paul Campaniello

The good and the bad news: The database landscape is evolving quicker than ever thanks to the ubiquity of cloud solutions and increasing expectations for real-time access to applications and information from anywhere.

The really good news: You don’t have to rework your entire database infrastructure to take advantage of the momentum.

By definition, tools exist and are designed to fix, solve and eliminate problems – regardless of the industry. But, when it comes to scaling a database, companies face many of the same questions/concerns. Do I need to change my infrastructure? How steep is the learning curve? What kind of application adjustments will I need to make?  And most importantly what is this going to cost?

Neovise, an independent research and analysis firm, tackled these issues head on in its recent whitepaper, “Database performance, scale, and management issues can have a substantial effect on overall business performance and market position.” Here are a couple key takeaways:

  • Businesses Can’t Keep Up: Spending on infrastructure to keep pace with demand isn’t sustainable – leading to poor ROI, inconsistent business performance, opportunity loss and delays in service fulfillment.  Traditional methods of scaling demand expensive infrastructure changes like new servers, new networking and storage devices yet they still hit bottleneck issues as companies grow.
  • Database Flexibility and Elasticity is a Must: Every business is different and you never know when the next spike will come (or worse – when a database will fail).  Technology needs to be able to respond and or adapt rapidly to unique business requirements and extend current capabilities.  Near-perfect application and data availability is the industry standard and the threshold for downtime is impossibly thin – and often results in customer loss.

For more details on the database scalability landscape, please check out the complete Neovise whitepaper: http://www.scalebase.com/resources/white-papers/

MySQL Query Engine Scalability Issues

20 Jun 2011 / 0 Comments / in Architecture, Blog, Database Scalability, Performance, ScaleBase/by Paul Campaniello

I recently came across a good blog post from Venu Anuganti. It’s not new, but it’s still very relevant, and can shed some light on the issues I raised in my last post concerning TPCC performance results.

Just a quick reminder – MySQL is indeed a great relational database server and one that is used practically everywhere these days (check out the Alexa top 1000 list – it’s the most dominant database by far). However, when data and concurrent sessions need scale, MySQL might have a hard time keeping up. Throwing hardware at the problem will help, but eventually the database server itself becomes the bottleneck. The reason for this lies in the number of things the database needs to do for each user operation. For each query, for instance, the database needs to parse, optimize, find an execution plan, execute it, and manage transaction logs, transaction isolation, and row level locks.

So why doesn’t scaling up help? Because in some cases, adding memory and process constructs (buffers for example) above a certain point will result in a negative impact on performance. And that’s what Venu’s blog is all about.

So let’s dig into three very important memory constructs: table cache, read buffer, and sort buffer. These should grow as database data and concurrent sessions grow. However, beyond a certain value (which is not so high), you’ll suffer from a major decrease in performance.

Let’s take the sort_buffer_size parameter. It controls the size of the sort buffer allocated per user. It defaults to a very low value of 2M. If we scale-up to a machine with tons of free RAM, we might be tempted to increase this size to 64M or even 128M. However, this action will cause a major performance decrease, making performance up to six or even ten times slower. And the more concurrent sessions, the greater the performance penalty! Read Venu’s post for a more technical explanation, and this great post for tips on sort_buffer_size preferred sizes.

What can we learn from this example? That you can’t solve all your problems by throwing memory at them. The only solution you can count on for scaling your database is scale out. Have multiple MySQL instances serve the same load, and build your solution so you can add more machines when the load increases. The best way to do this is to have those databases independent of one another – a technique called sharding.

So if this is what you need, give ScaleBase a try, since we can give you sharding without needing you to do any of the heavy lifting.

 

Running TPC-C on MySQL/RDS

15 Jun 2011 / 2 Comments / in Architecture, Blog, Performance, ScaleBase/by Paul Campaniello

I recently came across the results of a TPC-C benchmark on MySQL based RDS databases. You can see the paper here. I think the results may throw light on many questions concerning MySQL scalability in general and RDS scalability in particular.

TPC-C

TPC-C is a standard database benchmark, used to measure database performance. Database vendors invest big bucks in running this test and showing off which database is faster, and can scale better.

It is a write intensive test, so it doesn’t necessarily reflect the behavior of the database in your application. But it does give some very important insights into what you can expect from your database under heavy load.

The Benchmark Process

First of all, I have some comments on the benchmark method itself.

  1. Generally, the benchmarking was  orderly and methodical – which increases the credibility of the results.
  2. The benchmark generator client was tpcc-mysql which is an open-source implementation provided by Percona. It’s a good implementation, although I think DBT-2, provided by Apache, is more widely used.
  3. Missing are the mix weights of the different TPC-C transactions in the benchmark.  The TPC-C benchmark contains six types of transactions (“new order”, “delivery”, “stock query”, etc.) and the mix weights are important.
  4. The benchmark focused on throughput, not latency. I think that although TPC-C is mostly about throughput (transactions per minute) it’s recommended to address the latency (“avg response time” for example) as well.
  5. TPC-C “number of warehouses” determines the size of the database being tested. The number of warehouses ranged between one and 32 in this benchmark. In MBs we’re talking 100MB-3GB. That’s usually a small database, and I would be interested in seeing how the benchmark ranks with 1000 warehouses (around 100 GB) or even more.
  6. The entire range of RDS instance types was examined, from small to quadruple Extra Large (4XL). Some very interesting results appeared, which will be the focus of this blog post.

Results Analysis

The benchmark results are surprising.

  1. With hardly any dependency on the database size, MySQL reaches its optimal throughput at around 64 concurrent users. Anything above that causes throughput degradation.
  2. Throughput is improving as machines get stronger. However, there is a sweet-spot, a point where adding hardware doesn’t help performance. The sweet spot is around the XL machine, which reaches a throughput of around 7000 tpm. 2XL and 4XL machines don’t improve this limit.

It would seem that the Scale-Up scalability approach is rather limited, and bounded. And unfortunately, it has some rather close bounds.

So, what’s the bottleneck?

  • CPU is an unlikely candidate, as CPU power doubles on 2XL and quadruples on 4XL machines.
  • I/O is also an unlikely candidate, since machine memory (RAM) doubles on 2XL and quadruples on 4XL machines. More RAM means more database cache buffers, thus reduced I/O.
  • Concurrency? Number of concurrent users? Well, we saw that optimal throughput is achieved with around 64 concurrent sessions on the database. See figure 4b in the benchmark report. With one user, the throughput is 1,000 transactions per user, but with 256 users, it drops to one transaction per user!

Results Explanation

It is definitely weird that when more parallel users are added, we get performance degradation – a lower throughput than the one we have with fewer parallel users.

Well, the bottleneck is the database server itself. A database is a complex, sophisticated machine, with tons of tasks to perform in each and every millisecond it runs. For each query, the database needs to parse, optimize, find an execution plan, execute it, and manage transaction logs, transaction isolation and row level locks.

Consider the following example. A simple update command needs an execution plan to get the qualifying rows to update and then, reading those rows, it must lock each and every row. If the command updates 10k rows – this can take a while. Then, each update is executed on the tables, on each of the relevant indexes of that table, and also written to the transaction log file. And that’s for just a simple update.

Or another example – a complex query that takes a long time to run. Even one second is a lot of time in a highly loaded database. During its run, rows from source table(s) of that query are updated (or added, or deleted). The database must maintain “Isolation level” (see our isolation level blog), meaning that the user’s result must be a snapshot of the query as it was when the query started. New values in a row that was updated after the query began, even if committed, should not be part of the result. Rather, the database should go and find the “old snapshot” of the row, meaning the way the row looked at the beginning of the query. InnoDB stores information about old versions of rows in its tablespace. This information is stored in a data structure called a rollback segment. And if we go back to the previous example – here’s another task the database has to do – update the rollback segment.

We must remember that every command issued to the database actually generates dozens of recursive commands inside the database engine. With increasing sessions or user concurrency, the load inside the database engine increases exponentially. The database is a great machine, but it has its limits.

So What Do We Do?

So, we understand the database is crowded, and has hardware sweet-spots, which complicates the Scale Up solution – which is expensive, and doesn’t give the required performance edge. Even specialized databases have their limits and while the sweet-spot changes every database has one.

There are a lot of possible solutions to this problem – adding a caching layer is a must, to decrease the number of database hits, and any other action that can reduce the number of hits on the database (like NoSQL solutions) is welcome.

But the actual database solution is scale-out. Instead of one database engine, we’ll have several, say ten. Instead of 128 concurrent users or even 256 concurrent users (that, according to the TPC-C benchmark, bring the worst results), we’ll have ten databases with 26 users on each, and each database can reach 64 users (up to 640 concurrent users). And of course, if needed, we can add more databases to handle the increased scale.

It will be interesting to see how Scale Out solutions for databases handle TPC-C. For disclosure, we at ScaleBase are currently running a TPC-C benchmark and will publish our results shortly.

WHAT’S NEXT?

  • Download the ScaleBase Database Load Balancer for a free trial.
  • Read our white paper, and learn about the ScaleBase Database Load Balancer solution.
  • Check out our other posts for more technical info.
Page 1 of 212

Subscribe to Blog


 

Tweet
database assessment
Popular
  • MemoryImageSeptember 6, 2011, 10:33 am
  • Backing Up MySQL With ScaleBaseSeptember 12, 2011, 8:34 am
  • Running TPC-C on MySQL/RDSJune 15, 2011, 8:45 pm
  • Can Prepared Statements Improve Your Scalability?May 23, 2011, 5:57 pm
Recent
  • Optimizing Sharding Policies to Scale Out MySQL – Part...June 13, 2013, 4:20 pm
  • TechTalk Webinar: Optimizing MySQL Shards – From Vision...June 5, 2013, 2:07 pm
  • ScaleBase Survey Finds That 59% of MySQL Users Have a Scalability...June 4, 2013, 7:27 am
  • ScaleBase presents a webinar on how to scale out MySQL on...May 29, 2013, 3:18 pm
Comments
  • [...] business model, and a strong executive. Scalebase,...February 4, 1:49 am by The Investing Edge of Enterprise IT
  • [...] Recently some customers running on Amazon EC2 asked...December 28, 3:27 pm by High Availability for your ScaleBase instance | MySQL | Syngu
  • [...] ScaleBase Releases Database TPC-C Performance Results...December 12, 2:29 pm by ScaleBase achieves 180K NO-TPM TPCC results on... | MySQL | Syngu
  • Hi Milo - I totally agree. You need to understand how you're...September 6, 10:33 am by liran
Tags
Amazon RDS application re-write Big Data Funding cloud sharding Database Availability database capacity database cloud database scalability database scalability strategy database sharding database virtualization data distribution data traffic manager Elastic Load Balancing Hadoop high availability Industry News MySQL MySQL 5.6 MySQL Clustering MySQL Scalability MySQL Scalability Issues MySQL scale out MySQL Sharding MySQL Tuning NewSQL next gen apps NOSQL scalability of databases Sharding single point of failure thread pool

Recent Comments

  • The Investing Edge of Enterprise IT on Management
  • High Availability for your ScaleBase instance | MySQL | Syngu on High Availability for your ScaleBase instance

Solutions

  • Solutions
    • Centralized Database Management & Visibility
    • Scalability
    • Database Availability
    • Delivery Models
    • Industry Solutions

Products

  • Product Overview
    • Product Architecture
    • Scale Out via Data Distribution
    • Scale Out via Read/Write Splitting
    • Data Traffic Management
    • Availability
    • Key Features / Benefits
    • Easing Capacity Planning
    • Database Sharding

Resources

  • Datasheets
  • Case Studies
  • Whitepapers
  • Webinars
  • Videos
  • Scale Out Readiness Calculator
  • Benchmark
  • Frequently Asked Questions
  • Documentation
  • Database Assessment

Company

  • Company
    • Customers
    • Management
    • News
    • Partners
    • Investors
    • Careers
© 2012 Scalebase Inc.

  • |Home
  • |Sitemap
  • |Privacy Policy
  • |Contact Us
  • |Blog