作者: Smith

24 篇文章

理解 FLP-Impossibility 论文
FLP 这篇论文在分布式领域有着重要的作用,当然,这篇文章也写得晦涩难懂。这是第一篇我死扣每个字读下来的分布式论文,十分吃力,在此记录下,并且竟可能写的简单,希望能够帮助初入分布式计算的新人们够更加容易理解 FLP 论文。当然再怎么简单,数学的符号是跑不了的,但是不要害怕,一个一个字看下来即可。 论文原文的名字叫:Impossibility of …
理解 TCP
此文章仅为笔记,不推荐大家观看。 TCP Header 上面每一个方格代表 8 位,所以序列号有 4x8 = 32 位 源端口,目标端口:TCP 里面不包含 IP 地址,因为那是网络层(IPv4)应该干的事情。TCP 通过源 IP,端口,目标 IP,端口 4 个特征标识一个 TCP 连接。本地向远程80端口发起请求时,本地的端口是随机申请的。序列号…
网络层
路由的转发和选择 上图中的 router 具有截断的协议栈,即不会有网络层以上的东西。意思就是,网络层只处理网络层的东西,不会管上面例如运输层的任何东西。 转发(forwarding):将一个 packet 从一个输入链路转发到另外一个输出链路。 路由选择(routing):就是转发的时候选择哪一条线路,里面涉及到 routing algorith…
链路层和局域网
链路层特性 Framing,链路层发送的所有数据以帧的形式发送。Link access,链路一端只有一个发送方,另一端只有一个接收方。Reliable delivery,看协议的,有些协议通过确认和重传确保可靠,有些发现帧有问题就直接丢弃。差错检测和纠正:使用校验码来操作。 差错检测和纠正 奇偶校验:能发现错,不能纠正(不保证一定能发现错)。二维偶…
操作系统并发
Terms Critical section: piece of code that accesses a shared resource.Race condition: 多个线程同时进去 critical section。Indeterminate:指程序在多线程情况下,程序结果不唯一。Mutual exclusion:排他。 Locks Eva…
操作系统内存
文章自看。 Address Spaces 一个程序在内存中占用的空间叫 address space。例如下面: 这个 address space 被简化过了。包含了 program code (固定大小),heap(动态申请的空间,例如 malloc() 函数申请的)和 stack(函数内的局部变量)。 每个程序都认为自己是从内存地址 0 开始的(…
CPU scheduling policies
CPU Scheduling Policies 调度算法 本文只写给自己,所以比较粗糙。 调度衡量指标 Turnaround time Turnaround time = 任务完成时间-任务到达时间$$T_{turnaround} = T_{completion} - T_{arrival}$$Response time 如果通过 turnarou…
用 Java 实现一个可用的布隆过滤器(Bloom Filter)
布隆过滤器可以使用极少的空间来判断一个元素是否存在某一个集合中,本文不具体讨论布隆过滤器的原理,而是探讨如何实现一个可用的布隆过滤器。 实现源代码:https://github.com/Smith-Cruise/java-bloom-filter 本文代码提取自 Apache ORC 项目。 基本概念 这里附带一些链接,适合不了解布隆过滤器的人阅读…
HTrace 与 Zipkin 简单教程
最近阅读 HDFS 的源码,看到在 DFSClient 中很多地方用到了 HTrace 这款框架,所以特意学习下。 HTrace 是一款由 Cloudera 开发的分布式追踪框架,在设计上借鉴了 Google 的 Dapper 论文,虽然 HTrace 已经停止了更新,在 Apache 里面孵化失败了,但是它现在任然被 Hadoop 和 HBase…