Oracle NoSQL Database provides a very simple data model to the application developer. 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) to 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 two editions:

Oracle NoSQL Database Server Community Edition under an Apache License, Version 2.0

Oracle NoSQL Enterprise Edition under the Oracle Commercial License

The Oracle NoSQL Database is licensed using a freemium model: open source versions of Oracle NoSQL Community Edition are available, intended end-users can purchase additional features and support via the Oracle Store. [5] If Integrating with other Oracle Products Such As Oracle Enterprise Manager or Oracle Coherence , Oracle NoSQL Then Enterprise Edition shoulds be purchased this.

The Oracle NoSQL Database drivers, [6] licensed under the Apache 2.0 License , are used by both the community and enterprise editions. [7]

Main features

Architecture [8]

Oracle NoSQL Database is built on the Berkeley Oracle DB Java Edition high-availability storage engine. In addition to that it adds a layer of services for distributed and distributed computing, highly available key / value storage, suitable for large-volume, latency-sensitive applications.

In this respect, an Infoworld review that Berkeley DB, Sleepycat Software . [3]

Sharding and replication

Oracle NoSQL Database is a client-server, sharded , shared-nothingsystem. The data in each shard are replicated on each of the nodes which includes the shard. It provides a simple key-value paradigm to the application developer. The major key for a record is a record of the record of the record. If the number of shards changes, key-value peers are redistributed across the new set of shards dynamically, without requiring a system shutdown and restart. A shard is made up of a single electable master node that can be read and written, and sometimes replicated (usually two or more) which can serve read requests. Replicas are kept up to date using streaming replication.

High availability and fault-tolerance [9]

Oracle NoSQL Database provides single-master, multi-replica database replication . Transactional data is delivered to all networks with flexible durability policies per transaction. In the event the master replica node fails, based on PAXOS -based automated fail-over election process minimizes downtime. As soon as the failed node is repaired, it rejoins the shard, it is brought up to date and becomes available for processing read requests.Thus, the Oracle NoSQL Database server can tolerate failures of nodes within a shard and also multiple failures of nodes distinct shards.

Proper placement of masters and replicas on server hardware (racks and interconnect switches) by Oracle NoSQL Database is intended to increase the 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 reads and write operations to the most appropriate storage node in order to optimize load distribution and performance.

ACID compliant transaction

Oracle NoSQL Database provides ACID compliant transactions for full Create, Read, Update, and Delete (CRUD) operations, with adjustable durability and transactional consistency.You can also execute a sequence of operations as a single atomic unit. Major Key Path. [11]

JSON data format

Oracle NoSQL Database has support for the Avro [12] data serialization, which provides a compact, schema-based binary data format. Avro allows you to define a schema (using JSON) for the data contained in a record’s value. Configurable Smart Topology System administrators indicate how much capacity is available on a given storage node, allowing more capacity storage nodes to host multiple replication nodes. Once the system knows about the capacity for the storage nodes in a configuration, it automatically allocates replication nodes intelligently. This is intended for better load balancing for the system, better use of system resources and minimizing system impact in the event of storage node failure. Smart Topology also supports data centers, ensuring that a full set of replicas is centrally allocated to each data center.

Elastic configuration [13]

“Elasticity” refers to dynamic online expansion of the deployed cluster. Oracle NoSQL Database includes a topology planning feature, with which an administrator can now modify the configuration of a NoSQL database, while the database is still online. This allows the administrator to:

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 a storage node (s), the system can be rebalanced, re-allocating replication nodes to the available storage nodes, [14] as appropriate.

The topology rebalance command enables the administrator to move replication nodes and / or partitions from over used nodes to underutilized storage nodes or vice versa

Administration and system monitoring [15]

