西维蜀黍

【Linux】ln - 硬链接与软链接

背景

在介绍链接的概念之前,我们需要先Unix/Linux文件系统和硬盘储存的基础概念。

  ...


【Distributed System】分布式系统的数据一致性(Data Consistency)

什么是数据一致性(Data Consistency)

**数据一致性(Data Consistency)**其实是数据库系统中的概念。我们可以简单地把一致性理解为正确性或者完整性。

数据库事务(Database Transaction)

我们知道,在数据库系统中通常用事务来保证数据的一致性和完整性。

数据库事务,核心是数据库ACID(原子性、一致性、隔离性和持久性)属性。即对于一个数据库事务中所有的逻辑处理操作,只有这些作用在数据库上的逻辑处理操作全部都成功时,对数据库的修改才会永久更新到数据库中。若存在任何一个操作失败,对于在此之前的所有逻辑操作都会失效(即该事务被回滚)。

  ...


【Distributed System】分布式事务 - 三阶段提交协议(Three-phase Commit Protocol)

三阶段提交协议(Three-phase Commit Protocol)

In computer networking and databases, the three-phase commit protocol (3PC) is a distributed algorithm which lets all nodes in a distributed system agree to commit a transaction. It is a more failure-resilient refinement of the two-phase commit protocol (2PC).

  ...


【Distributed System】分布式事务 - 两阶段提交协议(Two-phase Commit Protocol)

The two-phase commit (2PC) protocol should not be confused with the two-phase locking (2PL) protocol, a concurrency control protocol.

两阶段提交协议(Two-phase Commit Protocol,2PC)

In transaction processing, databases, and computer networking, the two-phase commit protocol (2PC) is a type of atomic commitment protocol (ACP). It is a distributed algorithm that coordinates all the processes that participate in a distributed atomic transaction on whether to commit or abort (roll back) the transaction (it is a specialized type of consensus protocol). The protocol achieves its goal even in many cases of temporary system failure (involving either process, network node, communication, etc. failures), and is thus widely used.

However, it is not resilient to all possible failure configurations, and in rare cases, manual intervention is needed to remedy an outcome. To accommodate recovery from failure (automatic in most cases) the protocol’s participants use logging of the protocol’s states. Log records, which are typically slow to generate but survive failures, are used by the protocol’s recovery procedures. Many protocol variants exist that primarily differ in logging strategies and recovery mechanisms. Though usually intended to be used infrequently, recovery procedures compose a substantial portion of the protocol, due to many possible failure scenarios to be considered and supported by the protocol.

In a “normal execution” of any single distributed transaction (i.e., when no failure occurs, which is typically the most frequent situation), the protocol consists of two phases:

  1. The prepare phase (or voting phase), in which a coordinator process attempts to prepare all the transaction’s participating processes (named participants, cohorts, or workers) to take the necessary steps for either committing or aborting the transaction and to vote,
    • either “Yes”: commit (if the transaction participant’s local portion execution has ended properly),
    • or “No”: abort (if a problem has been detected with the local portion), and
  2. The commit phase, in which, based on voting of the participants, the coordinator decides whether to commit (only if all have voted “Yes”) or abort the transaction (otherwise), and notifies the result to all the participants. The participants then follow with the needed actions (commit or abort) with their local transactional resources (also called recoverable resources; e.g., database data) and their respective portions in the transaction’s other output (if applicable).
  ...


【Distributed System】分布式理论 - BASE

BASE理论

eBay 的架构师 Dan Pritchett 源于对大规模分布式系统的实践总结,在 ACM 上发表文章提出 BASE 理论,BASE 理论是对 CAP 理论的延伸,核心思想是:即使无法做到强一致性(Strong Consistency),CAP 的一致性就是强一致性),但每个应用都可以根据自身的业务特点,采用适合的方式来达到最终一致性(Eventual Consitency)

  ...