Why customers choose Oracle Globally Distributed Database over CockroachDB

Oracle’s Globally Distributed Database is a distributed deployment of the Oracle database presented as a single logical database. It has all the Oracle database features, plus additional capabilities when used with geographic distribution and replication. It thereby combines the benefits of familiar, relational SQL—consistency and reliability—with those of NoSQL—easy scaling and global reach.

Oracle’s Globally Distributed Database offers features not found in CockroachDB

Oracle’s Globally Distributed Database distributes segments of a data set across many databases (shards) on different computers, on-premises, or in the cloud. It enables globally distributed, linearly scalable, multimodel databases. It requires no specialized hardware or software. Unlike NoSQL solutions, Oracle’s Globally Distributed Database provides strong data consistency, the full power of SQL, support for structured and unstructured data, and the Oracle Database ecosystem. It meets data sovereignty requirements and supports applications that require low latency and high availability.

Customers are choosing Oracle’s Globally Distributed Database over CockroachDB for several reasons

  • Oracle’s Globally Distributed Database delivers limitless scalability for internet-scale applications, accommodating exponential data and user traffic growth while enabling high performance and availability.
  • Oracle’s Globally Distributed Database simplifies your data architecture with Converged Database capabilities, offering native support for modern data types, analytics, and development paradigms. This reduces complexity and cost, providing a single data store that meets diverse needs with linear scalability, extreme availability, and geographic distribution.
  • Oracle’s Globally Distributed Database delivers in-country data storage while maintaining a unified global perspective, enabling organizations to comply with data sovereignty regulations while retaining a comprehensive view of their data.
  • Shards can use different cloud providers (a multicloud strategy), and replicas of a shard can be in different clouds or on-premises.
  • Regarding security, Oracle’s Globally Distributed Database offers robust data protection measures. It integrates seamlessly with Oracle's comprehensive security features, such as encryption and access controls, safeguarding sensitive data from external threats and insider risks.
  • While CockroachDB claims to be a ground-up solution, it’s essentially a patchwork of multiple components, including PostgreSQL for SQL operations, a log-structured merge-tree (LSM) data structure for storage (Pebble, a modified version of RocksDB), and Raft replication for high availability (HA). In contrast to this disparate mix of software modules, Oracle’s Globally Distributed Database is architected and seamlessly integrated into the Oracle database, providing a unified and optimized solution. Oracle offers a mature Globally Distributed Database that supports full SQL, a mature storage engine, and multiple HA options including Raft replication starting from version 23c.
  • CockroachDB shards all tables differently and doesn’t facilitate sharding across multiple tables, resulting in poor join performance. By contrast, Oracle’s Globally Distributed Database incorporates the concept of table families, significantly enhancing its capacity for high-performance query processing and join operations.
  • RocksDB, an open-source key-value store initially developed by Facebook, is inherently designed for key-value storage. However, its performance is notably subpar when applied to generating relational rows where each column value is a key-value pair. By contrast, Oracle's Distributed Database system incorporates a highly optimized and well-established storage engine. In addition, when operating on the Exadata platform, it benefits from storage cell support enhanced with Remote Direct Memory Access (RDMA) capabilities, further optimizing storage performance.
  • CockroachDB offers limited SQL support, while Oracle’s Globally Distributed Database provides comprehensive support for the full range of SQL capabilities.
  • To perform joins, CockroachDB's query execution requires multiple hops across nodes that—compounded by network latencies between them—may affect performance. Each update in CockroachDB could be a distributed transaction that touches multiple nodes, making crash recovery a complex process. If a node acting as a transaction coordinator fails, transaction logs could be lost, potentially resulting in data loss and inconsistency. By employing the concept of table families, Oracle's Globally Distributed Database optimizes transactions to be predominantly local to a shard. Additionally, Oracle's multi-shard query coordinator serves as a robust and highly available transaction coordinator, helping ensure data integrity and consistency.
  • CockroachDB lacks the capability to perform multi-shard queries, which hinders its ability to support analytics and reporting. By contrast, Oracle's Globally Distributed Database features a dedicated multi-shard query coordinator optimized for row and columnar access, enabling robust support for these tasks.
  • CockroachDB's node count is directly linked to the replication factor, resulting in increased data copies and greater storage consumption when more nodes are added. By contrast, Oracle's Globally Distributed Database provides efficient data replication, avoiding unnecessary storage overhead.
  • Oracle's Globally Distributed Database encompasses all Oracle Database's essential features, including security, parallel query, indices, secondary indices, and support for diverse data formats (including relational, JSON, text, and vector) in row and columnar formats.
  • CockroachDB uses proxy-based routing, which can lead to increased network hops and potential performance challenges due to latency. By contrast, Oracle's Globally Distributed Database incorporates intelligent routing mechanisms that efficiently direct queries to the appropriate data shards, minimizing network overhead. It offers versatile data access methods, including direct routing, to enhance overall efficiency. Furthermore, Oracle's Globally Distributed Database provides proxy routing for multi-shard queries.

