Oracle Sharding

Linear Scalability, Fault Isolation and Geo-distribution for Web-Scale Applications

Oracle Sharding Architecture


 

Oracle Sharding Overview

Oracle Sharding is a scalability and availability feature for custom-designed OLTP applications that enables distribution and replication of data across a pool of Oracle databases that do not share hardware or software. The pool of databases is presented to the application as a single logical database. Applications elastically scale (data, transactions and users) to any level, on any platform, simply by adding additional databases (shards) to the pool. Scaling up to 1000 shards is supported in the first release with Oracle Database 12.2.0.1.
Oracle RAC and Data Guard meet the scalability and availability needs of over 99% of applications while preserving application transparency. Sharding is an architectural pattern popularized by Internet and online companies that need very high scalability and absolute availability. Sharding divides a database into a farm of independent databases and thereby avoiding the scalability or availability edge cases associated with a single database. Oracle Sharding trades-off transparency in return for massive linear scalability, greater availability, and geographical distribution.

Oracle Sharding provides superior run-time performance and simpler life-cycle management compared to home-grown deployments that use a similar approach to scalability. It also provides the advantages of an enterprise RDBMS, including:  relational schema, SQL, and other programmatic interfaces, support for complex data types, online schema changes, multi-core scalability, advanced security, compression, high-availability, ACID properties, consistent reads, developer agility with JSON, and much more.

Benefits of Oracle Sharding

Sharding with Oracle Database 12c Release 2 provides a number of benefits. These include:
  • Linear scalability with complete fault isolation. OLTP applications designed for Oracle sharding can elastically scale (data, transactions and users) to any level, on any platform, simply by deploying new shards on additional stand-alone servers. The unavailability or slowdown of a shard due to either an unplanned outage or planned maintenance affects only the users of that shard, it does not affect the availability or performance of the application for users of other shards. Each shard may run a different release of the Oracle Database as long as the application is backward compatible with the oldest running version – making it simple to maintain availability of an application while performing database maintenance.

  • Global data distribution for data proximity to bring data closer to the consumers and data sovereignty to meet data privacy regulations.

  • Simplicity via automation of many life-cycle management tasks including: automatic creation of shards and replication, system managed partitioning, single command deployment, and fine-grained rebalancing.

  • Superior run-time performance using intelligent, data-dependent routing.

All of the advantages of sharding  without sacrificing the capabilities of an enterprise RDBMS, including: relational schema, SQL, and other programmatic interfaces, complex data types, online schema changes, multi-core scalability, advanced security, compression, high-availability, ACID properties, consistent reads, developer agility with JSON, and much more.
 

OTN Cloud Promo RHS
  Analytics and Data Summit
  Oracle Live SQL