Recommended: Flash Accelerating Oracle RAC in 16RU & VMware Power Savings with Local Flash

Fusion-io, Dell, and Mellanox have built a very small footprint (16RU), extremely fast, and price-sensitive reference architecture for Oracle RAC 12c. It is very impressive on a number of counts.  It further highlights the move to using local flash storage over remote flash storage arrays.  This solution aims at reducing hardware sprawl and power consumption by achieving higher performance in a smaller footprint.  From the description – “This reference architecture features four Fusion ION Accelerators and four Oracle RAC database nodes all connected through redundant Mellanox SX6036 switches. Each ION Accelerator in this reference architecture uses a Dell PowerEdge R720 with three 56 Gbps Mellanox ConnectX-3 InfiniBand cards and four industry-leading Fusion ioDrive2 2.4TB flash storage devices for a total of 9.6TB of all flash storage. Each of these ION Accelerator units fits in 2 rack units (2RU) and delivers well over 645,000 8K database IOPS and up to 12 GB/s sustained throughput. Data redundancy is maintained across pairs of ION Accelerators using synchronous writes, thus providing system and data high availability.  The Oracle RAC nodes consist of Dell PowerEdge R620 servers. Each two-socket server consumes a mere 1U of rack space and yet is capable of pulling 1.4 million 8K IOPS from the ION Accelerator storage layer as measured by the Flexible IO Tester utility.  The Oracle RAC nodes are connected to the ION Accelerators through redundant Mellanox switches. Each Oracle RAC node sees the ION Accelerator storage as simple multipath block storage. The multipath devices are aggregated by Oracle ASM to create a large and powerful diskgroup.  Expanding the size and performance of the database is as easy as adding more ION Accelerator devices to the ASM disk group.”  The links to the article and the Reference Architecture follow.

FIO_OracleRAC_1

FIO_OracleRAC_2

Increasingly, software vendors  see the virtue of putting their flash storage locally on the server.  For example, VMware engineers wrote recently that by replacing array shared storage with PCIe flash card storage on the servers they could substantially reduce power consumption and maintain high levels of performance.

VMware_Power_01

 

 

Fusion IO Flash Storage Accelerates In-Memory SQL Server 2014 Database up to 4x

Fusion IO has jumped on-board the Microsoft SQL Server 2014 in-memory features and has claimed up to 4x improvements in transaction per second and substantial reduction in data latencies.  A nice little Fusion IO video that introduces SQL Server 2014:

Fusion ioMemory integrates into the SQL Server 2014 database engine buffer pool to improve IO throughput. The lower price points of the PCIe flash card products will no doubt put pressure on flash arrays.

fio100

Fusion IO has written a nice white paper detailing how their cards accelerate SQL Server 2014 by leveraging the new In-Memory features. Using their ioDrive2 Duo cards they substantially accelerated the performance, latency of transactions.

fio101The performance brief shows an increase of 4.4 x more transaction with the ioDrive2 Duo 2.4TB versus an enterprise class disk array. It also shows that it delivers better latency – serving customers up to 73% faster and delivers 3.3x faster database startup times.

fio102

Here is a SQL Server 2014 In-Memory OLTP Overview :

 

Improving Performance on Solaris, Linux and SmartOS

For many commercial companies the center of the Solaris world is at Oracle. However, for many of us that have lived and breathed Solaris, that center has shifted quite a while back to Joyent.  Oracle’s high licensing costs around a Solaris x86 license makes it uninteresting to many. Meanwhile, Joyent offers an open-source version of Solaris that actually offers a number of significant improvements. Joyent’s SmartOS has become one the most innovative operating systems available on the scene today.  A derivative of OpenSolaris – it has vastly improved on it, creating an excellent cloud-centric operating system with a wealth of features.  Improved are all the compelling Solaris technologies – zones, ZFS, dtrace, SMF, etc – but more important is how they have added new technologies (KVM) and offered a wealth of new features. One of the big wins with SmartOS is improved performance.  If you are interested you can find more information on SmartOS here :

smartos99

One of the areas where Solaris and SmartOS excel is dtrace – a framework that allows  observation of the running operating system and it’s applications and processes at a very deep level. On more than one occasion I was able to observe the details of applications running in production by using dtrace.  It is typical to see huge performance wins by using dtrace to diagnose performance issues or simply examine running applications.  Twenty examples of performance wins – with the bulk coming from use of dtrace :

