Need advice about which tool to choose?Ask the StackShare community!

Couchbase

496
599
+ 1
110
ScyllaDB

131
182
+ 1
8
Add tool

Couchbase vs Scylla: What are the differences?

Introduction

In this article, we will discuss the key differences between Couchbase and Scylla, two popular database systems. Both Couchbase and Scylla offer high performance and scalability, but they have distinct features and use cases that set them apart.

  1. Data Model: One major difference between Couchbase and Scylla lies in their data models. Couchbase is a document-oriented database that stores data in JSON-like documents. This flexibility allows for dynamic schemas and easy handling of complex data structures. On the other hand, Scylla is a column-oriented database that stores data in tables with rows and columns resembling relational databases. This structure provides efficient storage and retrieval for large quantities of data with a predefined schema.

  2. Consistency Model: Couchbase and Scylla also differ in their consistency models. Couchbase offers strong consistency, ensuring that all clients see the same data at the same time. This is important for applications where data integrity is critical. In contrast, Scylla provides eventual consistency, where updates to data may take some time to propagate to all replicas. This makes Scylla suitable for systems that prioritize high availability and low latency over strict consistency.

  3. Data Distribution: Another key difference is how Couchbase and Scylla distribute data across their clusters. Couchbase employs a distributed hash table (DHT) approach, commonly known as consistent hashing. It evenly distributes data across multiple nodes in the cluster, providing automatic sharding and load balancing. On the other hand, Scylla uses a partitioned row store (Paxos) algorithm to distribute data. This algorithm ensures fault tolerance and linear scalability while maintaining data locality for optimal performance.

  4. Query Language: Couchbase and Scylla also vary in their query languages. Couchbase uses N1QL (pronounced as "nickel"), a SQL-like query language that provides easy ad hoc querying and analytics capabilities. N1QL supports complex joins, filtering, and aggregation for flexible data retrieval. In contrast, Scylla uses CQL (Cassandra Query Language), which is similar to SQL but designed specifically for Cassandra and Scylla. CQL offers a simplified query syntax and supports basic CRUD operations.

  5. Secondary Indexing: Couchbase and Scylla handle secondary indexing differently. In Couchbase, secondary indexes are automatically maintained by the database, allowing for efficient querying on non-primary key attributes. This makes it easy to add, update, or remove indexes without impacting the application's performance. Scylla, however, does not natively support secondary indexes. Instead, it encourages denormalization and materialized views to optimize queries for different use cases.

  6. Storage Engine: Lastly, Couchbase and Scylla use different storage engines. Couchbase utilizes a memory-centric storage engine called Memory-First Architecture (MFA). This engine prioritizes data in-memory for fast access and leverages disk storage for persistence and durability. Scylla, on the other hand, uses its own storage engine called ScyllaDB. It is built from scratch, utilizing the Seastar framework and leveraging the power of C++ to deliver high performance and low latency.

In Summary, Couchbase and Scylla differ in terms of their data models, consistency models, data distribution methods, query languages, secondary indexing approaches, and storage engines. These differences stem from their design philosophies, making them suitable for different use cases and workloads.

Advice on Couchbase and ScyllaDB
Needs advice
on
CouchbaseCouchbase
and
MongoDBMongoDB

We Have thousands of .pdf docs generated from the same form but with lots of variability. We need to extract data from open text and more important - from tables inside the docs. The output of Couchbase/Mongo will be one row per document for backend processing. ADOBE renders the tables in an unusable form.

See more
Replies (3)
Petr Havlicek
Freelancer at havlicekpetr.cz · | 12 upvotes · 193.5K views
Recommends
on
MongoDBMongoDB

I prefer MongoDB due to own experience with migration of old archive of pdf and meta-data to a new “archive”. The biggest advantage is speed of filters output - a new archive is way faster and reliable then the old one - but also the the easy programming of MongoDB with many code snippets and examples available. I have no personal experience so far with Couchbase. From the architecture point of view both options are OK - go for the one you like.

See more
Ivan Begtin
Director - NGO "Informational Culture" / Ambassador - OKFN Russia at Infoculture · | 7 upvotes · 193.6K views
Recommends
on
ArangoDBArangoDB

