学习TLA+(三)
这本书的第四章,讲述了如何描述一个 FIFO。
这本书的第四章,讲述了如何描述一个 FIFO。
第三章,讲述了如何描述一个异步接口。
最近在读Raft这篇关于分布式系统一致性算法的论文。作者采用了TLA+语言来描述Raft的规范。像英语、汉语这样的自然语言,很难很精确的描述一个系统得行为。大牛Leslie Lamport发明了TLA,通过时序逻辑方程来描述系统。TLA为描述系统提供了数学基础,而TLA+是构建在TLA上的一个完备的描述语言。
这本书的第四章,讲述了如何描述一个 FIFO。
第三章,讲述了如何描述一个异步接口。
最近在读Raft这篇关于分布式系统一致性算法的论文。作者采用了TLA+语言来描述Raft的规范。像英语、汉语这样的自然语言,很难很精确的描述一个系统得行为。大牛Leslie Lamport发明了TLA,通过时序逻辑方程来描述系统。TLA为描述系统提供了数学基础,而TLA+是构建在TLA上的一个完备的描述语言。
最近在搭建并使用kubemark来做测试的过程中,碰到了一个etcd报错”etcdserver: mvcc: database space exceeded”问题,本文记录了出现了这种问题后如何对etcd进行恢复。
boltdb是一个轻量级的、嵌入式的golang原生key-value DB,在etcd中作为存储后端使用。它使用了b+树、mmap、copy on write等技术,支持读写事物。本文将结合技术原理和内部实现来分析boltdb。
本文记录对google开源的golang版本的B树的实现的分析。该B树的实现,被用在etcd中,来做内存索引。
Recently, I have to build a disaster recovery service to backup and restore critical data in our productions. Simply speaking, this service needs to: do ...
Recently, I have implemented rsync algorithm in golang. It is an interesting algorithm to remotely sync data. In this post, I’ll make a introduction about ...
本文记录对google开源的golang版本的B树的实现的分析。该B树的实现,被用在etcd中,来做内存索引。
boltdb是一个轻量级的、嵌入式的golang原生key-value DB,在etcd中作为存储后端使用。它使用了b+树、mmap、copy on write等技术,支持读写事物。本文将结合技术原理和内部实现来分析boltdb。
最近在使用ceph的iSCSI driver时,发现一些存储相关的术语让人很困惑,也不清楚背后的技术。这篇文章记录了一些调研结果。
pprof是golang内置的性能调优工具,可以分析: 内存使用情况 CPU使用情况 go routine阻塞情况 互斥锁使用情况 等。同时,1.11版本以后,它集成了go-torch的功能,可以将这些profile可视化,让结果更直观。
本文记录一些linux平台很好用的性能指标收集和分析工具。以下命令皆运行在ubuntu 16.04上。
本文记录一些linux平台很好用的性能指标收集和分析工具。以下命令皆运行在ubuntu 16.04上。