bgregg01

bgregg02

Brendan Gregg is a performance guru and he is really well worth listening to. One of the more interesting articles he has written compared Solaris Zones, KVM and Xen and looked at in detail at them.

bgregg03

He recently presented SCaLE 12x and his presentation is, as usual, informative. Discussing what Linux can learn from Solaris-based systems and vice-versa when it comes to performance.
Brendan Gregg has written a number of books on the topic of performance.  He co-authored a book on DTrace :

bgreggdtraceand also authored a comprehensive book on performance :

bgreggdtrace02

 

Recommended Reading: Exadata X3 – Measuring Smart Scan Efficiency With AWR

Ran across this on twitter. If you are interested in getting datapoints on Oracle Exadata there are some nice new data points from Trivadis that are certainly worth reading.  Keeping in mind that this is Exadata X3 (1/8 rack = 2 servers) and that Exadata X4 is now available. The report is in PDF format.

trivadis01

 

 

Data Points : Delphix & Pure Storage Database Benchmark Shows 10x Price/Performance Gain

Delphix is teaming with Pure Storage to provide virtualized databases on flash storage.  What I found interesting was that they announced they had benchmarked the performance of an all-flash solution comparing  running databases on ordinary spinning  disks to the flash solution.  The test simulation workloads from a leading e-commerce company where the company makes 25-30 copies of its product databases for development and test.  Using traditional disks consumes 1 TB per copy and completes 35,000 transactions per minute.  Each copy requires a full duplicate. As a result,  supporting 26 copies requires 26 TBs of storage and to achieve 910,000 TPM (26 x 35k). The cost for this was about $2 million. Using Delphix Pure Storage solution created and supported the same 26 copies but was able to leverage in-line de-depulication to use only 1.5 TB total, each copy had full data at 1 million transactions per minute.  The cost of this solution was 1/10 the cost of the the disk solution. This great example of where de-duplication really makes a difference.

delphix

 
 


gotostorageGo to more posts on storage and flash storage at http://digitalcld.com/cld/category/storage.


 
 

Ruby, JRuby, the Stack and Performance

Lately, I’ve spent time looking Ruby and jRuby. I ran in to a presentation by Joe Kutner on JRuby and the JRuby stack.  Here are slides :

 and here is the video of Joe Kutner talking about a JRuby stack :
I
I found it interesting and led me to look at TorqueBox. This was the real take-away from this talk for me. I’ve also been looking at a number of posts comparing performance on Ruby and JRuby.  The first one that I found interesting related a comparison between CRuby and JRuby – where JRuby out-performed it substantially. In the post – the author explains why :

jruby_cruby

Another interesting comparison :

jrubyrails

 

 

Flash Memory Summit 2013 Presentations (PDF)

If you didn’t go to this year’s Flash Memory Summit wouldn’t it be nice to see what people were talking about ?  There is a wealth of presentations that are available :

flashsummit

There is simply too many interesting things to go through in the proceedings.  One item that caught my eye was the leader in flash storage PCIe cards, Fusion IO open source projects around flash, Creating Flash-Aware Applications.  Another one that looked highly interesting is how Facebook uses flash, Flash at Facebook provides the dimensions and scale of flash use at Facebook.  Another point of interest, Flash in the Cloud : A Gentle Introduction is worth looking at.

 
 


gotostorageGo to more posts on storage and flash storage blogs at http://digitalcld.com/cld/category/storage.


 

Cloud Storage : In Search of the The Next Generation Cloud Storage Platform

Today’s post is the second one on Cloud Storage. Today we look at SolidFire. We examine some of things SolidFire has built into their platform.  A year ago, there were only a few flash storage vendors – today it is a crowded field – and last year’s leaders are only running on last years success and marketing momentum.  A new group of flash storage companies have emerged with as much emphasis on software and storage features as on hardware.  Everyone has IOPs this year – but not everyone has key storage features like QoS, dedup, etc.

In high multi-tenant environments such as a cloud or a highly virtualized architectures – resource management is an extremely important feature.  Not just of CPU, network bandwidth and memory – but also IOPs.  There is a lot of learning going on with regards to virtualization and what it can teach us about the next generation of cloud deployments. SolidFire has an interesting read :

solidfire1

There are two interesting meta-cloud projects aimed at cloud infrastructures. For those unaware of these projects, their scope is stunning.  OpenStack is a project aimed at providing infrastructure as a service (IaaS).  There is an OpenStack Foundation that manages the project.  There are over 200 companies that are part of this project. With the OpenStack project are number of inter-related sub-projects aimed at controlling :

