See What we are Talking About!
Takeaway #3 from Oracle OpenWorld 2016 - Database Sharding
Steve Woody, CommitDBA President
December 7, 2016
Oracle OpenWorld 2016 (OOW16) was held in San Francisco from September 18th through the 22nd with a reported 50K+ attendees. The conference featured more than 2,500 sessions and 3,000 speakers. As President of CommitDBA services, I focused on all platforms surrounding the Oracle 12c database stack and Oracle cloud platform. This blog along with nine other blogs presents ten important and key takeaways from Oracle OpenWorld 2016.
As discussed in Takeaway #2, Oracle release 12.2 (12cR2) is available currently in Oracle cloud and will be available for on-premise later in 2017. There are many new and advanced architectural features embedded in Oracle 12cR2 which includes the ability for database sharding for massive large-scale data environments such as social networking websites. With sharding, data is split into multiple databases (shards) and each database holds a subset (e.g. range or hash) of the data and can be geographically dispersed.
The Oracle 12cR2 database provides superior flexibility and scaling compared to other databases including MySQL which is used by many large social websites. Listed below are key Oracle features that help differentiate it from other platforms and stabilize sharding requirements with improved efficiency and manageability.
Oracle provides the ability for online schema changes while many other database vendors do not. If online schema changes are required in multiple sharded databases and the online change ability was not available, then the website would need to schedule downtime to perform the schema changes offline. This is not an option for most mission-critical web and mobile applications accessing massive amounts of data.
Disaster RecoveryShards need to be replicated for availability and disaster recovery (DR). Replicating database shards by keeping copies consistent, automatically handling failures, and zero data loss is critical. With Oracle’s Active Data Guard, database shards can be quickly be replicated and optimized for failover, provide read scalability and be available for reporting. Other firms with sharded databases using MySQL for instance, have had to spend significant time and money to modify replication in order to make it work adequately.
Data Failures/CorruptionDatabase sharding provisioning should detect corrupted data, prevent them from being written, and repair data without downtime. Oracle provides several solutions for rapid recovery from data failures including the following:
- Data Guard protects against corruptions and lost writes.
- Flashback technologies to recover and repair data without having to restore a backup
- High performance backup and recovery such as online block recovery.
ScalingMassive data environments require the ability to scale appropriately. With Oracle, you can scale to terabytes of memory with database sharding. The ideal sharding architecture also should integrate seamlessly with mid-tier caches. Oracle LogMiner directly returns the primary keys of all changed rows from the redo logs. This can be used to refresh data in the front end caches.
With ever increasing data growth, the number of shards and overall data volume will both increase. Sharding architecture should allow to partition each shard (database) into operational units for manageability, performance, and availability. Oracle can easily manage data scalability with Oracle partitioning which has been widely used for over 10 years. Although it may not be practical for most environments, with release 12cR2 Oracle can now support 1 million partitions per table.
Database sharding is most beneficial to massive scale data environments. With release 12cR2 Oracle now provides the best-in-class architecture required for optimal and enterprise-level database sharding.
Look for more Oracle cloud features and articles coming out soon on the CommitDBA blog site.