#博客
sqlite3.36版本 btree实现(一)- 管理页面缓存
这一篇分析sqlite里页面缓存的实现。
https://www.codedump.info/post/20211217-sqlite-btree-1-pagecache/
sqlite3.36版本 btree实现(一)- 管理页面缓存
这一篇分析sqlite里页面缓存的实现。
https://www.codedump.info/post/20211217-sqlite-btree-1-pagecache/
#博客
sqlite3.36版本 btree实现(二)- 并发控制框架
https://codedump.info/post/20211218-sqlite-btree-2-concurrency-control/
sqlite3.36版本 btree实现(二)- 并发控制框架
https://codedump.info/post/20211218-sqlite-btree-2-concurrency-control/
#杂
最近几天连续更新了好几篇sqlite btree系列的文章,实际上这几篇文章严格算起来并不算是这几天才写的,因为这个项目我已经连续看了几个月了,见:
https://www.codedump.info/post/20211217-sqlite-btree-0/
中的描述,现在只是把之前整理的笔记逐步输出到博客上。这个系列文章,应该还有好几篇,看看2022年1月份以内能否全部输出完毕。
另外,我也在基于sqlite的btree模块,抽出来一个独立的C语言的btree KV库,等到全部做好就会把private仓库公开出来,这应该就是我想做的“btree版本的leveldb”:小巧、精简、生产可用。
最近几天连续更新了好几篇sqlite btree系列的文章,实际上这几篇文章严格算起来并不算是这几天才写的,因为这个项目我已经连续看了几个月了,见:
https://www.codedump.info/post/20211217-sqlite-btree-0/
中的描述,现在只是把之前整理的笔记逐步输出到博客上。这个系列文章,应该还有好几篇,看看2022年1月份以内能否全部输出完毕。
另外,我也在基于sqlite的btree模块,抽出来一个独立的C语言的btree KV库,等到全部做好就会把private仓库公开出来,这应该就是我想做的“btree版本的leveldb”:小巧、精简、生产可用。
#杂
“快乐废物的定义是什么呢?欣然接受自己是个普通人,不因为其他人的卷而焦虑,能够在平淡生活里找到所有闪闪发光的瞬间,快乐做自己。
在承认自己是快乐废物的瞬间,一切压力都有了出口。”
简直就是我35岁以后的写照啊,当认识到自己不过就是个普通人之后,整个人都轻松了。
https://mp.weixin.qq.com/s/DeQ6rbbrNFjrYhAQCtr9ag
“快乐废物的定义是什么呢?欣然接受自己是个普通人,不因为其他人的卷而焦虑,能够在平淡生活里找到所有闪闪发光的瞬间,快乐做自己。
在承认自己是快乐废物的瞬间,一切压力都有了出口。”
简直就是我35岁以后的写照啊,当认识到自己不过就是个普通人之后,整个人都轻松了。
https://mp.weixin.qq.com/s/DeQ6rbbrNFjrYhAQCtr9ag
Weixin Official Accounts Platform
承认自己是个快乐废物真的很爽|万有同频Vol.13
悲观和浪漫并不冲突,我时常消极又觉得生活真美好。
#推荐
porter.io是基于Github关注项目推荐相关文章发送邮件通知的应用:
“We analyse your Github footprint, filter Hacker News items according to your taste, and deliver them to your mailbox.”
https://porter.io/
porter.io是基于Github关注项目推荐相关文章发送邮件通知的应用:
“We analyse your Github footprint, filter Hacker News items according to your taste, and deliver them to your mailbox.”
https://porter.io/
#Rust
Rust里写一个双向链表,确实不是件容易的事情。
这篇文档就展现了Rust实现链表的探索思考,我挺喜欢这种就着一个问题点,深挖细节逐层分析的文档的:
https://rust-unofficial.github.io/too-many-lists/
Rust里写一个双向链表,确实不是件容易的事情。
这篇文档就展现了Rust实现链表的探索思考,我挺喜欢这种就着一个问题点,深挖细节逐层分析的文档的:
https://rust-unofficial.github.io/too-many-lists/
#冷知识
新浪微博已经将github域名屏蔽好一段时间了,比如github地址:
https://github.com/datafuselabs/databend
在微博上是发不出来的,只能去掉“https://”才能发出,但是这样的地址不会带上链接点击自动跳转,需要手动复制很麻烦。
昨天看到网友发现了办法,可以用“全限定域名”的方式发出,即将“github.com”变成“github.com.”,上面的github项目地址改成:
https://github.com./datafuselabs/databend
就能在新浪微博上发出还能自带跳转。
(有意思的是,在电报上发出上面这个修改后的域名,tg只能识别出“github.com./”部分的链接,后面的字符串就不认为是URL的一部分了,可见电报不能正确识别出全限定域名,即在这条消息里点开上面的域名只能跳转到github.com)
关于“全限定域名”,英文名为“FQDN:(Fully Qualified Domain Name)”,见维基上的解释:
https://en.wikipedia.org/wiki/Fully_qualified_domain_name
关于域名、DNS,我也只是知道简单的基础知识,看来有时间需要补补课了:)
新浪微博已经将github域名屏蔽好一段时间了,比如github地址:
https://github.com/datafuselabs/databend
在微博上是发不出来的,只能去掉“https://”才能发出,但是这样的地址不会带上链接点击自动跳转,需要手动复制很麻烦。
昨天看到网友发现了办法,可以用“全限定域名”的方式发出,即将“github.com”变成“github.com.”,上面的github项目地址改成:
https://github.com./datafuselabs/databend
就能在新浪微博上发出还能自带跳转。
(有意思的是,在电报上发出上面这个修改后的域名,tg只能识别出“github.com./”部分的链接,后面的字符串就不认为是URL的一部分了,可见电报不能正确识别出全限定域名,即在这条消息里点开上面的域名只能跳转到github.com)
关于“全限定域名”,英文名为“FQDN:(Fully Qualified Domain Name)”,见维基上的解释:
https://en.wikipedia.org/wiki/Fully_qualified_domain_name
关于域名、DNS,我也只是知道简单的基础知识,看来有时间需要补补课了:)
GitHub
GitHub - databendlabs/databend: 𝗔𝗜-𝗡𝗮𝘁𝗶𝘃𝗲 𝗗𝗮𝘁𝗮 𝗪𝗮𝗿𝗲𝗵𝗼𝘂𝘀𝗲. Blazing analytics, fast search, geo insights, vector AI. Built for multimodal…
𝗔𝗜-𝗡𝗮𝘁𝗶𝘃𝗲 𝗗𝗮𝘁𝗮 𝗪𝗮𝗿𝗲𝗵𝗼𝘂𝘀𝗲. Blazing analytics, fast search, geo insights, vector AI. Built for multimodal analytics, Open-source Snowflake alternative. https://databend.com - databendlabs/databend
#博客
本节介绍sqlite中最原始的journal页面数据备份机制
https://codedump.info/post/20211222-sqlite-btree-3-journal/
需要以上一节并发控制机制为基础:
https://codedump.info/post/20211218-sqlite-btree-2-concurrency-control/
本节介绍sqlite中最原始的journal页面数据备份机制
https://codedump.info/post/20211222-sqlite-btree-3-journal/
需要以上一节并发控制机制为基础:
https://codedump.info/post/20211218-sqlite-btree-2-concurrency-control/
#电影
周末去看了一部很有意思的电影《爱情神话》,又看到一篇不错的影评(内容有剧透)。
“几乎每个行业的腰部人,都会卡在某个地方,上不去又不愿意下来,开始是知道自己有才华,但就是上不去,到最后,是连自己也怀疑自己是不是真的有才华,是不是不行。但曾经受到过的那些赞扬,一直坚持到的今天,那些过往,又都历历在目,你又怎么甘心承认自己不行?”
https://mp.weixin.qq.com/s/qRV35ZN9QAj-aJwCAtvJYQ
周末去看了一部很有意思的电影《爱情神话》,又看到一篇不错的影评(内容有剧透)。
“几乎每个行业的腰部人,都会卡在某个地方,上不去又不愿意下来,开始是知道自己有才华,但就是上不去,到最后,是连自己也怀疑自己是不是真的有才华,是不是不行。但曾经受到过的那些赞扬,一直坚持到的今天,那些过往,又都历历在目,你又怎么甘心承认自己不行?”
https://mp.weixin.qq.com/s/qRV35ZN9QAj-aJwCAtvJYQ
Weixin Official Accounts Platform
《爱情神话》,如何走出困顿的人生?
我敬你弯着腰,上山往高处走。
#推荐
“焦虑的反义词是具体。焦虑是一个非常虚幻的情绪。你需要突破那个迷雾,你说具体的路径怎么走,你脚踩到那个具体的路径上,一步一步往前走的时候,就没有这个焦虑。”
语出自:《圆桌派.第五季》第六期周轶君。
“焦虑的反义词是具体。焦虑是一个非常虚幻的情绪。你需要突破那个迷雾,你说具体的路径怎么走,你脚踩到那个具体的路径上,一步一步往前走的时候,就没有这个焦虑。”
语出自:《圆桌派.第五季》第六期周轶君。
#杂
豆瓣网友:“年份是人类编造的虚拟单位,不会影响事件的延续性。 但它真的可以给我们一种「另一年应该会不一样」的错觉。这是一个很好的发明。”
这句话甚合我意,因为每一天对我来说,都是一样的,并没有哪天有什么更特殊的意义。当然,反过来说,可能正因为这样想,所以我的生活里缺少了很多“仪式感”。
豆瓣网友:“年份是人类编造的虚拟单位,不会影响事件的延续性。 但它真的可以给我们一种「另一年应该会不一样」的错觉。这是一个很好的发明。”
这句话甚合我意,因为每一天对我来说,都是一样的,并没有哪天有什么更特殊的意义。当然,反过来说,可能正因为这样想,所以我的生活里缺少了很多“仪式感”。
#博客
假期第一天没有闲着,总结了一下etcd 3.5的联合共识算法(joint consensus)的实现:
https://codedump.info/post/20220101-etcd3.5-joint-consensus/
假期第一天没有闲着,总结了一下etcd 3.5的联合共识算法(joint consensus)的实现:
https://codedump.info/post/20220101-etcd3.5-joint-consensus/
codedump的网络日志
etcd 3.5版本的joint consensus实现解析 - codedump的网络日志
#杂
《风起洛阳》就是换了皮的《长安十二时辰》,一位豆瓣网友的总结,故事大体都是这样的模式:”总是厉害的素人,巧合的故事,帮忙但起协助的底层工具人或组织,再加一个不得志的王子。“
初看《长安十二时辰》的时候还觉得惊艳,看到《风起洛阳》已经疲劳了。对一个创作者来说,总是重复自己待在舒适圈有点不思进取了。
《风起洛阳》就是换了皮的《长安十二时辰》,一位豆瓣网友的总结,故事大体都是这样的模式:”总是厉害的素人,巧合的故事,帮忙但起协助的底层工具人或组织,再加一个不得志的王子。“
初看《长安十二时辰》的时候还觉得惊艳,看到《风起洛阳》已经疲劳了。对一个创作者来说,总是重复自己待在舒适圈有点不思进取了。
#Raft
我们新开的Rust版本raft实现的坑,基于开源的async-raft做了很多优化、修改。
raft的Rust版本实现,之前已经有tikv的仿etcd实现了,对比起来:etcd版本是个完全同步的流程,使用者和raft层通过Ready结构体进行交互,使用者拿到Ready数据之后,再自己做网络、存储等操作;async-raft集成了tokio,是一个全异步的实现,需要用户使用时提供的网络、存储trait实现。
@drdrxp 为我们修改的版本,大体写了几个待优化的技术点,见:
https://www.douban.com/people/2135060/status/3711825327/?_i=1262986DTua3Gc
https://github.com/datafuselabs/openraft
我们新开的Rust版本raft实现的坑,基于开源的async-raft做了很多优化、修改。
raft的Rust版本实现,之前已经有tikv的仿etcd实现了,对比起来:etcd版本是个完全同步的流程,使用者和raft层通过Ready结构体进行交互,使用者拿到Ready数据之后,再自己做网络、存储等操作;async-raft集成了tokio,是一个全异步的实现,需要用户使用时提供的网络、存储trait实现。
@drdrxp 为我们修改的版本,大体写了几个待优化的技术点,见:
https://www.douban.com/people/2135060/status/3711825327/?_i=1262986DTua3Gc
https://github.com/datafuselabs/openraft
GitHub
GitHub - databendlabs/openraft: rust raft with improvements
rust raft with improvements. Contribute to databendlabs/openraft development by creating an account on GitHub.
#Rust
无意间打开《Rust for Rustaceans》作者Jon Gjengset的油管频道:
https://www.youtube.com/c/JonGjengset/playlists
也太强了吧:
《Implementing TCP in Rust》:https://www.youtube.com/watch?v=bzja9fQWzdA&list=PLqbS7AVVErFivDY3iKAQk3_VAm8SXwt1X
《Porting Java's ConcurrentHashMap to Rust》:https://www.youtube.com/watch?v=yQFWmGaFBjk&list=PLqbS7AVVErFj824-6QgnK_Za1187rNfnl
...
马上找来《Rust for Rustaceans》后面好好研读一下。
无意间打开《Rust for Rustaceans》作者Jon Gjengset的油管频道:
https://www.youtube.com/c/JonGjengset/playlists
也太强了吧:
《Implementing TCP in Rust》:https://www.youtube.com/watch?v=bzja9fQWzdA&list=PLqbS7AVVErFivDY3iKAQk3_VAm8SXwt1X
《Porting Java's ConcurrentHashMap to Rust》:https://www.youtube.com/watch?v=yQFWmGaFBjk&list=PLqbS7AVVErFj824-6QgnK_Za1187rNfnl
...
马上找来《Rust for Rustaceans》后面好好研读一下。
YouTube
Implementing TCP in Rust (part 1)
In this stream, we started implementing the ubiquitous TCP protocol that underlies much of the traffic on the internet! In particular, we followed RFC 793 — https://tools.ietf.org/html/rfc793 — which describes the original protocol, with the goal of being…
#杂
前几天把在博客写了几千字的etcd联合共识文章搬到公众号,几天下来,一个新增订阅。
我并不是不清楚公众号的那套引流游戏:标题党、互相导流,等等,只是并不愿意这么玩。最开始之所以要建公众号,是公众号因为流量太大,所以不得不为了避免抄袭自己先转发自己的文章。公众号至今仍然只有搜狗、微信才能搜索,除了腾讯没有别的入口,这就是一个封闭的平台。
从中的感悟:在一个封闭的平台,平台的规则就是最大的,个体只有研究透平台规则才能利益最大。反过来,这也给了平台能pua你的机会:你只有努力换着姿势迎合平台,才有更好的机会。
这里的平台不限于:公众号、公司、抖音,等等。
结论:不要在封闭平台里玩只有他们控制的规则,要到更开放的平台玩。
前几天把在博客写了几千字的etcd联合共识文章搬到公众号,几天下来,一个新增订阅。
我并不是不清楚公众号的那套引流游戏:标题党、互相导流,等等,只是并不愿意这么玩。最开始之所以要建公众号,是公众号因为流量太大,所以不得不为了避免抄袭自己先转发自己的文章。公众号至今仍然只有搜狗、微信才能搜索,除了腾讯没有别的入口,这就是一个封闭的平台。
从中的感悟:在一个封闭的平台,平台的规则就是最大的,个体只有研究透平台规则才能利益最大。反过来,这也给了平台能pua你的机会:你只有努力换着姿势迎合平台,才有更好的机会。
这里的平台不限于:公众号、公司、抖音,等等。
结论:不要在封闭平台里玩只有他们控制的规则,要到更开放的平台玩。
#推荐
看到“独立开发变现周刊”:https://www.ezindie.com/weekly/issue-36
推荐的播客搜索引擎:
https://www.listennotes.com/
喜欢听各种播客的应该会用得上。另外,“独立开发变现周刊”里,也会经常推荐一些独立应用的点子和想法。
看到“独立开发变现周刊”:https://www.ezindie.com/weekly/issue-36
推荐的播客搜索引擎:
https://www.listennotes.com/
喜欢听各种播客的应该会用得上。另外,“独立开发变现周刊”里,也会经常推荐一些独立应用的点子和想法。
Ezindie
独立开发变现周刊(第 36 期):最好的播客搜索引擎,从副业到被投资经历了什么?
独立开发变现人物志、产品周刊、工具集
#杂
买文石BOOX max lumi2已经过去一个多月了,来谈谈使用感受。
最早是看到别人推荐这个A4大小的墨水屏平板,内部其实跑的就是安卓系统,所以可以装各种安卓的应用,自然就能用来:看论文、微信读书、kindle、晋江文学城(老婆的需求)。
所以,当时借着老婆生日,借花献佛买下来,算起来虽然设备的价格贵(这个版本要5000多),但是由于能满足两个人的阅读需求,感觉性价比还是很好的。
实际使用起来确实也是:老婆用来看晋江文学城,不用的时候我就用来看微信读书,使用频率挺高的。
由于之前微信读书只在手机上看,伤眼睛,所以不敢多看,但是微信读书的优点是有无限会员之后很多书可以免费看,觉得好了也可以用读书时各种活动攒下来的书币买下来,基本是不用花钱的。有了BOOX之后,看微信读书的频率更多了,相应的看书的时间也多了。同时,由于文石也能看kindle,所以这段时间kindle设备就吃灰了。
所以整体下来的使用感受:这笔钱花得值。
要说体验不太好的地方:墨水屏版本的微信读书,看书的时候划线体验很差,但是这个算是小问题,瑕不掩瑜吧。
买文石BOOX max lumi2已经过去一个多月了,来谈谈使用感受。
最早是看到别人推荐这个A4大小的墨水屏平板,内部其实跑的就是安卓系统,所以可以装各种安卓的应用,自然就能用来:看论文、微信读书、kindle、晋江文学城(老婆的需求)。
所以,当时借着老婆生日,借花献佛买下来,算起来虽然设备的价格贵(这个版本要5000多),但是由于能满足两个人的阅读需求,感觉性价比还是很好的。
实际使用起来确实也是:老婆用来看晋江文学城,不用的时候我就用来看微信读书,使用频率挺高的。
由于之前微信读书只在手机上看,伤眼睛,所以不敢多看,但是微信读书的优点是有无限会员之后很多书可以免费看,觉得好了也可以用读书时各种活动攒下来的书币买下来,基本是不用花钱的。有了BOOX之后,看微信读书的频率更多了,相应的看书的时间也多了。同时,由于文石也能看kindle,所以这段时间kindle设备就吃灰了。
所以整体下来的使用感受:这笔钱花得值。
要说体验不太好的地方:墨水屏版本的微信读书,看书的时候划线体验很差,但是这个算是小问题,瑕不掩瑜吧。
#推荐
之前推荐过著名的VC Naval的书,也推荐关注一下他的推特,经常会发一些简洁的话,有时候会让我幡然醒悟。比如昨天的这一条:https://twitter.com/naval/status/1480061554917724161
“In the modern world, don’t minimize your risks - maximize your opportunities”
这是看待这个年代风险、机遇、稳定等等事情一个很好的视角。
之前推荐过著名的VC Naval的书,也推荐关注一下他的推特,经常会发一些简洁的话,有时候会让我幡然醒悟。比如昨天的这一条:https://twitter.com/naval/status/1480061554917724161
“In the modern world, don’t minimize your risks - maximize your opportunities”
这是看待这个年代风险、机遇、稳定等等事情一个很好的视角。
Twitter
Naval
In the modern world, don’t minimize your risks - maximize your opportunities