Below is a summary of the key points before we delve into the details:

Enterprise-grade availability

Feature Oracle’s Globally Distributed Database CockroachDB
Comprehensive high availability solutions for planned and unplanned downtime
yes
no
Multiregion and cross-region replication for data redundancy
yes
Partial

Enterprise readiness

Feature Oracle’s Globally Distributed Database CockroachDB
Enterprise-grade high scalability and performance
yes
no
Enterprise security controls
yes
Basic
Data sovereignty compliance
yes
no
Built-in advanced analytics capabilities
yes
no
Low-code development tools
yes
no
Monitoring and management capabilities
yes
Basic
Bulk update and bulk data deletion
yes
Needs a code change (you must write a loop in the application)
Native migration services
yes
no

Powerful database capabilities

Feature Oracle’s Globally Distributed Database CockroachDB
High performance with ACID transaction consistency
yes
Yes, but the service might experience performance trade-offs for complex queries and joins
Comprehensive relational capabilities
yes
no
Variety of sharding techniques and data distribution
yes
no
Distributed data placement for performance optimization
yes
Partial
Full SQL support
yes
no

Performance

Feature Oracle’s Globally Distributed Database CockroachDB
Storage engine designed for high-speed efficiency
yes
no
Engineered system for extreme performance
yes
no
Data distribution for peak performance
yes
no
Direct and proxy routing options for efficient data access
yes
Partial
High-speed data ingest capabilities
yes
May not offer the same level of throughput
Impact of architectural implementation on performance None Software mishmash may impact performance

Enterprise-grade availability: Help ensure business continuity and data protection with Oracle’s Globally Distributed Database

By leveraging Oracle’s Globally Distributed Database's high availability options, organizations can mitigate risks, help ensure data integrity, and meet demanding service level agreements (SLAs). With comprehensive solutions for data protection against corruptions and human error, planned maintenance, ransomware protection, disaster recovery (DR), server resilience, and application continuity, Oracle’s Globally Distributed Database empowers customers to confidently run their mission-critical applications, minimize downtime, and swiftly handle any potential disruptions or failures, resulting in enhanced productivity and customer satisfaction. These robust features enable customers to achieve continuous operations, safeguard critical data, and maintain business continuity.

Capability and evidence
Oracle’s Globally Distributed Database
CockroachDB
Does the service provide comprehensive high availability features to help ensure uninterrupted operations for planned and unplanned outages?

Oracle’s Globally Distributed Database is an enterprise-grade distributed database that provides automatic subsecond fail-over with Raft replication, a capability introduced in Oracle Database 23c. In addition to its built-in Raft replication feature, Oracle excels in providing comprehensive HA features, helping ensure uninterrupted operations for planned and unplanned downtime.

While CockroachDB also employs Raft to ensure data consistency and availability, its "multi-active availability" has limitations: (1) Application changes are required for multiversion concurrency control—both for read replicas and multimaster replicas; (2) it lacks an integrated cluster manager, causing cascading failures; and (3) isolated storage failure detection can result in hangs. Certain situations, such as hangs, would require manual intervention with CockroachDB, but not so with the Oracle Database, which includes Oracle RAC, Hang Manager, which resolves application-induced hangs and deadlocks, and Oracle Clusterware for node management. All these components are tightly integrated and work across different platforms both on-premises and in Oracle Cloud.

yes
no
Does the service provide support for multiregion and cross-region replication to ensure data redundancy and availability across geographically distributed locations?

