今天打开博客,又挂了,距离上一次挂差不多有一礼拜,我开始有点警觉了! 在过去的 n 年当中,我的博客从来没有挂过,我也从来不会考虑这个问题。直到一礼拜前,一个用户发了一封邮件告诉我的博客挂了,我才第一次发现自己的博客也会宕机。挂的原因其实是 MySQL 挂了,然后 WordPress 连不上数据库,就报错。我看了眼 MySQL 的日志,差不多就是内…
这一节实现的事务本应该需要和 TinySQL 配合使用,但是因为我们只有实现 TinyKV 部分,所以有些地方看起来有些割裂。 Percolator 首先说明的一点是,Percolator 基于单行事务实现了多行事务,Google BigTable 能够提供单行事务。在这里 TinyKV 也会通过锁来保证单行数据的原子性(但是单行事务好像没有,可能…
这一节中,最难的就是 Project 3B,引无数英雄竞折腰!!当然撑过 3B,你就解放了。 Membership Change 在 Project3A 中我们需要实现 Leader Transfer 和新增或移除一个 Region 里面的节点,这里并不是很难但是你要处理好细节,不然就是 BUG 满天飞。 Leader Transfer Leade…
这一节需要我们实现 Raft,TinyKV Raft 这部分很多都是抄 Etcd 的 Raft 模块。你可以注意到连测试用例都很像。所以这一节我拿到手就会做啊,首先去 Etcd clone 一份源码。我抄的是 Etcd 3.5.1 版本,也就是目前最新版。 TinyKV 中的 Raft 和 6.824 中的 Raft 有很大的不同。这里将整个 Ra…
这一节实验要求我们基于 badger 实现一个支持 Column Family 的 KV 数据库。 Column Family,也叫 CF,这个概念从 HBase 中来,就是将多个列合并为一个CF进行管理。这样读取一行数据时,你可以按照 CF 加载列,不需要加载所有列(通常同一个CF的列会保存在同一个文件中,所以这样有很高的效率)。此外因为同一列的…
最近看一段 CSV 代码申请大量内存的问题,看了半天没有思绪,就想尝试刁难一下 ChatGPT,结果它还真答得有模有样,虽然并没有解决问题,不过确实牛逼 plus。 看到答案,我惊了,说实话我都没有它考虑的那么周到。。。。。。
Chinese version: https://www.inlighting.org/archives/setup-perfect-starrocks-dev-env Some people want to become StarRocks contributor, but are troubled by the development envi…
自从用了远程开发机,天天和命令行打交道,一套属于自己的 shell 配置已经刻不容缓,否则工作效率太低了。 现在 我自己搞了一个 dotfiles 仓库,专门用来一键初始化机器。 git clone https://github.com/Smith-Cruise/dotfiles.git 然后执行如下命令: # install prepared s…
鉴于经常有人问我 StarRocks 的开发环境如何搭建,这里本人写一篇教程,方便大家跟着 step-by-step。 什么叫完美? 支持一键编译 BE 和 FE。 Clion,IDEA 均支持代码跳转。 IDE 全部变量能正常解析,不会出现红线。 Clion 可以正常启用其 analyze 功能。 支持 FE 和 BE 的 Debug。 环境准备…
文章随手写的,有需要的自己看看。 ES 相关概念 index:index 在 es 中不是指索引,其对应数据库中的 table 概念。一个 index 含有多个 document,一个 document 是一个 json。 mapping:针对于 index 来说的,指一个 index 的结构,对应数据库中的 table schema。 mappi…