EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

读写异常

并发操作带来的数据不一致性包括丢失修改(lost update)、不可重复读(non-repeatable read)和读“脏”数据(dirty read)。

丢失修改

两个事务 \(T_1\)\(T_2\) 读入同一数据并修改,\(T_2\) 的提交结果破坏了 \(T_1\) 的提交结果,导致 \(T_1\) 的修改被丢失。

不可重复读

阅读全文 »

一致性是高可用的必备条件

分布式数据库的节点并不总是处于活动状态且相互能够通信的。系统高可用性是分布式数据库一个极其重要的特性。

为了使系统能够高度可用,系统需要被设计成允许一个或多个节点的崩溃或不可访问。

高可用必须要尽可能满足业务连续性数据一致性这两个指标。第三个因素网络分区会对可用性产生影响。

CAP 理论与注意事项

阅读全文 »

摘要

传统的容错分布式事务是在 Paxos 共识协议之上的传统并发控制协议。这种方法提供了可扩展性、可用性和强一致性。然而,当用于广域存储时,这种方法会引发两次跨数据中心的连续协调:一次用于并发控制,然后一次用于共识。在本文中,我们主要观察到并发控制和共识所需的协调高度相似。具体来说,每个都试图确保交易的序列化图是非循环的。我们在 Janus 的设计中利用了这种洞察力,这是一个统一的并发控制和共识协议。 Janus 的目标是编写为存储过程的一次性事务,这是一种常见但受限制的事务类。像 MDCC 和 TAIR 一样,Janus 可以在一次往返中提交此类中的不冲突事务。与 MDCC 和 TAPIR 不同,Janus 避免了由于争用而中止:只要网络运行良好并且每个服务器副本的大多数都处于活动状态,它最多在两次往返中提交此类中的冲突事务。

我们将 Janus 与分层设计和 TAPIR 在此类中的各种工作负载下进行比较。我们的评估表明,在无竞争的微基准测试中,Janus 的吞吐量是分层系统的 5 倍,是 TAPIR 吞吐量的 90%。当工作负载竞争时,Janus 提供比基线低得多的延迟和更高的吞吐量(高达 6.8 倍)。

简介

可扩展、可用且高度一致的分布式事务通常是通过在 Paxos 共识协议复制的数据存储分片之上分层传统并发控制协议来实现的。将数据分片成许多可以由不同服务器存储和服务的小子集提供了可扩展性。尽管服务器出现故障,但通过共识复制每个分片可提供可用性。尽管不同事务的数据访问存在冲突,但使用 USENIX 关联并发控制跨复制分片协调事务可提供强一致性。这种方法在实践中很常用。例如,Spanner 实现了两阶段锁定 (2PL) 和两阶段提交 (2PC),其中数据和锁都由 Paxos 复制。作为另一个例子,Percolator 实现了机会并发控制 (OCC) 的变体,它在 BigTable 之上使用 2PC,它依赖于主备份复制和 Paxos。

阅读全文 »

马克思主义由三个部分组成:马克思主义的哲学即辩证唯物主义和历史唯物主义、马克思主义的政治经济学和科学社会主义学说。

政治经济学是研究生产规律及其发展规律的科学

物质资料的生产是人类社会的基础

物质资料的生产是人类社会存在和发展的基础。

马克思指出,人类社会要进行生产,必须具备三要素:人的劳动、劳动对象和劳动资料。劳动就是劳动力的支出,就是人的脑、肌肉、神经、手等等的生产耗费。劳动对象就是人把自己的劳动加在它上面的东西。劳动资料是使人的劳动和劳动对象联系起来的媒介物。

阅读全文 »

继承

继承机制

基于目标代码的复用。对事物进行分类,派生类是基类的具体化,把事物(概念)以层次结构表示出来,有利于描述和解决问题。

有利于增量开发

单继承

阅读全文 »

本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。

计算机网络概述

计算机网络

  1. 什么是网络?网络是由物体、设备或人组成的错综复杂(intricately)的连接系统
  2. 计算机网络:是网络的一种
    • 目的:共享资源,资源类型比较广泛。
    • 传送的类型是二进制数据流。
  3. 企业也可以构成网络:随着公司的扩张,连接不同站点的网络的需求变得非常重要
  4. 计算机网络标准和规范组成当前计算机网络的形式。

数据网络分类

阅读全文 »

引言

用于实现容错分布式系统的 Paxos 算法一直被认为难以理解,这可能是因为对许多读者来说最初的介绍是希腊语。事实上,它是最简单、最明显的分布式算法之一。 它的核心是一种共识算法—— The part-time parliament 中的“synod”算法。下一节表明,这种共识算法几乎不可避免地遵循我们希望它满足的属性。最后一部分解释了完整的 Paxos 算法,该算法是通过将共识直接应用于构建分布式系统的状态机方法而获得的——这种方法应该是众所周知的,因为它可能是最常见的主题 - 引用的关于分布式系统理论的文章 Time, clocks, and the ordering of events in a distributed system

共识算法

问题

假设一组可以提出值的进程。共识算法可确保选择提议(purposed)值中的一个值。如果没有提议值,则不应选择任何值。如果选择了一个值,那么进程应该能够学习选择的值。共识的安全要求是:

阅读全文 »