Shards of Oracle: Distributed performance improved in Oracle 12c Release 2

Database sharding appears in the newly available Oracle 12c Release 2. With it, the flagship database takes a big step toward better cloud performance.

SAN FRANCISCO -- Database sharding, newly available in Oracle 12c Release 2, is intended to improve Oracle's flagship...

database's performance in cloud architectures that benefit from horizontal database scaling.

Improving data scalability on the cloud is important for Oracle, as it seeks to navigate a landscape where more workloads are moving from on premises to the cloud -- and at lower price points.

The Oracle sharding takes a page from the playbooks of NoSQL databases, such as Cassandra, MongoDB and Amazon's DynamoDB. These and other databases use sharding to allow a database or many databases to be partitioned across many servers.

The technique is not limited to NoSQL; it has also been a mainstay of many PostgreSQL and MySQL implementations.

"Amazon has been doing it for years," said Andrew Mendelsohn, Oracle's executive vice president for database server technologies, in a discussion of Oracle's database roadmap here at Oracle OpenWorld 2016. He faulted Amazon implementations, however, as requiring too much manual intervention.

In many present sharding schemes, application code controls much of the activity. Mendlesohn said Oracle has pursued a native database-sharding architecture that relegates more of the control work to the database management system, freeing up development time.

He added that Oracle's initial implementation supports sharding across about 1,000 servers, but coverage is expected to expand.

Shards on the farm

Sharding found heavy use on the data farms of open source relational MySQL databases run by Facebook. It may be surprising, but this star among social media stars uses Oracle Database as well -- the focus being on some financial and operational applications, according to Sudhi Vijayakumar, database system architect at Facebook, who spoke at an OpenWorld session on Oracle sharding.

"We are looking forward to Oracle sharding," said Vijayakumar, who has been working with Oracle engineers in preparation for a proof-of-concept implementation of a data mart that produces near-immediate reports on operations.

He suggested Oracle sharding could enable this application to grow without requiring additional personnel to manage it -- a goal often held by traditional enterprises, but one not always associated with the poster children of cloud, like Facebook.

Oracle's innovation dilemma

Oracle sharding can be used with or without the company's Real Application Clusters (RACs). These clusters, which employ a shared-disk method that provides familiar relational consistency for data, have for several years been Oracle's primary means to scale out its database.

The costs associated with RAC-style approaches were deemed too expensive, in many cases, by software architects building ultra-large-scale cloud operations. Moreover, large portions of their jobs were able to get by with "eventual consistency." Such firms helped popularize the use of sharding at the same time they forged a slew of distributed data techniques.

Sharding represents a better architecture than RAC for massive scaling, according to Guy Harrison, an independent consultant and author based in Melbourne, Australia. RAC tends to rely more on scale-up than scale-out methods, he said, employing a shared-disk system that is separate from the database nodes.

"With sharding, each node has its own disks, probably directly attached in a commodity server," he said. "As you add more nodes, you add disk, CPU and memory all at once, and you can use cheaper commodity 'pizza box' servers."

There is less need for coordination between nodes, depending on the application, he said. The downside, he added, is cluster-wide queries may be less efficient and less consistent, and true ACID consistency across the cluster is not maintained.

Harrison has little doubt that the overall trend these days is toward cloud and away from on-premises implementations of applications and databases. Databases, he noted, tend to be the last thing to move into the cloud, and, typically, they follow their applications in this regard.

"In a lot of cases, when somebody is thinking about building something new, and looking at the choice between spending massive amounts of on-prem hardware versus getting that facility as a service in the cloud, it's really not a very hard decision," he said. "It's too expensive to build these massive infrastructures when you can just rent them in the cloud."

Harrison said he was impressed by Oracle's commitment to moving to the cloud. But, like others, he said he anticipates the economics of such a move could prove challenging.

"In a way, they are fighting their own on-prem revenue stream. It's difficult for them to move their users into the cloud without dropping a bit in revenue," he said. "So, it's a tricky thing for them."

Next Steps

Look behind Oracle's plan to buy NetSuite

Watch a video outlining OOW2016 developments

Find out about Oracle's NoSQL strategy

Dig Deeper on Oracle database design and architecture