Achieving Extreme Scalability, Availability, Tenancy, and Sovereignty with Sharding

By Sean Scott

Elevator Pitch

There are misconceptions that sharding is only for big databases but it addresses availability, fault isolation, data tenancy, latency, migration, and even performance concerns. It’s an important skill to learn as databases become more global and a growing part of Oracle’s MAA roadmap.

Description

Oracle Sharding is a technology for managing multiple, geographically dispersed databases in a shared-nothing architecture. Sharding is often associated with large, complex databases but that need not be the case. Based on Oracle Partitioning technology, sharding is a component of Oracle’s Maximum Availability Architecture and boasts a rapidly growing user base. Its adoption is a result of the many database challenges it solves, including extreme availability, fault isolation, data tenancy, application response and latency, hybrid cloud deployment, migration, and data sovereignty. In this presentation learn how Oracle’s sharding technology works, its limits, implementation planning, and use cases, as well as the features and enhancements introduced in Oracle 20c that make sharding an easier and more compelling solution.

Session attendees will:

  • Develop an understanding of Oracle Sharding and its place in within Oracle’s MAA roadmap

  • Recognize use cases for Oracle Sharding and how they apply in different environments

  • Discover the limitations of the features and technology

  • Explore new features in Oracle 20c that make sharding easier and more accessible

  • Learn how to install and experiment with a sharded database

Notes

This presentation grew out of a desire to understand more about Oracle’s sharding solution. There’s general misconception in the community that sharding is limited to databases at scale. In reality, sharding solves problems encountered in “regular” enterprises too, including performance, availability and data tenancy.

The install base for Oracle Sharding is limited and information on the technology is sparse. Sharding in Oracle 19c and earlier really only worked in specific use cases where the schema and application tiers met narrow conditions. Enhancements in Oracle 20c eliminate those roadblocks and make sharding more universally accessible.

Since there isn’t (currently) much documentation on SDB, I developed a container solution to build a three-node sharded database and director that allows database administrators and developers to get hands on with a sharded database without having to worry about the background complexity. I’ve been working and “playing” with SDB for a couple of years now and my presentation approaches the topic from the viewpoint of the audience—curiosity (and perhaps doubt) about the technology and a desire to be able to explore its boundaries and evaluate whether it can help solve the unique problems we all face.

This session has been accepted by at least two conferences (both occurring before Riga Dev Days) including Collaborate ‘20 and is pending for a few others. I’ve done it as an in-house webinar and a workshop, and I’m currently preparing an article for the quarterly IOUG newsletter on Sharding. I can do this presentation as a regular lecture or a longer deep-dive session. If done as a workshop I need attendees to run through some preparatory steps that include downloading Oracle software and some building a Docker image and will provide all the necessary steps and documentation to get them up and running.