Deuterium
ddia, Distributed Data (Part 4): Troubles ddia, Distributed Data (Part 4): Troubles
这篇文章是ddia第八章的阅读笔记。 0x00 Intro 所有可能出错的地方一定会出错。 这篇文章来讲讲,分布式系统中会出现哪些错误。 知道会有什么错误,才能知道如何去解决。 0x01 Faults and Partial Fail
2020-07-27
ddia, Distributed Data (Part 3): Transactions ddia, Distributed Data (Part 3): Transactions
这篇文章是ddia第七章的阅读笔记。 0x00 Intro 在一个系统中有很多可能出错的地方。 为了提高系统的可靠性,需要好好处理那些可能的错误。 事务(transaction)就是一个首选的机制。 这篇文章里主要看看事务。 0x01
2020-07-23
csapp ch03 (part 5): Combining Control and Data csapp ch03 (part 5): Combining Control and Data
这篇文章是csapp第三章第10节的阅读笔记。 0x00 指针 每一个指针都有对应的类型。不过指针类型不包含在汇编代码中,而是C对程序员提供的一种抽象; 每一个指针都有值。这个值就是某个对象的地址,特殊的值NULL (0)表明这个指针不
2020-06-19
csapp ch03 (part 4): Data Structures csapp ch03 (part 4): Data Structures
这篇文章是csapp第三章第8和第9节的阅读笔记。 接下来,从汇编代码的角度来看看C语言中数据结构的实现。 0x00 Array先看看数组。 1.1 基本规则对于具有N个类型T的元素的数组来说,C语言中是这么声明的: T A[N]; 令
2020-06-15
csapp ch03 (part 3): Procedures csapp ch03 (part 3): Procedures
这篇文章是csapp第七节的阅读笔记 0x00 运行时栈过程(procedures)是一个非常重要的抽象,它隐藏了一部分实现细节,对外提供一个功能。 在程序中的任何地方都可以随时调用这个过程,得到结果后继续执行。 也叫函数(functi
2020-06-12
csapp ch03 (part 2): Control csapp ch03 (part 2): Control
这篇文章是csapp第三章第六节的阅读笔记。 0x00 条件码控制语句需要进行条件判断,根据不同的判断值进行不同的操作。 这里涉及到的主要指令就是JUMP了。 不过在跳转之前,先看看如何来判断条件。 这就是条件码(Condition C
2020-06-10
csapp ch03 (part 1): Program Encoding and Basic Instructions csapp ch03 (part 1): Program Encoding and Basic Instructions
这篇文章是csapp第三章前五节的阅读笔记。 0x00 程序编码对于两个C程序,可以通过如下的方式编译: gcc -Og -o p p1.c p2.c 其中-Og选项告诉编译器不进行优化,直接根据C代码生成对应的汇编代码。 给出下面的C
2020-06-08
ddia, Distributed Data (Part 2): Partitioning ddia, Distributed Data (Part 2): Partitioning
这篇文章是ddia第六章的阅读笔记。 0x00 Pre 第五章的复制有一个假设,数据副本可以在一台机器上存储。 如果不行的话,就需要将一个副本放在多个机器上了。 这就是分区(partitions),也叫分片(sharding)。 分区
2020-06-06
ddia, Distributed Data (Part 1): Replication ddia, Distributed Data (Part 1): Replication
这篇文章是ddia第五章的阅读笔记。 0x00 Pre 前面的部分都是在一台机器上。 出于一些原因,需要将数据复制到多台机器上: 就近部署:降低延迟; 高可用性:一台出故障系统仍可用; 高吞吐量:多台机器可以提高吞吐量。 一个假设
2020-06-04
ddia, Foundations of Data Systems (Part 3): Encoding and Evolution ddia, Foundations of Data Systems (Part 3): Encoding and Evolution
这篇文章是ddia第四章的阅读笔记。 Everything changes and nothing stands still. 0. Pre 需求总是在变。上层程序变了,那么下层的数据库就有可能变。 要么加字段、删字段,要么使用新
2020-06-01
ddia, Foundations of Data Systems (Part 2): Storage and Retrieval ddia, Foundations of Data Systems (Part 2): Storage and Retrieval
这篇文章是ddia第三章的阅读笔记。 0. Pre 数据库的功能简单来说就是两个: 插入数据时,数据库保存数据; 检索时,数据库返回数据。 很简单,但是为了达成这两个目的,数据库需要做好多事情。 这就是这篇文章所要讲述的东西。 即,
2020-05-27
ddia, Foundations of Data Systems (Part 1): Terminology, Approach, Data Models and Query Languages ddia, Foundations of Data Systems (Part 1): Terminology, Approach, Data Models and Query Languages
这篇文章是ddia第一部分数据系统基础中第一章和第二章的阅读笔记。 1. Reliable, Scalable, and Maintainable Applications 应用系统包含的模块: 数据库:用以存储数据,这样应用就可以再
2020-05-25
1 / 2