Oracle’s Globally Distributed Database extends beyond Raft to encompass active-active multiregion data partitioning and replication. The former offers high availability by partitioning data across regions, maintaining local replicas for seamless fail-over. Failures within a region trigger cross-region fail-over. Application-level routing automatically directs customer requests to the corresponding shard based on their region for efficient data access. The latter approach fully replicates data across regions, leveraging Oracle GoldenGate for bidirectional replication. Shards maintain local Active Data Guard replicas, enhancing data availability. These architectures help customers achieve robust and distributed deployments with high resilience and availability across geographically distributed locations.

In contrast, Cockroach DB replication is limited to Raft only. Features such as support for cross-region deployments (cases where not all nodes are on the same subnet and the listening and advertised addresses are different) are missing and only planned for future releases.

yes
Partial

Enterprise readiness: Achieve enterprise-grade scalability and security with Oracle’s Globally Distributed Database

Oracle’s Globally Distributed Database offers a comprehensive and robust solution for enterprise-scale deployments. With various sharding techniques available, such as hash, range, list, composite, custom, and directory-based sharding, it provides organizations with the flexibility to optimize data partitioning and distribution based on their specific requirements. This enables improved query performance, scalability, and efficient data access. In addition, Oracle’s Globally Distributed Database provides enterprise-grade security controls and seamless migration services and helps enable compliance with data sovereignty regulations, empowering businesses to manage their data and applications at an enterprise level confidently. Oracle Database provides a robust ecosystem of free tools, including Oracle APEX for low-code development and Oracle SQL Developer, and support for multiple programming languages, enhancing the development experience.

Capability and evidence
Oracle’s Globally Distributed Database
CockroachDB
Can the service provide enterprise-grade high scalability to handle exponential growth in data volumes, user traffic, and transactions while ensuring optimal performance?

Oracle’s Globally Distributed Database’s shared-nothing architecture eliminates performance bottlenecks and provides unlimited scalability. Employing Oracle’s Globally Distributed Database for enterprise-grade applications brings about numerous benefits, among which is the ability to achieve linear scalability in transactions per second.

Furthermore, the system helps ensure a consistent response time, irrespective of the addition of new shards to handle expanding data volumes. With Oracle’s Globally Distributed Database, Oracle BlueKai Data Management Platform scales to 1 million transactions per second. Oracle Database has very low-latency reads and writes on a single system and across regions.

Oracle’s execution engine is much more efficient than CockroachDB, which means fewer nodes are needed for a workload, reducing hardware and management costs.

CockroachDB can also scale. However, because its single-node performance is poor, you must configure extra hardware to handle the load.

Some users complain that SQL queries need to be optimized and perform more poorly on CockroachDB.

yes
no
Does the service provide enterprise-grade security controls to protect the data?

Oracle Database’s security is based on decades of experience securing some of the world’s most sensitive data with features such as Transparent Data Encryption, network encryption, Data Redaction, row- and column-level security, fine-grained access control, Oracle Data Masking and Subsetting Pack, Oracle Audit Vault and Database Firewall, Oracle Key Vault, Oracle Database Vault, Oracle Label Security, and Oracle Virtual Private Database. KuppingerCole, a well-respected analyst firm, rated Oracle Database security the overall market leader in a 2021 report.

In contrast, CockroachDB supports only basic security features, such as encryption, role-based access control (RBAC), authentication, and authorization. It’s missing an extensive set of security features that are available as part of Oracle Database. Security-conscious customers should be concerned about the limited set of security capabilities built into CockroachDB. Enterprise customers using CockroachDB may need to rely on third-party solutions for essential security capabilities, including data encryption, strong authentication, and comprehensive auditing.

yes
Basic
Does the service help enable compliance with data sovereignty requirements?

Oracle’s Globally Distributed Database is designed to seamlessly align with data sovereignty requirements. It allows in-country data storage while maintaining a global perspective. With user-defined sharding, data can be partitioned by country, helping ensure compliance. Applications in specific countries connect to local databases, allowing local processing and storage. Multishard queries are directed to the shard coordinator, which processes and aggregates results for a comprehensive response.

Data privacy is maintained by restricting cross-country access, employing user-defined sharding in different countries, and using Real Application Security or Oracle Virtual Private Database for meticulous data access control. This approach helps ensure administrators in one country can’t access data from others, providing a robust solution to address data sovereignty concerns.

