TCO Comparison of Flash-Powered Cloud Architectures vs. Traditional Approaches

Recently, GridIron and Brocade announced a new joint Reference Architecture for large scale cloud-enabled clustered applications that delivers record performance and energy savings.  While the specific configuration that was validated by Demartek was for Clustered MySQL Applications, the architecture and the benefits apply equally to other cluster configurations such as Oracle RAC and Hadoop.  The announcement is available here: GridIron Systems and Brocade Set New 1 Million IOPS Standard for Cloud-based Application Performance and Demartek’s evaluation report is available online at: GridIron & Brocade 1 Million IOPS Performance Evalution Report.

Let us take a closer look at the Total Cost of Ownership (TCO) profile of the Reference Architecture vis-à-vis  alternatives.  For the OpEx component, we’ll just use power consumption as the main/only metric.

Requirements:

  • Total IOPS needed from the cluster = 1 Million Read IOPS and 500,000 Write IOPS
  • Total capacity of the aggregate database = 50 TB

Assumptions:

  • Cost of a server with the requisite amount of memory, network adapters, 4x HDDs RAIDed, etc. = $3,000
  • Number of Read/Write IOPS out of a server with internal/local disks = 500
  • Power consumption per average server = 500 Watts
  • It takes a watt to cool a watt; in other words if a server consumes 500 Watts, it takes another 500 Watts to cool that server
  • Cost of Power: USA commercial pricing average of $0.107/KWH
  • The cost of the many Ethernet switch ports vs. the few Fibre Channel switch ports is assumed to be equivalent and will be excluded from the calculations.

Option 1: Traditional Implementation Using Physical Servers

In this scenario, IOPS is more of a determining factor for the number of servers required rather than the capacity of the total database.

  • Number of servers (with spinning HDDs) required to hit 1 Million IOPS = 1,000
  • Assuming 40 servers per rack, total number of Racks = 1,000/40 = 25 Racks
  • Cost of the server infrastructure = 1,000 * 3,000 = $3,000,000
  • Power consumed by the serves = 500 * 1,000 = 500 kW
  • Power required for cooling = 500 kW
  • Total power consumption = 1000 kW
  • Annual OpEx based on power consumption = $0.107 * 1000 * 24 * 365 = $937,320
Option 2: Traditional Implementation Using Physical Servers AND PCIe Flash Cards in Each of the Servers
In this scenario, capacity of the total database (limited by the flash capacity of the PCIe flash cards) is more of a determining factor for the number of servers required rather than the IOPS from each server.
  • Capacity of each PCIe flash card = 300 GB
  • Two PCIe cards will be used to RAID/mirror per server
  • Number of servers required to get to 50TB total = 167
  • Assuming 40 servers per rack, total number of racks required = 5 Racks
  • Cost of the server infrastructure = 167 * 3,000 = $501,000
  • Cost of the PCIe flash cards ($17/GB) = 2 * 167 * 300 * 17 = $1,703,400
  • Total cost of server infrastructure including flash = $2,204,400
  • Power consumed by the servers = 500 * 167 = 83 kW
  • Power required for cooling = 83 kW
  • Total power consumption = 166 kW
  • Annual OpEx based on power consumption = $0.107 * 166 * 24 * 365 = $155,595

Option 3: Implementation Using GridIron-Brocade Reference Architecture

Two GridIron OneAppliance FlashCubes will be used for a mirrored HA configuration.  Each FlashCube has 50TB of Flash.

  • Number of servers required = 20
  • Rack Units of the two FlashCubes = 2 * 5 = 10 RU
  • Total number of Racks = 1 Rack
  • Cost of the server infrastructure = 20 * 3,000 = $60,000
  • Cost of the FlashCubes = 2 * 300,000 = $600,000
  • Total cost of the server infrastructure including flash = $660,000
  • Power consumption per FlashCube = 1,100W
  • Power consumed by the servers and FlashCube = 20 * 500 + 2 * 1,100 = 12.2 kW
  • Power required for cooling = 12.2 kW
  • Total power consumption = 24.4 kW
  • Annual OpEx based on power consumption = $0.107 * 24.4 * 24 * 365 = $22,871
