作者: Smith

35 篇文章

StarRocks Elasticsearch 外表查询源码解析
文章随手写的,有需要的自己看看。 ES 相关概念 index:index 在 es 中不是指索引,其对应数据库中的 table 概念。一个 index 含有多个 document,一个 document 是一个 json。 mapping:针对于 index 来说的,指一个 index 的结构,对应数据库中的 table schema。 mappi…
StarRocks Docker 开发环境搭建指南
因为 StarRocks 源自于 Apache Doris,故 Apache Doris 也可以参考此方案。 StarRocks 分为 FE 和 BE,其中 FE 使用 Java 编写,凭借 JVM,环境其实还算好搭,我个人在 M1 的 MacBook 上也能成功跑起来,具体可以参考 StarRocks FE 在 IDEA 上开发环境设置 这篇文章…
StarRocks FE 在 IDEA 上开发环境设置
最近在公司看 StarRocks 的 FE 源码,经过自己的摸索,终于能在 M1 MacBook 中直接使用 IDEA 运行和 DEBUG 程序,这能极大的提升生产力,故在本文中进行总结,为后人提供参考。 即使你不是用 MacBook,这篇文章也有很大的参考价值,毕竟 MacOS 上都能搞定了,你还怕 Linux 搞不定?Windows 除外。 环…
Bitmap Indexing(位图索引)
Bitmap Indexing 顾名思义,使用位图实现索引。广泛应用于大规模数据查询,OLAP 数据库。 为证明位图索引的优势,下面假设了一张数据表 employee。ID 为员工 ID,自增主键,唯一。Job 只含有 A,B 和 C 三种类型。Sex 则只有男和女两种类型。 IDJobSex1A女2B男3A男4C女 因我们需要频繁的对 emplo…
以后再也不折腾博客了,立帖为证!
这两天折腾了一下,又把博客从 Hexo 换回到了 Wordpress,真的是,何必呢? 我自己接触博客应该是在 2013 年吧,那时候第一个接触的博客程序就是 Wordpress,看我域名的 whois 信息就知道了,2013 年注册,妥妥的传家宝,现在 org 域名连备案号都批不下来。 不过真的开始写博客还是在 2015 年读大学的时候,那时候开…
应届生如何半年找到一份数据库内核开发的工作
匆匆忙忙的春招告一段落了,自己最后也找到了数据库内核方向的工作,希望以后能在数据库领域有一番建树。 在这篇文章中我将我的学习路径贴出来,帮助对这方面有兴趣的人提供一点指南,当然也只是仅供参考。 其实如果按照我的路径学习,我个人觉得可以找的工作不光仅限于数据库这块,像分布式存储,分布式xx,基础架构等都是可以的(不含操作系统)。 个人背景 在开始 g…
Raft 成员变更的相关问题
之前一直没有深入了解过 Raft 的成员变更,实现也就是在 TinyKV 中搞了一个单步成员变更,以至于在面试的时候,甚至想当然以为成员变更一定要被 apply 后才生效,结果就被挂了。故这里重新梳理一遍,内容是到处扒来的,不一定正确。 直接成员变更存在的问题 如果我们把成员变更当做和普通日志一样,在 apply 时直接应用,可能会使得整个集群产生…
分布式原子提交协议大全
在单机上实现原子提交没啥好说了,可以通过 logging 来保证,但是在分布式系统中,情况就不简单。很多人会把 2PC/3PC 这类算法叫做分布式一致性算法,但是我个人觉得它们叫原子提交协议更合适(atomic commitment protocol ),因为它们只是把多个操作融合为一个原子操作,要么全部成功,要么全部失败。具体可以看 https:…
2021 CMU 15-445 实验笔记
陆陆续续终于把 CMU 15-445 刷完了(中间插了个 TinyKV),这也算是自己数据库的启蒙之课。编码耗时共计 98 小时 43 分钟。 我个人给整个项目难度评级:Project 1 < Project 4 < Project 3 << Project 2。其中 Project 2 难度最大,主要没啥参考资料,今年的是…
数据库并发控制原理
数据库的事务 transaction (txn)很有搞头,特此特别记下这篇笔记,方便自己的回顾,如有错误,请指正。 Transaction 数据库事务以 Begin() 开始,以 Commit() 或 Abort() 结束。事务需要满足 ACID。 ACID Atomicity A:Atomicity 原子性,即多个操作合并在一起,如一个原子一样不…