I would like to suggest MongoDB or ArangoDB (can't choose both, so ArangoDB). MongoDB is more mature, but ArangoDB is more interesting if you will need to bring graph database ideas to solution. For example if some data or some documents are interlinked, then probably ArangoDB is a best solution.

To process tables we used Abbyy software stack. It's great on table extraction.

See more
OtkudznamDamir Radinović-Lukić
Recommends
on
LinuxLinux

If you can select text with mouse drag in PDF. Use pdftotext it is fast! You can install it on server with command "apt-get install poppler-utils". Use it like "pdftotext -layout /path-to-your-file". In same folder it will make text file with line by line content. There is few classes on git stacks that you can use, also.

See more
Vinay Mehta
Needs advice
on
CassandraCassandra
and
ScyllaDBScyllaDB

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.

See more
Replies (4)
Recommends
on
ScyllaDBScyllaDB

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

See more
Alex Peake
Recommends
on
CassandraCassandra

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.

See more
Recommends
on
ScyllaDBScyllaDB

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.

See more
Pankaj Soni
Chief Technical Officer at Software Joint · | 2 upvotes · 144.7K views
Recommends
on
CassandraCassandra

i love syclla for pet projects however it's license which is based on server model is an issue. thus i recommend cassandra

See more
Decisions about Couchbase and ScyllaDB
Tom Klein

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.

See more
Gabriel Pa

We implemented our first large scale EPR application from naologic.com using CouchDB .

Very fast, replication works great, doesn't consume much RAM, queries are blazing fast but we found a problem: the queries were very hard to write, it took a long time to figure out the API, we had to go and write our own @nodejs library to make it work properly.

It lost most of its support. Since then, we migrated to Couchbase and the learning curve was steep but all worth it. Memcached indexing out of the box, full text search works great.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Couchbase
Pros of ScyllaDB
  • 18
    High performance
  • 18
    Flexible data model, easy scalability, extremely fast
  • 9
    Mobile app support
  • 7
    You can query it with Ansi-92 SQL
  • 6
    All nodes can be read/write
  • 5
    Equal nodes in cluster, allowing fast, flexible changes
  • 5
    Both a key-value store and document (JSON) db
  • 5
    Open source, community and enterprise editions
  • 4
    Automatic configuration of sharding
  • 4
    Local cache capability
  • 3
    Easy setup
  • 3
    Linearly scalable, useful to large number of tps
  • 3
    Easy cluster administration
  • 3
    Cross data center replication
  • 3
    SDKs in popular programming languages
  • 3
    Elasticsearch connector
  • 3
    Web based management, query and monitoring panel
  • 2
    Map reduce views
  • 2
    DBaaS available
  • 2
    NoSQL
  • 1
    Buckets, Scopes, Collections & Documents
  • 1
    FTS + SQL together
  • 2
    Replication
  • 1
    Fewer nodes
  • 1
    Distributed
  • 1
    Scale up
  • 1
    High availability
  • 1
    Written in C++
  • 1
    High performance

Sign up to add or upvote prosMake informed product decisions

Cons of Couchbase
Cons of ScyllaDB
  • 3
    Terrible query language
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is Couchbase?

    Developed as an alternative to traditionally inflexible SQL databases, the Couchbase NoSQL database is built on an open source foundation and architected to help developers solve real-world problems and meet high scalability demands.

    What is ScyllaDB?

    ScyllaDB is the database for data-intensive apps that require high performance and low latency. It enables teams to harness the ever-increasing computing power of modern infrastructures – eliminating barriers to scale as data grows.

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Couchbase?
    What companies use ScyllaDB?
    See which teams inside your own company are using Couchbase or ScyllaDB.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Couchbase?
    What tools integrate with ScyllaDB?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Couchbase and ScyllaDB?
    MongoDB
    MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
    CouchDB
    Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce indexes, and regular HTTP for its API. CouchDB is a database that completely embraces the web. Store your data with JSON documents. Access your documents and query your indexes with your web browser, via HTTP. Index, combine, and transform your documents with JavaScript.
    Cassandra
    Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.
    Redis
    Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams.
    HBase
    Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Apache Hadoop.
    See all alternatives