Aims of Oracle Database 19c
Oracle Database 19c is the release that the majority of customers will target their upgrades towards, and Oracle has made stability the core aim of this release. In Oracle Database 19c, developers have focused on fixing known issues, rather than adding new functionality. This focus on stability goes further than just the core database; it also covers all aspects of the technology stack from the installer to the utilities and tools that make up the product offering. This approach, plus the changes we’ve made to the patching process will greatly reduce the burden on patching in the upcoming years for our customers.
All That’s Gone Before
Over that time, oracle added a multitude of features under the guidance of our customer community; from row level locking and scalable read consistency, to the ability to logically break tables up into smaller partitions for scanning billions of rows a second using parallel query. Many of these features and their implementation are industry leading, and in many instances remain unique to Oracle Database.
Data is of little value to enterprise users when it’s not accessible, and Oracle Database has ensured that it always is. Whether it’s as simple as make sure the database is consistent on restart after an unexpected server outage. Or, by offering disaster recovery, Oracle Database can provide synchronous (or asynchronous) replication of data over large distances whilst making it available for reporting and backups. Oracle Real Application Clusters (RAC) has meant that Oracle Database is found in nearly every mission critical system where any server outage could have serious implications. RAC enables customers to scale their Oracle Databases to extraordinary levels of throughput and concurrency without having to change their applications.
Oracle Database is widely acknowledged one of the most secure repositories for data in the industry. No other database solution has the breath of capabilities or depth of implementation. Whether it’s our implementation of simple access controls or the classification of data down to the row level. We encrypt data throughout it’s life cycle be it at rest or in flight and we do it in the database itself ensuring that malicious access is minimized.
And More Recently
Oracle Database 18c and the previously released Oracle Database 12c family introduced hundreds of new features and improvements. Some of the more significant include:
- Multitenant Oracle’s strategic container architecture for the cloud introduced the concept of a pluggable database (PDB), enabling users to plug and unplug databases and move between containers, either locally or in the cloud. This architecture enables massive consolidation with the ability to efficiently share memory and processor resources and manage many databases as one (e.g. for backups, patching and upgrades).
- JSON Support Provides developers with a more flexible approach to defining their persisted schema-less data model. As well as just being able to store JSON in the database, developers can use SQL and all of Oracle’s advanced analytical capabilities to query it. To ease the burden of processing large JSON data collections, Oracle Database also enables parallel scanning and or update. For developers looking to build applications and preferring to use a simple NoSQL API, Oracle Database provides SODA (Simple Object Data Access) APIs for C, Java, PL/SQL, Python, Node and REST.
- Database In-Memory Enables users to perform lighting fast analytics against their operational databases without being forced to acquire new hardware or make compromises in processing their data. Oracle Database features a dual in-memory model where OLTP data is held both as rows, enabling it to be efficiently updated, and in a columnar form, enabling it to be scanned and aggregated much faster. Reports that used to take hours can now be executed in seconds. In addition, Oracle can store JSON documents in the in-memory column store for lightning fast analysis of semi structured data.
- Sharding Provides OLTP scalability and fault isolation for customers that want to scale outside of the confines of a typical SMP server. It also supports use cases where data needs to be placed in geographic location because of performance or regularity reasons. Oracle Sharding provides superior run-time performance and simpler life-cycle management compared to home-grown deployments that use a similar approach to scalability. Users can automatically scale up the shards to reflect increases in workload making Oracle the one of the most capable and flexible approaches to web scale work loads for the enterprise today.
New in Oracle Database 19c
While stability is the focus of Oracle Database 19c, that’s not to say there aren’t some new few features and enhancements worth mentioning, such as:
- Automatic Indexing Without the relevant experience, optimizing database performance can be a challenge for many customers. Figuring out what columns in a table require an index to benefit not just a single query but potentially thousands of variants requires a deep understanding of the data model, performance-related features of Oracle Databases and the underlying hardware. In Oracle Database 19c, we’re introducing Automatic indexing which continually evaluates the executing SQL and the underlying tables to determine which indexes to create and which ones to potentially remove. It does this via an expert system which verifies the improvements an index might make, and after it’s creation, validates the assumptions made. It then uses reinforcement learning to ensure it doesn’t make the same mistake again. Most importantly, Oracle Database 19c is able to adapt over time as the data model and access paths change.
- Active Standby DML Redirect A popular feature of Active Data Guard is its ability to make use of standby databases for reporting and backups. With basic Data Guard, the standby database continuously recovers redo information shipped from a primary database. While the ability to ‘sweat’ the standby, through Active Data Guard, is a big improvement in fully utilizing an enterprises resource, many reporting applications require the ability to persist some data, such as logging information for auditing purpose. In Oracle Database 19c we now allow users to send such write requests to the standby. These writes are then transparently redirected to the primary database and written there first (to ensure consistency) and then the changes are shipped back to the standby. This approach allows applications to use the standby for moderate write workloads without requiring any application changes.
- Hybrid Partitioned Tables Breaking larger tables into smaller chunks or partitions makes them easier to manage and can improve performance by focusing operations on only the pieces of data they would be applicable to. Oracle Database supports multiple models for partitioning data as well as online operations for partition management. But, as enterprise data continues to inextricably increase in size and complexity and regulatory requirements mandate that it continues to always be online we need to look at new models for managing it. With Hybrid Partitioned Tables, DBAs can now break data into manageable partitions as before, however DBAs can now select which partitions should be held in the database for fast querying and updating, and which partitions can be made read only and stored in external partitions. These external partitions can be held on on-premises in standard files systems or on low cost HDFS. DBAs can also choose to place the data in cloud-based object stores, thereby ‘stretching’ tables to the cloud.
- JSON Enhancements There are a number of incremental enhancement to JSON support in Oracle Database 19c, from the simplification of SQL functions to the ability to partially update a JSON document.
- Memoptimized Rowstore This features enables fast data inserts into Oracle Database 19c from applications, such as Internet of Things (IoT), which ingest small, high volume transactions with a minimal amount of transactional overhead. The insert operations that use fast ingest functionality temporarily buffer the data in the large pool before writing it to disk in bulk in a deferred, asynchronous manner.
- Quarantine SQL Statements Runaway SQL statements terminated by Resource Manager due to excessive consumption of processor and I/O resources can now be automatically quarantined. This prevents these runaway SQL statements from executing again, and thereby protects Oracle Database 19c from a common source of performance degradation.
- Real Time Statistics Modern query optimizers require detailed statistics of the structure and make up of data in tables to enable them to make the ‘optimal’ decision on how to execute complex queries. The problem with this is that statistic collection can be resource intensive and take some period of time. For most recent ‘always on’ applications, finding a window to run a batch process to collect this data is difficult. In Oracle Database 19c, statistics can now be collected as operations insert, update or delete data in real time. Now, there’s no need for customers to compromise between the quality of the statistics that the optimizer depends upon and finding the right time for statistics maintenance.