A Quick Guide to Secondary Indexes in YugabyteDB
YugabyteDB database has consistent, high-performance secondary indexes—built on top of distributed ACID transactions—to help retrieve data.
YugabyteDB database has consistent, high-performance secondary indexes—built on top of distributed ACID transactions—to help retrieve data.
First-generation NoSQL databases dropped ACID guarantees with the rationale that such guarantees are needed only by old-school enterprises running monolithic, relational applications in a single private data center. And the premise was that modern distributed apps should instead focus on linear database scalability along with low latency, mostly-accurate, single-key-only operations on shared-nothing storage (e.g. those provided by the public clouds).
Application developers who blindly accept the above reasoning are not serving their organizations well.
…
Learn the basics of database storage engines, incl. B-tree and LSM tree based storage engines that are popular in the context of modern distributed cloud apps
In the first post of this two-part series, we learned about the B-tree vs LSM approach to index management in operational databases. While the indexing algorithm plays a fundamental role in determining the type of storage engine needed, advanced considerations highlighted below are equally important to consider.
Monolithic databases, which are primarily relational/SQL in nature, support strong consistency and ACID transactions.
…
Modern user-facing apps, like E-Commerce and SaaS, frequently require features from multiple databases (broadly — SQL, NoSQL and a cache) to support their multi-workload needs. App developers are responsible for understanding and managing which pieces of data should be stored in which SQL and NoSQL database. Furthermore, the app is also responsible for moving data across the tiers (e.g. populating the cache on reads and invalidating it on writes). This greatly increases development and operational complexity,
…
ACID transactions are a fundamental building block when developing business-critical, user-facing applications. They simplify the complex task of ensuring data integrity while supporting highly concurrent operations. While they are taken for granted in monolithic SQL/relational databases, distributed NoSQL/non-relational databases either forsake them completely or support only a highly restrictive single-row flavor (see sections below). This loss of ACID properties is usually justified with a gain in performance (measured in terms of low latency and/or high throughput).
…
Kubernetes, the open source container orchestration engine that originated from Google’s Borg project, has seen some of the most explosive growth ever recorded in an open source project. The complete software development lifecycle involving stateless apps can now be executed in a more consistent, efficient and resilient manner than ever before. However, the same is not true for stateful apps — containers are inherently stateless and Kubernetes did not do anything special in the initial days to change that.
…
MongoDB’s sharding and replication have improved since it was first an AP database, but it still has limitations for highly scalable and latency-sensitive apps. In this blog, the authors discuss why users switch to YugabyteDB due to distributed ACID transactions and improved scalability.
One of our users was interested to learn more about YugabyteDB’s behavior for a random read workload where the data set does not fit in RAM and queries need to read data from disk (i.e. an uncached random read workload).
The intent was to verify if YugabyteDB was designed well to handle this case with the optimal number of IOs to the disk subsystem.
This post is a sneak peak into just one of the aspects of YugabyteDB’s innovative storage engine,
…
YugabyteDB’s compatibility with the Redis API enhances data replication and consistency, offering a ‘unified cache + database’ solution. It simplifies data sharding, supports large datasets without full memory reliance, and provides polyglot persistence for diverse workloads.