CockroachDB doesn’t provide equivalent functionality. CockroachDB offers basic support for data domiciling in multiregion clusters using the ALTER DATABASE ... PLACEMENT RESTRICTED statement. First, when columns are indexed, data from the indexed columns may appear in system tables that are synchronized across nodes, disregarding any multiregion settings applied. This can affect data isolation and compliance. Additionally, zone configs, although used for data placement, were primarily designed for performance, and may be overridden by the replication system to ensure data durability, thereby limiting precise control over the data’s location. Lastly, if a node's locality is incorrectly specified, data domiciling based on inferred node placement won’t work reliably. These limitations impact use cases that require strict data isolation, compliance with data residency regulations, or precise control over data placement across regions.

yes
no
Does the service offer built-in advanced analytics capabilities?

Oracle’s Globally Distributed Database with columnar storage enables seamless big data analytics. It features a dedicated multi-shard query coordinator optimized for both row and columnar access. Oracle Database enables customers to form predictive insights with embedded AI/ML and an extensive set of built-in advanced analytics capabilities. It provides easy access to Oracle's parallelized, scalable in-database Oracle Advanced Analytics' ML algorithms (including classification, regression, anomaly detection, clustering, attribute importance, associations, feature extraction, times series, and others), SQL, PL/SQL, and Oracle's statistical and analytical SQL functions. Those algorithms and features enable users to automate their discovery of new insights, generate predictions, and add AI to data, using embedded AI/ML, statistics, and advanced SQL analytics.

In contrast, CockroachDB doesn’t have embedded advanced analytics. You must purchase another piece of software from a third party for this functionality, which will be separately supported and has a different SLA.

yes
no
Does the service provide any tool for low-code development?

Tools such as Oracle APEX and SQL Developer are included free of charge with Oracle Database. APEX is a low-code development environment that a line-of-business user can use to quickly develop and deploy data-centric applications. In addition, Oracle Database also includes SQL Developer for database development and drivers for all popular programming languages.

CockroachDB supports many languages but doesn’t provide the equivalent of APEX and SQL Developer.

yes
no
Does the service offer monitoring and management capabilities?

Oracle’s Globally Distributed Database provides a comprehensive suite of monitoring and management tools that cater to both on-premises and cloud environments. With offerings such as Oracle Enterprise Manager and the Oracle Cloud Infrastructure console, customers can monitor and manage Oracle’s Globally Distributed Database’s environment efficiently, enabling optimal performance, streamlined administration, and proactive issue resolution.

CockroachDB provides basic monitoring and management capabilities, but these don’t match the breadth and depth of those Oracle offers. CockroachDB’s built-in dashboard offers basic visibility into cluster performance and node health and integrates with third-party tools such as Prometheus and Grafana for more-advanced monitoring and visualization. Yet it lacks Oracle's comprehensive features, such as automated diagnostics and a centralized management console.

CockroachDB users can resort to third-party tools or custom setups for similar capabilities, but the lack of centralized management features will likely lead to more manual efforts for certain administrative tasks, affecting operational efficiency and issue responsiveness.

yes
Basic
Does the service provide a bulk loading and bulk deletion feature that can effectively handle large-scale data operations?

Oracle’s Globally Distributed Database offers efficient bulk loading and bulk deletion capabilities. It also allows for the distribution of data across multiple shards, enabling parallel data loading and deletion operations. This helps ensure scalability and high performance for handling large-scale data operations.

CockroachDB doesn’t have a feature that supports use cases such as bulk loading and deleting, making bulk updates and bulk deletes clunky.

Instead, bulk updates (changes to tens of thousands of rows, for example) are performed via iterative row updates in subsets using scripts or applications loops. The bulk delete process is similarly inefficient.

yes
Needs a code change (you must write a loop in the application)
Does the service provide migration services natively to assist customers in seamlessly transitioning their existing data and applications to the new platform?

Oracle offers comprehensive migration services that encompass various aspects of the process. Sharding Advisor aids you with schema design that maximizes query workload performance, minimizes multishard operations requiring cross-shard joins, and maximizes parallelism for complex queries (you can spread query processing across all shards). Migrating data from non-sharded to sharded databases using Data Pump for bulk migration and GoldenGate for catch-up enables improved performance and scalability, as well as optimal routing through direct routing capabilities. Oracle Globally Distributed Database stands out for its ability to seamlessly migrate to sharded databases without requiring any changes to the existing applications. It also supports deployment automation with Terraform, Kubernetes, and Ansible.

