Need advice about which tool to choose?Ask the StackShare community!
Oracle vs Scylla: What are the differences?
Introduction
In this article, we will explore the key differences between Oracle and Scylla databases. Oracle is a widely used relational database management system (RDBMS), while Scylla is a highly scalable NoSQL database. Let's dive into the differences between these two databases.
Data Model: Oracle is a relational database that organizes data into tables with predefined schemas and enforces relationships between tables using foreign keys. On the other hand, Scylla is based on Apache Cassandra and follows a wide-column NoSQL data model. It uses a flexible schema allowing variable fields and denormalization to achieve high performance.
Scalability: Oracle is designed to run on a single server and can vertically scale by adding more resources to the existing server. However, Scylla is designed to be massively scalable, allowing horizontal scaling by adding more commodity servers to the cluster. It leverages a distributed architecture and consistent hashing to distribute data across multiple nodes.
Performance: Oracle is known for its robustness and feature richness, providing excellent performance for transactional workloads. It supports various indexing options, query optimization, and parallel processing. On the other hand, Scylla offers extreme performance for big data and high-velocity workloads. It is optimized for write-heavy operations and can handle millions of operations per second.
Fault Tolerance: Oracle provides built-in fault tolerance mechanisms such as data replication, clustering, and failover options to ensure high availability. It supports various backup and recovery options to protect data in case of failures. In contrast, Scylla is designed with fault tolerance in mind from the ground up. It uses a distributed architecture with replication across multiple nodes, ensuring data durability and availability even in the face of node failures.
Data Consistency: Oracle emphasizes strong data consistency by enforcing ACID (Atomicity, Consistency, Isolation, Durability) properties. It supports transactions with strict atomicity and isolation guarantees. Scylla, being a NoSQL database, offers tunable consistency levels. It provides eventual consistency by default, but allows users to choose stronger consistency levels when needed. This trade-off allows for higher availability and faster performance at the cost of relaxing strict consistency guarantees.
Cost: Oracle is a commercially licensed database that requires substantial licensing and maintenance costs, especially for enterprise-level deployments. Scylla, on the other hand, offers a community edition that is free to use and an enterprise edition that offers advanced features and support at a fraction of the cost compared to Oracle.
In summary, Oracle is a mature and feature-rich RDBMS with a strong emphasis on data integrity, while Scylla is a highly scalable NoSQL database optimized for big data and high-velocity workloads. Their differences lie in data models, scalability, performance, fault tolerance, data consistency, and cost.
The problem I have is - we need to process & change(update/insert) 55M Data every 2 min and this updated data to be available for Rest API for Filtering / Selection. Response time for Rest API should be less than 1 sec.
The most important factors for me are processing and storing time of 2 min. There need to be 2 views of Data One is for Selection & 2. Changed data.
Scylla can handle 1M/s events with a simple data model quite easily. The api to query is CQL, we have REST api but that's for control/monitoring
Cassandra is quite capable of the task, in a highly available way, given appropriate scaling of the system. Remember that updates are only inserts, and that efficient retrieval is only by key (which can be a complex key). Talking of keys, make sure that the keys are well distributed.
i love syclla for pet projects however it's license which is based on server model is an issue. thus i recommend cassandra
By 55M do you mean 55 million entity changes per 2 minutes? It is relatively high, means almost 460k per second. If I had to choose between Scylla or Cassandra, I would opt for Scylla as it is promising better performance for simple operations. However, maybe it would be worth to consider yet another alternative technology. Take into consideration required consistency, reliability and high availability and you may realize that there are more suitable once. Rest API should not be the main driver, because you can always develop the API yourself, if not supported by given technology.
We have chosen Tibero over Oracle because we want to offer a PL/SQL-as-a-Service that the users can deploy in any Cloud without concerns from our website at some standard cost. With Oracle Database, developers would have to worry about what they implement and the related costs of each feature but the licensing model from Tibero is just 1 price and we have all features included, so we don't have to worry and developers using our SQLaaS neither. PostgreSQL would be open source. We have chosen Tibero over Oracle because we want to offer a PL/SQL that you can deploy in any Cloud without concerns. PostgreSQL would be the open source option but we need to offer an SQLaaS with encryption and more enterprise features in the background and best value option we have found, it was Tibero Database for PL/SQL-based applications.
The Gentlent Tech Team made lots of updates within the past year. The biggest one being our database:
We decided to migrate our #PostgreSQL -based database systems to a custom implementation of #Cassandra . This allows us to integrate our product data perfectly in a system that just makes sense. High availability and scalability are supported out of the box.
We wanted a JSON datastore that could save the state of our bioinformatics visualizations without destructive normalization. As a leading NoSQL data storage technology, MongoDB has been a perfect fit for our needs. Plus it's open source, and has an enterprise SLA scale-out path, with support of hosted solutions like Atlas. Mongo has been an absolute champ. So much so that SQL and Oracle have begun shipping JSON column types as a new feature for their databases. And when Fast Healthcare Interoperability Resources (FHIR) announced support for JSON, we basically had our FHIR datalake technology.
In the field of bioinformatics, we regularly work with hierarchical and unstructured document data. Unstructured text data from PDFs, image data from radiographs, phylogenetic trees and cladograms, network graphs, streaming ECG data... none of it fits into a traditional SQL database particularly well. As such, we prefer to use document oriented databases.
MongoDB is probably the oldest component in our stack besides Javascript, having been in it for over 5 years. At the time, we were looking for a technology that could simply cache our data visualization state (stored in JSON) in a database as-is without any destructive normalization. MongoDB was the perfect tool; and has been exceeding expectations ever since.
Trivia fact: some of the earliest electronic medical records (EMRs) used a document oriented database called MUMPS as early as the 1960s, prior to the invention of SQL. MUMPS is still in use today in systems like Epic and VistA, and stores upwards of 40% of all medical records at hospitals. So, we saw MongoDB as something as a 21st century version of the MUMPS database.
Pros of Oracle
- Reliable44
- Enterprise33
- High Availability15
- Hard to maintain5
- Expensive5
- Maintainable4
- Hard to use4
- High complexity3
Pros of ScyllaDB
- Replication2
- Fewer nodes1
- Distributed1
- Scale up1
- High availability1
- Written in C++1
- High performance1
Sign up to add or upvote prosMake informed product decisions
Cons of Oracle
- Expensive14