Oracle NoSQL Database
Developer(s) | Oracle Corporation |
---|---|
Initial release | September 2011 |
Stable release | 22.2
/ 19 August 2022 |
Written in | Apache License 2.0 (CE) and Proprietary (EE) |
Website | oracle |
Oracle NoSQL Database is a
It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.Oracle NoSQL Database Cloud Service is a managed cloud service for applications that require low latency, flexible data models, and elastic scaling for dynamic workloads.
Developers focus on application development and data store requirements rather than managing back-end servers, storage expansion, cluster deployments, topology, software installation/patches/upgrades, backup, operating systems, and availability. NoSQL database scales to meet dynamic application workloads and throughput requirements.
Users create tables to store their application data and perform database operations. A NoSQL table is similar to a relational table with additional properties including provisioned write units, read units, and storage capacity. Users provision the throughput and storage capacity in each table based on anticipated workloads. NoSQL Database resources are allocated and scaled accordingly to meet workload requirements. Users are billed hourly based on the capacity provisioned.
NoSQL Database supports tabular model. Each row is identified by a unique key, and has a value, of arbitrary length, which is interpreted by the application. The application can manipulate (insert, delete, update, read) a single row in a transaction. The application can also perform an iterative, non-transactional scan of all the rows in the database.
Licensing
Oracle Corporation distributes the Oracle NoSQL Database in three editions:
- Oracle NoSQL Database Server Community Edition under an Apache License, Version 2.0
- Oracle NoSQL Enterprise Edition under the Oracle Commercial License
- Oracle NoSQL Basic Edition
Oracle NoSQL Database is licensed using a freemium model: open-source versions of Oracle NoSQL Community Edition are available, but end-users can purchase additional features and support via the Oracle Store.[5]
Oracle NoSQL Database drivers,
Main features
Architecture
Oracle NoSQL Database is built upon the Oracle Berkeley DB Java Edition high-availability storage engine. It adds services to provide a distributed, highly available key/value store, suited for large-volume, latency-sensitive applications.[8]
Sharding and replication
Oracle NoSQL Database is a client-server,
High availability and fault-tolerance
Oracle NoSQL Database provides single-master, multi-replica database replication.[9] Transactional data is delivered to all replica nodes with flexible durability policies per transaction. In the event the master replica node fails, a consensus-based PAXOS-based automated fail-over election process minimizes downtime. As soon as the failed node is repaired, it rejoins the shard, updated and then becomes available for processing read requests. Thus, Oracle NoSQL Database applications can tolerate failures of nodes within a shard and also multiple failures of nodes in distinct shards.
Proper placement of masters and replicas on server hardware (racks and interconnect switches) by Oracle NoSQL Database is intended to increase availability on commodity servers.
Transparent load balancing
Oracle NoSQL Database Driver[10] partitions the data in real time and evenly distributes it across the storage nodes. It is network topology and latency-aware, routing read and write operations to the most appropriate storage node in order to optimize load distribution and performance.
Administration and system monitoring
Oracle NoSQL Database's administration service can be accessed from a web console or a command-line interface. This service supports functionality such as the ability to configure, start, stop and monitor a storage node, without requiring configuration files, shell scripts, or explicit database operations. It allows Java Management Extensions (JMX) or Simple Network Management Protocol (SNMP) agents to be available for monitoring. This allows management clients to poll information about the status, performance metrics and operational parameters of a storage node and its managed services.[11]
Elastic configuration
"Elasticity" refers to dynamic online expansion of the deployed cluster.[12] Adding storage nodes increases capacity, performance and reliability. Oracle NoSQL Database includes a topology planning feature, with which an administrator can modify the configuration of a NoSQL database while the database is online. The administrator can:
- Increase data distribution: by increasing number of shards in the cluster, which increases write throughput.
- Increase replication factor: by assigning additional replication nodes to each shard, which increases read throughput and system availability.
- Rebalance data store: by modifying the capacity of storage nodes, the system can be rebalanced, re-allocating replication nodes to storage nodes[13] as appropriate.
Administrators can move replication nodes and/or partitions from over-utilized nodes onto underutilized storage nodes or vice versa.
Multi-zone deployment
Oracle NoSQL Database supports multiple zones to intelligently allocate replication of processes and data, in order to improve reliability during hardware, network and power-related failure modes. The two types of zones are: primary zones that contain nodes that can serve as masters or replicas and are typically connected by fast interconnects. Secondary zones contain nodes that can only serve as replicas. Secondary zones can be used to provide low latency read access to data at a distant location, or to offload read-only workloads such as analytics, report generation and data exchange for improved workload management.
JSON data format
Oracle NoSQL Database supports
Online rolling upgrade
Oracle NoSQL Database provides facilities to perform a rolling upgrade, allowing a system administrator to upgrade cluster nodes while the database remains available.[15]
Fault tolerance
Oracle NoSQL Database is configurable to be either C/P or A/P in CAP.[16] In particular, if writes are configured to be performed synchronously to all replicas, it is C/P in CAP i.e. a partition or node failure causes the system to be unavailable for writes. If replication is performed asynchronously, and reads are configured to be served from any replica, it is A/P in CAP i.e. the system is always available, but there is no guarantee of consistency.
Database features
Table data model
Release 3.0 introduced tabular data structure, which simplifies application data modeling by leveraging existing schema design concepts. Table model is layered on top of the distributed key-value structure, inheriting all its advantages and simplifying application design by enabling seamless integration with familiar SQL-based applications
Secondary index
Primary key only based indexing limits the number of low latency access paths. Sometimes applications need a non-primary-key based paths to support specific application requirements. OND supports secondary index on any value field.[17]
Large object support
Oracle NoSQL Database EE Stream based APIs allow reading and writing large objects (LOBs) such as audio and video files, without having to materialize the entire file in memory. This is intended to decrease the latency of operations across mixed workloads of objects of varying sizes.[18]
ACID compliant transaction
Oracle NoSQL Database provides ACID compliant transactions for full create, read, update and delete (CRUD) operations, with adjustable durability and consistency transaction guarantees. A sequence of operations can operate as a single atomic unit as long as all the affected records share the same major key path.[19]
Integration
Oracle NoSQL Database includes support for
Oracle RESTful Services
Oracle NoSQL Database supports Oracle REST Data Services (ORDS).[21] This allows customers to build a REST-based application that can access data in either Oracle Database or OND.
GeoJSON
Supports spatial queries on RFC7946 compliant GeoJSON data. Spatial functions and indexing for GeoJSON data are supported.
Apache Hadoop
KVAvroInputFormat and KVInputFormat[22] classes are available to read data from OND natively into Hadoop MapReduce jobs. One use for this class is to read NoSQL database records into Oracle Loader for Hadoop.[23]
Oracle integration
Oracle Big Data SQL and Hive
Oracle Big Data SQL is a common SQL access layer to data stored in
Oracle Database
Oracle NoSQL Database EE supports external table allows fetching Oracle NoSQL data from Oracle database using SQL statements such as Select, Select Count(*) etc. Once NoSQL data is exposed through external tables, one can access the data via standard JDBC drivers and/or visualize it through enterprise business intelligence tools.
Other Oracle products
Oracle Event Processing (OEP) provides read access to Oracle NoSQL Database via the NoSQL Database cartridge. Once the cartridge is configured, CQL queries can be used. Oracle Semantic Graph includes a Jena Adapter for Oracle NoSQL Database[24] to store large volumes of RDF data (as triplets/quadruplets). This adapter enables fast access to graph data stored in OND via SPARQL queries. Integration with Oracle Coherence allows OND to be used as a cache for Oracle Coherence applications, allowing applications to directly access cached data from OND.
Enterprise security
Oracle NoSQL Database EE supports OS-independent, cluster-wide password-based user authentication and Oracle Wallet integration and enables greater protection
Performance
The Oracle NoSQL Database team has worked with several key Oracle partners, including
See also
References
- ^ "Oracle NoSQL Database Technical Overview". www.oracle.com.
- ^ "Oracle NoSQL Database Performance Tests".
- ^ Wayner, Peter (16 November 2011). "First look: Oracle NoSQL Database".
- ^ Wolfe, Alexander. "Do You Know NoSQL?". Forbes.
- ^ "Oracle Store". shop.oracle.com.
- ^ "Oracle NoSQL Database Downloads". www.oracle.com.
- ^ "Oracle NoSQL Database 12c Release 2 (12.2.4.5)". docs.oracle.com.
- ^ ""Oracle NoSQL Database White Paper"" (PDF).
- ^ "Chapter 1. Introduction to Oracle NoSQL Database". docs.oracle.com.
- ^ Intelligent Drivers
- ^ "Oracle NoSQL Database Administration". www.oracle.com. Retrieved 2019-04-15.
- ^ "Elastic Expansion". www.oracle.com.
- ^ "Storage Nodes".
- ^ "Chapter 8. Avro Bindings". docs.oracle.com.
- ^ "Rolling Upgrade". www.oracle.com.
- ^ Abadi, Daniel (4 October 2011). "DBMS Musings: Overview of the Oracle NoSQL Database".
- ^ "Oracle NoSQL Database 3.0 Supports Table Data Model and Secondary Indexing". InfoQ.
- ^ "Large Object Support". www.oracle.com.
- ^ "Oracle NoSQL Database transactions". www.oracle.com.
- ^ "Oracle NoSQL Database API". www.oracle.com.
- ^
Compare:
"Overview (Oracle REST Data Services Plugin API)". download.oracle.com. Oracle Corporation. Retrieved 2015-11-30.
This document describes how to develop and deploy plugins that integrate with the Oracle REST Data Services (ORDS) runtime.
- ^ "Oracle NoSQL Database API". docs.oracle.com.
- ^ "Using Oracle NoSQL Database with Hadoop". www.oracle.com.
- ^ "Oracle Semantic Technologies Downloads". www.oracle.com.
- ^ "Oracle NoSQL Database 3.0 Ups Security and Performance". www.dbta.com. April 2, 2014.
- ^ "Cisco Data Center" (PDF). Cisco.
- ^ "Oracle NoSQL Database Exceeds 1 Million Mixed YCSB Ops/Sec" Archived 2015-05-20 at the Wayback Machine