Customers relying on CockroachDB for migrations will need to depend on third-party tools such as Alembic, Flyway, and Liquibase. The migration process involves the manual conversion of database schema, tables, SQL statements, and stored procedures since CockroachDB doesn’t provide an automated tool for this purpose.

yes
no

Powerful database capabilities: A comprehensive solution for efficient data management

Oracle Globally Distributed Database is a comprehensive database solution, providing efficient data model and schema management, powerful query language and SQL capabilities, advanced indexing and data organization, support for complex data types, stored procedures, and triggers. It delivers high performance while maintaining ACID transaction consistency through distributed processing, efficient transaction routing, and optimized data formats. Furthermore, Oracle Globally Distributed Database’s converged database capabilities enable the handling of mixed workloads and various data types, thus eliminating the need for multiple specialty databases. These features enable customers to effectively manage and manipulate their data, helping ensure optimal performance and flexibility in their applications.

Capability and evidence
Oracle’s Globally Distributed Database
CockroachDB
Does the service deliver high performance without sacrificing ACID transaction properties?

Oracle’s Globally Distributed Database's combination of distributed processing, efficient transaction routing, support for multidocument ACID transactions, optimized data formats, intelligent caching, and scalable infrastructure delivers high performance without sacrificing the essential consistency guarantees provided by ACID transactions. It provides strict data consistency, zero data loss, and full support for ACID transactions, 2phase commit, complex joins, triggers, and stored procedures.

CockroachDB also aims to provide high performance with ACID transaction support. However, due to its reliance on key-value storage, there may be performance trade-offs in certain scenarios, particularly with complex queries and joins. The lack of a traditional relational model may limit the enforcement of referential integrity constraints, affecting the consistency aspect of ACID. These limitations can have an impact on customers, especially in use cases that heavily rely on complex transactions and relational data integrity.

yes
Yes, but the service might experience performance trade-offs for complex queries and joins
Does the service provide comprehensive relational capabilities?

Oracle Database is a converged database that supports mixed workloads (including OLTP, OLAP, data warehousing, in-memory analytics, and consolidation) and a broad set of data types, including structured (for example, relational), semistructured (for example, XML, JSON, Apache Avro, Parquet, and ORC), and unstructured data (for example, CLOB, spatial, and graph data). This enables customers to take full advantage of the performance, reliability, and security capabilities of Oracle Database to easily manage and integrate nonrelational data into business applications while eliminating the need for multiple specialty databases (for example, JSON and XML databases).

CockroachDB can only be used for a subset of the applications, which implies the customer will likely need to invest in one or more additional databases to fully address their whole workload. CockroachDB is a key-value database that supports OLTP but not OLAP and mixed workloads. It also has limited support for diverse data models. For example, it doesn’t support XML, Apache Avro, Parquet, or ORC and provides only limited support for spatial, graph, and text data models. It can’t support requirements for translytical workloads using multiple data models. It can’t support complex database transactions. It isn’t very suitable for applications that use complex SQL “JOIN” statements, and it isn't ideal for heavy analytics or OLAP.

Also, there’s limited implementation of materialized views and schema changes.

yes
no
Does the service offer a range of sharding techniques, providing diverse options for data partitioning and distribution to suit different application needs and optimize data access efficiency?

Oracle’s Globally Distributed Database offers versatile sharding methods, such as hash, range, list, composite, custom, and directory-based sharding, to cater to diverse customer requirements. These sharding methods provide numerous benefits, including improved data distribution, enhanced query performance, scalability, and flexibility in managing and accessing sharded data. With the ability to select the most suitable sharding method, customers can optimize their database architecture to meet their specific application needs and achieve optimal performance and scalability. These advanced sharding methods make it easier to ensure that the most frequently accessed data is available at the local shard (avoiding the need to access remote shards).

In contrast, CockroachDB is limited to using list and range partitioning.

yes
no
Does the service provide distributed data placement capabilities, ensuring efficient and optimized data distribution across multiple nodes or servers?

Oracle’s Globally Distributed Database excels in distributed data placement, helping ensure efficient and optimized data distribution across multiple nodes or servers. Sharding keys allow balanced loads and improved query performance. Automated data distribution features, including automated sharding and resharding of data, automatically place data on the desired shard, saving time and eliminating manual data preparation. Oracle’s Globally Distributed Database offers multiple sharding methods, including system-managed, user-defined, and composite sharding while allowing parallel data ingestion and queries across all shards, enhancing elasticity and overall performance.