Oracle NoSQL Database provides an administration service, which can be accessed from a web console or a command-line interface (CLI). This service supports core functionality such as the ability to configure, start, stop, and monitor a storage node, without requiring manual effort with configuration files, shell scripts, or explicit database operations. In addition it also enables Java Management Extensions (JMX) or Simple Network Management Protocol(SNMP) agents to be available for monitoring. This allows the management of the customer to report on the status, performance metrics and operational parameters of the storage node and its managed services.

CAP

Oracle NoSQL Database is configurable to be C / P or A / P in CAP . [16] In particular, if it is implemented synchronously to all replicas, it is C / P in CAP ie a partition or node failure causes the system to be unavailable for writes. If replication is performed asynchronously, and is read, it is A / P in CAP ie the system is always available, but there is no guarantee of consistency.

Primary access to low latency access paths. Sometime application needs a few non-primary-key based paths to support the real solution for the real-time system. Being able to define a secondary index

APIs [18]

Oracle NoSQL Database includes support for Java, C, Python, REST APIs. These simple APIs allow the application developer to perform CRUD operations on Oracle NoSQL Database. These libraries also include Avro support, so that they can serialize key-value records and de-serialize keyvalue interchangeably records between C and Java applications.

Oracle Big Data SQL and Hive Integration

Oracle Big Data SQL is a common SQL access layer stored in Hadoop, HDFS, Hive and Oracle NoSQL database. This allows customers to run Oracle NoSQL Data from Hive or Oracle Database. Users can also run a map in the Oracle database that is configured for secure access. The latest release also supports both primitive and complex data types

Oracle RESTful Services

With Oracle NoSQL Database 12.1.3.2.5, Oracle Corporation has added support for Oracle REST Data Services (ORDS). [19] This allows customers to build a REST-based application that can access data in either Oracle Database or Oracle NoSQL Database.

Large Object support [20]

Stream based APIs are provided in the product to read and write large objects (LOBs) such as audio and video files, without having to materialize the value in its entirety in memory. This is intended to decrease the latency of operations across mixed workloads of objects of varying sizes.

Apache Hadoop integration [21]

KVAvroInputFormat and KVInputFormat [22] classes are available from Oracle NoSQL Database natively in Hadoop Map / Reduce jobs. One use for this class is to read NoSQL Database records in Oracle Loader for Hadoop.

Oracle Database Integration via External Tables (EE only)

Support for external table allows fetching Oracle NoSQL data from Oracle database using SQL statements such as Select, Select Count (*), and so on. 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.

Integration with other Oracle products (EE only)

Oracle Event Processing (OEP) provides access to Oracle NoSQL Database through the NoSQL Database cartridge. Query can be used to query the data.Oracle Semantic Graph has developed a Jena Adapter for Oracle NoSQL Database [23] to store large volumes of RDF data (as triplets / quadruplets). This adapter can be used for Oracle NoSQL Database via SPARQL queries. An integration with Oracle Coherence has-been Provided That Allows Oracle NoSQL Database to be used as a cover for Oracle Coherence applications aussi Directly Allowing applications to access cached data from Oracle NoSQL Database.

Online rolling upgrade [24]

Oracle NoSQL Database provides a rolling upgrade, allowing a system administrator to upgrade all of the nodes in the NoSQL Database cluster while the database continues to be available to customers.

Multi zone deployment

Oracle NoSQL Database supports the definition of multiple zones from within the topology deployment planner. These are two types of zones that can be used in the context of a network. replicas and are connected by fast interconnects. Secondary zones contain nodes which can only be served as replicas. Secondary areas can be used to provide remote location, or to offload read-only workloads, like analytics, report generation, and data exchange for improved workload management.

Performance

The Oracle NoSQL DB team has worked with several key Oracle partners, including Intel and Cisco , [26] performed benchmark testing using Yahoo! Cloud Serving Benchmarks (YCSB) on various hardware configurations, and published its results through blogs or white papers. For example, in 2012 Oracle reported that Oracle NoSQL Database exceeded 1 million mixed YCSB Ops / Sec. [27]