Interval tree implementation in Xline
The Reason for Implementing Interval Trees In a recent refactoring of Xline, we identified a performance bottleneck caused by two data structures on the critical path: the Speculative Pool and the Uncommitted Pool. These two data structures are…
Xline command Deduplication Mechanism (II) — RIFL implementation
Member post by DatenLord In the previous article, we started from why we need command deduplication mechanism, introduced the necessity of deduplication and some problems of the current deduplication mechanism of Xline, and explained the working principle of…
Early explorations and practices of Xline, a stateful application managed by Karmada
Member post by DatenLord Background and Motivation More and more IT vendors are now embracing cross-cloud multi-clustering as cloud-native technologies and cloud markets continue to mature. Here’s Flexera’s mid-2023 survey on the cloud-native market’s acceptance of multi-cloud, multi-cluster…
Analysis of Xline Jepsen tests
Member post by DatenLord Table of Contents Abstract In this article, we will mainly introduce the application of Jepsen in the testing of a distributed KV storage Xline. This includes an introduction to the chaos engineering framework Jepsen,…
Xline command deduplication mechanism (part one) — introduction to RIFL
Member post by DatenLord Why is deduplication of commands necessary? In a system that receives external commands, it is common for a command to be executed at least once, which we refer to as at-least-once semantics. If a…
The design and implementation of the Xline persistent storage layer
Guest post by DatenLord Introduction In the early prototype phase of Xline, we used in-memory storage for data persistence. While this simplified the complexity of the Xline prototype design and speeded up the development and iteration of the…
Membership change source code interpretation
Member post originally published on Medium by DatenLord Background In distributed system application scenarios, it is inevitable to add or delete nodes or replace nodes, the simplest solution is to temporarily shut down the cluster, then directly modify…
Member post by DatenLord In the previous article on code interpretation, we briefly explained how the CurpServer of Xline is implemented. Now, let’s delve deeper into some core data structures in the CurpServer, particularly the conflict_checked_channel and command…
Member post by DatenLord In the previous article, An Introduction to the CURP Protocol, we gave a preliminary introduction to the CURP Protocol. Now, let’s continue from where we left off and delve into the internal workings of…
Mechanism and implementation of lease
Member post by Datenlord 1. Introduction Xline is an open source distributed KV storage engine for managing small amounts of critical data, with the aim of high performance data access and strong consistency across data centers. Xline provides…