CockroachDB doesn’t offer fine-grained control over distributed data placement and just relies on automated distribution and replication across nodes, limiting customized data placement for specific application requirements or data access patterns. This may result in reduced flexibility, limited optimization opportunities, and potentially suboptimal performance in certain use cases.

In CockroachDB, data is distributed across all nodes differently for all tables (with no support for interleaved tables). The absence of support for interleaved tables can limit hierarchical data organization and balanced data distribution, impacting performance in joins, constraints, and transactions.

yes
Partial
Does the service provide full SQL support?

Oracle Database is a native relational database that provides full SQL support and all the programmatic interfaces, such as Java Database Connectivity (JDBC), Oracle Call Interface, Oracle Universal Connection Pool, Oracle Data Provider for .NET, and PL/SQL, including the extensions for sharded application development that you expect.

CockroachDB is a key-value database that supports SQL syntax. But it only supports a subset of SQL. Missing features include stored procedures, triggers, user-defined functions, cursors, geospatial functions and indexes, and XML functions. Therefore, if your applications use any of these SQL features, you’ll have to rewrite your applications or build a workaround.

yes
no

Performance: Unleashing high-speed transaction processing with Oracle’s Globally Distributed Database

Oracle’s Globally Distributed Database delivers exceptional performance with its high-speed transaction processing, efficient query execution, robust concurrency control, and advanced caching and optimization techniques. By intelligently distributing data using customizable shard keys, Oracle’s Globally Distributed Database achieves optimal performance for read and write operations. These capabilities enable swift and reliable data operations, helping customers achieve optimal performance and responsiveness in their applications.

Capability and evidence
Oracle’s Globally Distributed Database
CockroachDB
Is the storage engine designed to provide high-speed and efficient performance?

Oracle’s Globally Distributed Database is architected and integrated into Oracle Database instead of a mishmash of software. Oracle Database leverages a highly optimized storage layer that is purpose-built for Oracle workloads, delivering high performance, reliability, and scalability for efficient data operations. It offers a comprehensive set of data management features, including partitioning, indexing, compression, and advanced caching mechanisms, which enhances storage efficiency and improves query performance. Moreover, it supports diverse storage options, including traditional file systems, Oracle Automatic Storage Management, and integration with Oracle Exadata storage, to cater to specific customer needs.

CockroachDB's storage approach is based on a key-value store, and its use of PostgreSQL for SQL operations, coupled with a log-structured merge-tree (LSM) data structure for data organization, may not be able to compete with the optimized performance delivered by Oracle Database. The notable challenge with LSM-based storage is its impact on read performance and the overhead of compaction. CockroachDB uses Pebble (a modified version of RocksDB) as its underlying storage engine and employs one RocksDB per disk, which may result in lower data density (the amount of data that can be stored on a single node). This layered approach contrasts with the claim of building a solution entirely from the ground up.

yes
no
Does the service offer an engineered system for extreme performance, delivering unmatched speed, efficiency, and responsiveness for high-demand workloads?

Oracle offers an engineered system and hardware appliance, such as Oracle Exadata or Oracle Exadata Cloud@Customer, that includes unique HW/SW integration and optimization (for example, SQL offloading, Smart Scans, and Storage Indexes) to enable extreme performance. There’s also end-to-end applications-to-disk management to ease the ongoing operation of the whole HW/SW system, resulting in lower operational costs.

For on-premises deployment, CockroachDB is delivered as a software-only solution on commodity x86 hardware and can’t offer the benefits of Oracle Exadata or Oracle Exadata Cloud@Customer. There’s no special HW/SW integration and co-engineering. There’s also no applications-to-disk management, which is disjointed for CockroachDB and the underlying infrastructure.

yes
no
Does the service distribute data optimally to achieve peak performance for database operations?

Oracle’s Globally Distributed Database allows the distribution of data among nodes based on keys known as sharding keys. These sharding keys are defined by the application or database administrator and are used to determine the placement of data across shards using keys such as composite keys or custom/application-specific keys. Utilizing a table family concept ensures that related data is colocated within the same shard, optimizing data retrieval and minimizing the need for cross-shard communication. This boosts query response, enhances data access, and improves performance for operations such as joins, searches, and aggregations.

