Apache Cassandra
PostgreSQL
Apache Cassandra | PostgreSQL | |
---|---|---|
41 | 517 | |
9,341 | 18,348 | |
1.0% | 2.3% | |
9.9 | 10.0 | |
4 days ago | 7 days ago | |
Java | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Apache Cassandra
-
PostgreSQL Maximalism
Alternatives to: DuckDB, Apache Cassandra, Amazon RedShift, Google BigQuery, Snowflake, InfluxDB, Prometheus, Amazon Timestream
-
Twitter's 600-Tweet Daily Limit Crisis: Soaring GCP Costs and the Open Source Fix Elon Musk Ignored
Cassandra: Cassandra is a highly scalable and fault-tolerant NoSQL database. It is designed to handle large amounts of data across multiple commodity servers, making it suitable for high-availability and data-intensive applications.
-
Exploring the Journey of Apache Cassandra: Innovation, Funding, and Community Impact
Apache Cassandra’s design is centered around a powerful combination of decentralisation and horizontal scalability. Distributed evenly across numerous nodes, its architecture minimizes risks associated with hardware failures while ensuring high availability. Developers benefit from its flexibility in handling read and write operations, making it a robust solution for real-time data processing. For a deeper technical dive and ongoing contributions, developers and stakeholders can visit the Apache Cassandra GitHub repository. The platform’s continuous evolution is fueled by a vibrant community that is as passionate about innovation as it is about maintaining technological excellence. The success of Apache Cassandra also prompts comparisons with emerging funding models, such as those seen in blockchain and NFT projects like the World of Women NFT Collection. Although these token-based funding models are relatively novel, the fundamental principle of community-driven sustainability is a shared hallmark with Apache Cassandra’s approach.
-
Concurrency bugs in Lucene: How to fix optimistic concurrency failures
We have something very similar[1] we use in the Apache Cassandra project to test complex cluster behaviours.
We use exactly the same basic technique, using byte weaving to intercept concurrency primitives such as synchronized, LockSupport etc to pause the system thread and run them on some schedule.
We only currently run (deterministic) probabilistic traces though, we can’t search a thread interleaving space.
I have been meaning to publish it for broader consumption for years now, but there’s always something more important to do. It’s great to see some dedicated efforts in this space.
[1] https://github.com/apache/cassandra/tree/trunk/test/simulato...
-
Visualizing the Apache Cassandra Token Ring with Plotly
Cassandra uses Murmur3, a hashing function that generates 64-bit tokens in the range of [−263,263−1][-2^{63},2^{63} - 1] [−263,263−1] . Each vnode in the cluster assigned a token it is responsible for. The token marks the end of a range, and the previous token defines the start. To visualize the token ring, we first need to calculate the token ranges, by:
-
System Design: Databases and DBMS
Apache Cassandra
-
How to Choose the Right MQTT Data Storage for Your Next Project
Apache Cassandra{:target="_blank"} is a highly scalable and fault-tolerant database that can handle large volumes of data across multiple nodes or clusters. It provides fast read and write operations, making it suitable for real-time analytics or applications with high throughput requirements.
- 10+ Open-Source Projects For Web Developers In 2023
-
Database 101: Data Consistency for Beginners
Wide Column: Apache Cassandra, ScyllaDB and DynamoDB
-
In One Minute : Hadoop
Cassandra, a replicated, fault-tolerant, decentralized and scalable database system.
PostgreSQL
-
How to Securely Connect to Medusa.js Production Database on AWS?
You're minding your own business, managing AWS infrastructure for a client with a pretty standard e-commerce setup: a Medusa.js backend, a Next.js storefront, and most importantly for this story, a PostgreSQL RDS instance safely stashed away in a private subnet where nothing from the outside world can touch it. Exactly how the AWS gods intended.
-
Is Your Fraud Screening Process Ignoring Local Patterns?
Your Database: This is your system's memory. It can be a fast in-memory store like Redis for temporary data (perfect for velocity checks) or a persistent relational database like PostgreSQL for long-term data (like blacklists).
-
High Availability Postgres
#! /bin/bash set -ex IMG=postgres/test-0.0.1 IMG_ID=`docker images ${IMG} -q` PG_TAG=REL_18_BETA1 if [ "${IMG_ID}" = "" ]; then if [ ! -d "postgres-${PG_TAG}" ]; then wget https://github.com/postgres/postgres/archive/refs/tags/${PG_TAG}.tar.gz && tar -xzf ${PG_TAG}.tar.gz fi ID=991 USR=postgres USR_HOME=/home/postgres cat > Dockerfile << EOF FROM ubuntu:latest RUN groupadd -g ${ID} ${USR} && useradd -r -u ${ID} -g ${USR} ${USR} ADD postgres-${PG_TAG} ${USR_HOME} WORKDIR ${USR_HOME} RUN chown -R ${USR}:${USR} ${USR_HOME} RUN apt-get update && apt-get install -y g++ zlib1g-dev make curl tar gzip perl liblz4-dev libreadline-dev flex bison libicu-dev liburing-dev RUN apt-get install --reinstall -y pkg-config && ./configure --with-liburing --enable-debug --with-lz4 && make -j4 && make all && make install RUN echo "export PATH=/usr/local/pgsql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /etc/bash.bashrc && \ chown -R ${USR}:${USR} /usr/local/pgsql USER ${USR} EOF docker build -t ${IMG}:latest . rm Dockerfile rm -rf postgres-${PG_TAG} ${PG_TAG}.tar.gz else echo "Image ${IMG} already exists with ID ${IMG_ID}" fi
-
Why did I build a transparent, account-free, open-source URL shortener?
Choosing the database was straightforward: PostgreSQL. I have the most experience with it, very easy to spin up, has a lot of trust and is open-source (I guess the last two come hand-in-hand).
-
Left to Right Programming: Programs Should Be Valid as They Are Typed
I was explaining why it is the way that it is. If you'd like your own version of a parser, here's Postgres' [0]. Personally, I really like SQL's syntax and find that it makes sense when reading it.
[0]: https://github.com/postgres/postgres/tree/master/src/backend...
-
Turning PostgreSQL into GraphQL: Lessons from the Field
If you’ve never tried PostgreSQL before, the official site is a great starting point: PostgreSQL: The world’s most advanced open source database.
-
pg_dphyp: teach PostgreSQL to JOIN tables in a different way
/* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L3375 */ void final_cost_nestloop(PlannerInfo *root, NestPath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ } /* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L3873 */ void final_cost_mergejoin(PlannerInfo *root, MergePath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ } /* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L4305 */ void final_cost_hashjoin(PlannerInfo *root, HashPath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ }
-
NestJS Multi-tenancy API Key Authorization
PostgreSQL as database
-
Strategies for Fast Lexers
> As introduced in the previous chapters, all identifers are hashed, thus we can also hash the known keywords at startup and make comparing them very fast.
One trick that postgres uses [1][2] is perfect hashing [3]. Since you know in advance what your keywords are, you can design such hashing functions that for each w(i) in list of i keywords W, h(w(i)) = i. It essentially means no collisions and it's O(i) for the memory requirement.
[1] https://github.com/postgres/postgres/blob/master/src/tools/P...
[2] https://github.com/postgres/postgres/blob/master/src/tools/g...
[3] https://en.wikipedia.org/wiki/Perfect_hash_function
-
Create ER Diagrams for PostgreSQL with a Free Design Tool
Understanding a database starts with understanding its structure. For PostgreSQL users, one of the most effective ways to visualize and manage your schema is by using an Entity-Relationship Diagram (ERD). Either if you're working with a large legacy database or starting something new, an ER diagram shows how your tables are connected and how your data is organized.
What are some alternatives?
Apache HBase - Apache HBase
ClickHouse - ClickHouse® is a real-time analytics database management system
OpenTSDB - A scalable, distributed Time Series Database.
MySQL - MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.
Druid - Apache Druid: a high performance real-time analytics database.
Firebird - FB/Java plugin for Firebird