It should be noted that a cornerstone of the project is that OpenStack’s APIs be compatibility with Amazon’s EC2 and Amazon’s S3.

As if that wasn’t interesting enough, there is another Cloud IaaS project – CloudStack which  provides many of the same features and has been around long enough to have significant adoption.

You can see what SolidFire is doing with the Citrix’s CloudPlatform (which is based on CloudStack) and provides in this reference architecture document.

SolidFire2

OpenStack has a lot of backers and the adoption rate is quite high. With IBM’s endorsement of OpenStack it has given the project a big boost.  Enterprise flash array vendors are providing reference architectures that show how OpenStack plays with their flash storage arrays.  Today we will focus on one such company, SolidFire, which has done a lot of work to make sure that their storage products work with OpenStack and CloudStack, let alone VMware.  Both open source stacks have large followings – but for today we are looking at what SolidFire is up to.  For example, with regards to OpenStack, they have spent considerable energy providing reference architecture documents :

They have provided a short OpenStack 101 video :

solidfire10

One thing one notices is that SolidFire provides a Quality-of-Service (QoS) architecture.  Any one that has worked in virtualized environments recognizes immediately the need for resource controls on the tenants.  IO is a natural place to have such a control.   Some vendors pretend that this feature is unnecessary, but the opposite is true.  In a cloud or a highly virtualized environments with high multi-tenancy making demands on IO subsystems it makes perfectly good sense to have QoS.  SolidFire provides a an elegant solution that limits ‘noisy neighbors’ (tenants making extremely high demands on the IO subsystem and effecting performance of other tenants).  One extremely important point is that SolidFire’s storage system was not only architected with QoS in mind, but each SolidFire node is a self-contained node but when combined with other nodes functions cluster – exactly what you would expect for cloud storage.

It does, however, get even better. SolidFire’s ElementOS delivers features that other storage vendors lack. One is deduplication.  In virtualized environment this is basically one of those features that is pretty important. Often it can reduce disk use from 25% to 40%.  Some vendors don’t provide dedup and there is an enormous use of redundant files which wastes significant portions of available storage. Also delivered is thin-provisioning and real-time compression.

One recent cloud-oriented move, OnApp is working together with SolidFire to allow finely tuned billing of IOPs.  Using OnApp’s control panel it can specify minimum, maximum and burst IOPs.

solidfire11

One notices that unlike a number of  vendors that like to point to their high peak IOPs numbers – SolidFire’s aim is quite a bit more sophisticated and centered around what is increasingly the future – cloud deployments.  Deliver QoS resource controls for Cloud flash storage (which many vendors lack), deliver high performance flash storage, provide compression, snapshots/cloning, dedup, thin-provisioning and provide hardware that aggregates into useful storage clusters. In the end, unlike some vendors that deliver terabytes of isolated islands of arrays, SolidFire delivers petabytes of cloud-optimized and resource-managed clusters, and that is what the next generation of cloud storage should look like.

 
 


gotostorageGo to more posts on storage and flash storage blogs at http://digitalcld.com/cld/category/storage.


 

Java, Garbage Collection and Performance

Java is one of the most pervasive enterprise programming languages available.  At the heart of the Java VM is garbage collection (GC).  There are a number of GC algorithms and knowing how they work can make a world of difference in your performance.  There are plenty of books on Java performance and garbage collection.  The latest comes from a former colleague – Charlie Hunt.  In the book, there is a discussion about the JVM – runtime scheduling, memory utilization, network I/O, disk I/O, garbage collection, adaptive tuning and number of other key aspects of the JVM.  If performance is something you are interested in – run don’t walk and pick this up.

book1

I had the happy experience of watching Charlie Hunt dissect performance issues on a number of occasions both in live and in more academic settings (his performance talks at Java One) and this book encapsulates a lot of the information from those experiences.  If you haven’t spent time looking at Java Garbage Collection – it is worth reading about it. A recent blog talking about the new G1 collector gives you insight into the latest GC algorithm in Java 7.

Scaling PHP to 30,000 users per Server

There is a nice article on increasing scalability of PHP on AWS  web servers – although one might consider these scalability features generally. Surprisingly the suggestions allow scaling up to 30,000 concurrent users per server. You can find the suggestions here.