In CockroachDB, all the data is distributed among the nodes by a primary key. Queries involving multiple ranges or shards require coordination across nodes, and joining data from multiple tables may touch multiple nodes, potentially leading to slower joins and decreased query performance, and complex crash recovery. If the node acting as the transaction coordinator fails, transaction logs may be lost, potentially resulting in data loss and inconsistencies. By contrast, Oracle's multi-shard query coordinator serves as a robust and highly available transaction coordinator, helping ensure data integrity and consistency. To prevent this issue, CockroachDB recommends making sure to choose the appropriate data topologies to locate data for optimal performance and resiliency. Correct distribution of the data is critical because access to data in remote replicas is so expensive compared to access to locally stored data. This challenge is exacerbated by the need to implement locking mechanisms to maintain consistency.

yes
no
Does the service offer both direct and proxy routing options for efficient data access?

Oracle’s Globally Distributed Database employs intelligent routing mechanisms that direct queries to the shards that hold the relevant data, avoiding unnecessary data retrieval from remote shards and minimizing data movement and network overhead. It offers both direct and proxy routing options, allowing for more flexible data access and management.

Direct routing eliminates the need for a proxy layer and provides a simplified integration approach, maximizing resource efficiency and query performance. JDBC applications can seamlessly use this service without requiring any application-side code changes.

Oracle’s use of Raft enables users to directly connect to the leader, enhancing performance and efficiency. Features such as direct routing and proxy routing with multi-AZ deployment are designed to enable customers to build resilient, scalable apps for optimal performance and data integrity during increased workloads. Hence, with direct routing as a feature, Oracle’s Globally Distributed Database may have an advantage over CockroachDB because it offers additional flexibility and potential performance benefits.

CockroachDB primarily uses proxy-based routing to handle client connections and query routing. Relying exclusively on proxy routing may introduce additional network hops, leading to slower performance due to network latency. The required external load balancer also introduces extra network hops, which may lead to added latency.

yes
Partial
Does the service offer high-speed data ingest capabilities to accommodate large-scale data influx efficiently?

Oracle’s Globally Distributed Database excels at providing high-speed data ingest capabilities, especially in IoT and data streaming app scenarios. With dedicated stream libraries and advanced direct I/O technology, Oracle efficiently loads data for rapid processing. Additionally, the SQL*Loader tool facilitates direct data loading into the database shards, leveraging direct-path INSERT for maximum speed while optimizing CPU allocation. This comprehensive approach makes Oracle a robust and efficient choice for managing large-scale data influx and enabling analytics.

CockroachDB uses a streamlined import method to efficiently assimilate extensive data, which involves data preparation in formats such as CSV, followed by employing the built-in IMPORT statement. This approach optimizes performance and suits various high-speed data ingestion needs. However, when compared with specialized tools such as Oracle's SQL*Loader or direct-path INSERT, it might have limitations when managing intricate data transformations or scenarios with exceedingly high throughput demands. These encompass complex data manipulations and real-time data streams, necessitating customized optimization beyond standard bulk loading for ideal performance and reliability.

yes
May not offer the same level of throughput
Does the choice of architectural implementation impact the performance of the service?

Oracle’s Globally Distributed Database is seamlessly integrated into Oracle Database. It is architected for superior performance and efficiency, utilizing Oracle's industry-leading technologies, such as partitioning, parallel query execution, sharding, and Global Data Services, to enhance scalability and data management. Raft replication ensures data consistency, reinforcing performance and reliability. When it comes to architectural language, Oracle Database is highly optimized, using C, C++, and Java, and known for exceptional performance and reliability.

CockroachDB is essentially a patchwork of several components, including PostgreSQL for SQL operations and an LSM-based data structure, along with Pebble for storage. This composite architecture clashes with their claim of building a ground-up solution. Using RocksDB can also result in poor performance when handling relational rows stored as key/value pairs.

Furthermore, CockroachDB uses a mix of Go for the client, parser, and server with C++ for the storage layer. This interlanguage switching, particularly with Go's unpredictable garbage collection overhead, introduces potential performance challenges. These complexities may ultimately hinder performance, while Oracle's Globally Distributed Database is designed to optimize it.

yes
Software mishmash may impact performance

Try Oracle Autonomous Database for free

Interested in learning more about Oracle Database? Let one of our experts help.