用 Java 实现一个可用的布隆过滤器(Bloom Filter)
布隆过滤器可以使用极少的空间来判断一个元素是否存在某一个集合中,本文不具体讨论布隆过滤器的原理,而是探讨如何实现一个可用的布隆过滤器。 本文代码提取自 Apache ORC 项目。 基本概念 这里附带一些链接,适合…
“This is the way”
“This is the way”
布隆过滤器可以使用极少的空间来判断一个元素是否存在某一个集合中,本文不具体讨论布隆过滤器的原理,而是探讨如何实现一个可用的布隆过滤器。 本文代码提取自 Apache ORC 项目。 基本概念 这里附带一些链接,适合…
最近阅读 HDFS 的源码,看到在 DFSClient 中很多地方用到了 HTrace 这款框架,所以特意学习下。 HTrace 是一款由 Cloudera 开发的分布式追踪框架,在设计上借鉴了 Google 的 Dapper 论文,虽然 HTrace 已经停止了更…
最近阅读 Hadoop 的源码,看到各种动态代理,打算学习下。虽然以前也学过,但是感觉就是死记硬背的代码,有些地方根本不懂。温习了一遍网上 JDK 动态代理的教程后,自己尝试再一次死记硬背的写一写,结果错误百出。…
最近阅读 Hadoop 源码,使用 IDEA 打开 Hadoop,正常导入 maven 依赖后,发现某些类里面总是会报各种类不存在的错误,如下图: 一开始以为是因为我配置了国内 maven 镜像仓库,然后国内镜像仓库里面某些 jar 包没有…
Introduction Log-Structured File System (LFS)发明的背景就是建立在 CPU 高速发展,磁盘读取写入速度极速发展,单位内存越来越便宜,而磁盘的寻道耗时(受限于物理因素,快不起来)没有什么进步的情况下。 LFS …
Fast File System(FFS)一个具有里程碑意义的文件系统。它没有修改上层调用的 API,例如( open(), read(), write() 等等),而修改了内部实现,提升文件系统的效率。基本此后所有的文件系统都基于这种模式进行开…
介绍 Amdahl’s law(阿姆达尔定律) 由计算机科学家 Gene Amdahl 在 1967 年提出,旨在用公式描述在并行计算中,多核处理器理论上能够提高多少倍速度,公式如下: SS 为 speedup,代表全局加速倍速(原来总时…
在分布式系统中,我们在阅读关于事务一致性的论文中,经常会看到 partial ordering 和 global ordering。这里简单的说明下。 Partial ordering 部分有序。指在一系列的事件中,只保证部分的事件按照一定的顺序进行…
原文地址: 因为自己使用 Proxmox 进行开发,需要频繁的创建删除虚拟机,所以制作 cloud-init 模板来方便虚拟机的创建。 这里我没有…
Lamport 逻辑时钟(Lamport Timestamp) Lamport Timestamp 是一种衡量时间和因果关系的方法。现实生活中,很多程序都有着因果(causality)关系,比如执行完事件 A 后才能执行事件 B。 比如上面的代码,我只有创建…