Comparison Summary of Different Approaches
Traditional Traditional with PCIe Flash GridIron-Brocade Reference Architecture
Number of servers 1,000 167 20
Number of Racks 25 5 1
CapEx of Infrastructure $3,000,000 $2,204,000 $660,000
Power Consumption (kW) 1,000 166 24
OpEx* (just based on power) $937,320 $155,595 $22,871
*The difference in the management costs of 1,000 servers vs. 20 servers will be equally dramatic, but is not included in the calculations above.

Normalized Comparison of Different Approaches

By normalizing the values in the comparison table (where the values of the traditional approach is at 100% and the other values are relative to 100%), we get the following graph.  It is very clear from the graph that both the CapEx and OpEx are dramatically lower with the GridIron-Brocade Reference Architecture.

Normalized Comparison of Different Approaches to Building Large Clusters

Normalized Comparison of Different Approaches

Un-structured, structured and relational data – how big is big?

So now that we are definitely in love with big data…how big does it have to be before we really consider it big?

Well…it depends.

Something is really not that big if it’s just sitting there and you are not hauling it around.

See – when Mr. Neumann put down the seminal architecture for programmed computers - he definitely chose sides! The ‘program‘ was the quarterback – and data played a decidedly subservient role – always at the beck and call to be hauled and mauled as programs saw fit.

Programs ‘fetch’ data – at their leisure, at their chosen time.

Even the operating term sounds more fitting for your Corgi than someone or something more serious!

So we have been writing code that merrily ‘fetches’ data and processes it. Works for most programs. Except when data grows. And grows. And grows…

It grows until it starts to be a real problem to just ‘fetch’ it. And it becomes a real pain to move it around. How you have to think about -

  1. perhaps change roles and send the ‘program’ to data instead of the other way around
  2. how to be smart about moving ONLY the required amount of data

For a PC-XT with a whopping 10MB Hard drive big data was just 10MB. That was the entire drive! The little 8088 CPU running at 4.77MHz on a 8-bit bus could scream at 4.77 MB/sec and could finish scanning the disk (theoretically) in less than 2 seconds.

My desktop is running on an i7-2600 CPU with 4 hyperthreaded cores at 3.4 GHz. This beastie can scan my 2TB hard-drive at the rate of a little under 100GB/sec (again, theoretically) – taking 20 seconds to do the scan.

Let’s take a look at that workhorse of enterprise relational data cruncher – Oracle RAC. A state-of-the-art 4-node RAC system should be able to scan in data at the rate of 4 to 5 GB/sec from the storage – or in excess of 20 GB/second. At that rate – a database can load at the rate of 60+TB/hour. Throw in scheduling overhead, network latency, and error checks and you  are looking at 10 to 20 TB/hour. That’s a very impressive number – giving you head-spinning bragging rights in Oracle OpenWorld data warehouse tutorial sessions…

Now consider a 50TB data Warehouse; not too extreme by Oracle standards but now we are talking about 3 hours to JUST LOAD THE DATABASE.

We’re not just ‘fetching’ data anymore, are we?

50TB is “big data” for Oracle RAC, even more so for single-instance Oracle installations.

Even the ne-plus-ultra of NoSQL – Hadoop is not used in isolation. Typically a Hadoop processing stage is followed by HIVE or other structured databases – even MySQL.

So a big ‘unstructured’ data setup may as easily feed into a big ‘structured’ data analysis stage.  So how big do they typically get before the big data characteristics start to show (difficulty in fetching the entire data, sending program to stationary data, etc., etc.). Here is my take:

Hadoop – The top dogs may sneer at something below a petabyte – but in reality a 100TB Hadoop/NoSQL cluster is getting big. You can’t just deal with it casually and it demands attention in care and feeding.

MySQL cluster – A 100 node cluster in the size range of 100TB is certainly getting there.

Oracle including RAC - 50TB and up…especially DSS (Decision Support System) and Warehouses. Folks up in Amazon and Ebay run some very impressive big data warehouses in Oracle. Then there are installations at “those who shall not be named.”

Hadoop is loved because it’s (supposedly) an open ended framework when it comes to data size. Petabytes of data pouring in as concrete? No problem – just add more nodes as your data grows – no need to change your program – the same java code works. But remember the story of war elephants crossing Alps – just because Mr. H. Barca decided to do it does not mean that you should consider it easy. Tilting at a 1,000 node cluster with Hadoop is a day’s work for Google but not for a typical enterprise CIO.

We’ll explore challenges unique to big structured/relational data and big unstructured data in the coming posts…