#博客
周刊(第16期):图解ARIES论文(下)
引言:ARIES(Algorithm for Recovery and Isolation Exploiting Semantics的简称)是论文《ARIES: A Transaction Recovery Method Supporting Fine-Franularity Locking and Partial Rollbacks Using Write-Ahead Logging》中提到的一种存储引擎中数据恢复的算法。这篇论文可以说是存储引擎数据恢复领域必读的一篇论文,这两期的周刊就是对这篇论文的图解,这是其中的下篇。
博客:https://www.codedump.info/post/20220521-weekly-16/
公众号:https://mp.weixin.qq.com/s/LVcjbHoehkX1p1lUbVrrww
邮件订阅:https://www.getrevue.co/profile/lichuang
周刊(第16期):图解ARIES论文(下)
引言:ARIES(Algorithm for Recovery and Isolation Exploiting Semantics的简称)是论文《ARIES: A Transaction Recovery Method Supporting Fine-Franularity Locking and Partial Rollbacks Using Write-Ahead Logging》中提到的一种存储引擎中数据恢复的算法。这篇论文可以说是存储引擎数据恢复领域必读的一篇论文,这两期的周刊就是对这篇论文的图解,这是其中的下篇。
博客:https://www.codedump.info/post/20220521-weekly-16/
公众号:https://mp.weixin.qq.com/s/LVcjbHoehkX1p1lUbVrrww
邮件订阅:https://www.getrevue.co/profile/lichuang
codedump的网络日志
周刊(第16期):图解ARIES论文(下) - codedump的网络日志
#存储
这两周的周刊花了两期介绍ARIES论文:
https://www.codedump.info/post/20220514-weekly-15/
https://www.codedump.info/post/20220521-weekly-16/
巧得很,就在昨晚发现这个前端展示ARIES原理的页面:
https://mwhittaker.github.io/aries/
项目的开源地址:
https://github.com/mwhittaker/aries
我觉得,结合我博客的论文解读,加上这个演示页面,对于理解这个算法很有帮助了。
这两周的周刊花了两期介绍ARIES论文:
https://www.codedump.info/post/20220514-weekly-15/
https://www.codedump.info/post/20220521-weekly-16/
巧得很,就在昨晚发现这个前端展示ARIES原理的页面:
https://mwhittaker.github.io/aries/
项目的开源地址:
https://github.com/mwhittaker/aries
我觉得,结合我博客的论文解读,加上这个演示页面,对于理解这个算法很有帮助了。
codedump的网络日志
周刊(第15期):图解ARIES论文(上) - codedump的网络日志
👍1
#文章
xuanwo关于开源项目贡献相关的两篇文章。
《如何为开源项目撰写 RFC》
https://xuanwo.io/reports/2022-19/
《如何贡献复杂的项目》
https://xuanwo.io/reports/2022-18/
xuanwo关于开源项目贡献相关的两篇文章。
《如何为开源项目撰写 RFC》
https://xuanwo.io/reports/2022-19/
《如何贡献复杂的项目》
https://xuanwo.io/reports/2022-18/
xuanwo.io
2022-19: 如何为开源项目撰写 RFC
An infrastructure engineer, focused on distributed storage system
👍9
#文章
singularity创始人的这篇文章,解释了为何将项目从C++改成Rust,题目是《Building a Cloud Database from Scratch: Why We Moved from C++ to Rust》
https://singularity-data.com/blog/building-a-cloud-database-from-scratch-why-we-moved-from-cpp-to-rust/
到了Infoq的编辑手里,为了吸引眼球,题目就变成了《初创数据库公司的疯狂行为:删掉花7个月开发的27万行C++代码,用Rust全部重写一遍》
https://mp.weixin.qq.com/s/AZZ72kq_2eQeVClpAkAqwg
我想静静。
从我自己的经历来看,用C系写的软件,至少在内存错误的处理上是不如Rust的,预估也会比使用Rust会多更多的时间达到稳定。也不是S家一家出于这个原因使用Rust,PingCAP也是如此。所以这个更换在我看来还算及时和正确,见之前的周刊:
https://www.codedump.info/post/20220227-weekly-7/
singularity创始人的这篇文章,解释了为何将项目从C++改成Rust,题目是《Building a Cloud Database from Scratch: Why We Moved from C++ to Rust》
https://singularity-data.com/blog/building-a-cloud-database-from-scratch-why-we-moved-from-cpp-to-rust/
到了Infoq的编辑手里,为了吸引眼球,题目就变成了《初创数据库公司的疯狂行为:删掉花7个月开发的27万行C++代码,用Rust全部重写一遍》
https://mp.weixin.qq.com/s/AZZ72kq_2eQeVClpAkAqwg
我想静静。
从我自己的经历来看,用C系写的软件,至少在内存错误的处理上是不如Rust的,预估也会比使用Rust会多更多的时间达到稳定。也不是S家一家出于这个原因使用Rust,PingCAP也是如此。所以这个更换在我看来还算及时和正确,见之前的周刊:
https://www.codedump.info/post/20220227-weekly-7/
👍2👏1😁1
#文章
《Let's build a distributed Postgres proof of concept》
https://notes.eatonphil.com/distributed-postgres.html
《Let's build a distributed Postgres proof of concept》
https://notes.eatonphil.com/distributed-postgres.html
#Rust
《pretzelhammer's Rust blog》
https://github.com/pretzelhammer/rust-blog
其中的《Tour of Rust's Standard Library Traits》有中文翻译:
https://github.com/pretzelhammer/rust-blog/blob/master/posts/translations/zh-hans/tour-of-rusts-standard-library-traits.md
《pretzelhammer's Rust blog》
https://github.com/pretzelhammer/rust-blog
其中的《Tour of Rust's Standard Library Traits》有中文翻译:
https://github.com/pretzelhammer/rust-blog/blob/master/posts/translations/zh-hans/tour-of-rusts-standard-library-traits.md
GitHub
GitHub - pretzelhammer/rust-blog: Educational blog posts for Rust beginners
Educational blog posts for Rust beginners. Contribute to pretzelhammer/rust-blog development by creating an account on GitHub.
❤4
#openraft
一位使用openraft实现撮合引擎项目的兄台,写了一篇使用openraft的心得:
https://blog.csdn.net/weixin_41308834/article/details/124960923
对应的项目代码也开源了,可以做为使用openraft的一个代码例子:
https://github.com/raymondshe/matchengine-raft
一位使用openraft实现撮合引擎项目的兄台,写了一篇使用openraft的心得:
https://blog.csdn.net/weixin_41308834/article/details/124960923
对应的项目代码也开源了,可以做为使用openraft的一个代码例子:
https://github.com/raymondshe/matchengine-raft
blog.csdn.net
OpenRaft实操分享_Raymond-Shen的博客-CSDN博客
由于工作需要,一直对原子多播应用有非常浓厚的兴趣。通过一段时间的技术选型。我们非常幸运的得到了databend社群的热心支持。我也想通过我们的实际工作,对Openraft的未来应用尽一些微薄之力。我的实践的上一篇文章反应了我们的选型过程,有兴趣的人可以看一下。Raft in Rust (原子多播+撮合引擎)_Raymond-Shen的博客-CSDN博客前言Raft作为一个分布式协同算法,这是原子多播的一个非常重要的视线。今天也得到了广泛的应用。当前情况下,我们为了更好的实现一个快速的撮合引擎,我们进
👍2
#其它
虎哥和来自TiDB的另外一位嘉宾,明天分享一下云原生数据库的设计:
https://mp.weixin.qq.com/s/RNrX48irBuQsBR5msSRTig
我之前的一个推:
“随着cloud成为新的基础设施,原来在OS上打造的infra(DB、DFS、MQ)会在新的CLOUD这一层再被打造一遍。
已知的有snowflake(db)、databend(db,开源,兼容mysql、CK协议)、juicefs(dfs),未来还会有更多。
环境变化了,物种对应的也会发生变化,甚至于原先的infra也要进化到cloud这一层上来工作了。”
在很多基础软件都会慢慢进化到必须有一个cloud版本的时候,不妨了解一下这些基础软件都是怎么在云上打造的。原推见:
https://twitter.com/lichuang/status/1526786255807201281
虎哥和来自TiDB的另外一位嘉宾,明天分享一下云原生数据库的设计:
https://mp.weixin.qq.com/s/RNrX48irBuQsBR5msSRTig
我之前的一个推:
“随着cloud成为新的基础设施,原来在OS上打造的infra(DB、DFS、MQ)会在新的CLOUD这一层再被打造一遍。
已知的有snowflake(db)、databend(db,开源,兼容mysql、CK协议)、juicefs(dfs),未来还会有更多。
环境变化了,物种对应的也会发生变化,甚至于原先的infra也要进化到cloud这一层上来工作了。”
在很多基础软件都会慢慢进化到必须有一个cloud版本的时候,不妨了解一下这些基础软件都是怎么在云上打造的。原推见:
https://twitter.com/lichuang/status/1526786255807201281
Weixin Official Accounts Platform
解密云原生数据库 | 活动推荐
😁4
#杂
看了央视新闻的推送,才知道5.28是辛弃疾的诞辰,这里列出了一批辛弃疾的词来:
https://mp.weixin.qq.com/s/mEFCFKrYDKGwgqXUzYHmuQ
这才发现里面很多词都有听过,有点像现在一些很红的歌,多少都听过那么几句的。
比如:
“少年不识愁滋味”
“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”
“醉里挑灯看剑,梦回吹角连营”
“稻花香里说丰年,听取蛙声一片”
....
在为数不多知道他的诗词里,最喜欢的还是那句:“我见青山多妩媚,料青山见我应如是”。
另一位网友的总结:“我觉得他是宋词集大成者,既能写最喜小儿无赖,又能写沙场秋点兵,不滞于豪放或婉约,当真信手拈来。再加上他前承岳武穆,后接文天祥,这三人的精神都值得我敬佩”
https://twitter.com/frostming90/status/1530570915653754883
看了央视新闻的推送,才知道5.28是辛弃疾的诞辰,这里列出了一批辛弃疾的词来:
https://mp.weixin.qq.com/s/mEFCFKrYDKGwgqXUzYHmuQ
这才发现里面很多词都有听过,有点像现在一些很红的歌,多少都听过那么几句的。
比如:
“少年不识愁滋味”
“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”
“醉里挑灯看剑,梦回吹角连营”
“稻花香里说丰年,听取蛙声一片”
....
在为数不多知道他的诗词里,最喜欢的还是那句:“我见青山多妩媚,料青山见我应如是”。
另一位网友的总结:“我觉得他是宋词集大成者,既能写最喜小儿无赖,又能写沙场秋点兵,不滞于豪放或婉约,当真信手拈来。再加上他前承岳武穆,后接文天祥,这三人的精神都值得我敬佩”
https://twitter.com/frostming90/status/1530570915653754883
Weixin Official Accounts Platform
稼轩居士,生辰快乐!
🥰7
#杂
最近都在讨论教材问题,孔夫子网就顺势出了一篇文章回忆不同版本的教材。
https://mp.weixin.qq.com/s/oNignsnvGO8MM_LNw_mOUw
我当年的中学英语教材是这一套,不知道最后李磊和韩梅梅有没有走到一起?
最近都在讨论教材问题,孔夫子网就顺势出了一篇文章回忆不同版本的教材。
https://mp.weixin.qq.com/s/oNignsnvGO8MM_LNw_mOUw
我当年的中学英语教材是这一套,不知道最后李磊和韩梅梅有没有走到一起?
👍6
#博客
《周刊(第17期):Read-Write Quorum System及在Raft中的实践》
引言:在Paxos、Raft这类一致性算法的描述里,经常会看到Majority、Quorum这两个词,在以前我以为都是表达“半数以上”的含义,最近才发现两者有不小的区别。本文介绍这两者的区别,以及在Raft中实践中的问题。有了Quorum的视角,能更好得理解一致性算法。
博客:https://www.codedump.info/post/20220528-weekly-17/
公众号:https://mp.weixin.qq.com/s/jsaPpEcuKmvNTesSQx9uQw
邮件订阅:https://www.getrevue.co/profile/lichuang
《周刊(第17期):Read-Write Quorum System及在Raft中的实践》
引言:在Paxos、Raft这类一致性算法的描述里,经常会看到Majority、Quorum这两个词,在以前我以为都是表达“半数以上”的含义,最近才发现两者有不小的区别。本文介绍这两者的区别,以及在Raft中实践中的问题。有了Quorum的视角,能更好得理解一致性算法。
博客:https://www.codedump.info/post/20220528-weekly-17/
公众号:https://mp.weixin.qq.com/s/jsaPpEcuKmvNTesSQx9uQw
邮件订阅:https://www.getrevue.co/profile/lichuang
👍1
#杂
豆瓣上看到的一段话:
“#戴锦华谈论战#
我一生原则不多,其中一个重要的原则就是不参与论战。
一旦论战开始,你就以驳倒对方为目的,而当你以驳倒对方为目的的时候,你的所有观点都参照对方的观点而设置。成了它的某一种镜子。
第一我不喜欢以获胜为目的的讨论,第二我永远避免被我的敌手反过来定义。”
“避免被对手反过来定义”,这个视角倒是挺新鲜的。
https://www.douban.com/people/ourdookbook/status/3886453497/?_i=404910772q0918
豆瓣上看到的一段话:
“#戴锦华谈论战#
我一生原则不多,其中一个重要的原则就是不参与论战。
一旦论战开始,你就以驳倒对方为目的,而当你以驳倒对方为目的的时候,你的所有观点都参照对方的观点而设置。成了它的某一种镜子。
第一我不喜欢以获胜为目的的讨论,第二我永远避免被我的敌手反过来定义。”
“避免被对手反过来定义”,这个视角倒是挺新鲜的。
https://www.douban.com/people/ourdookbook/status/3886453497/?_i=404910772q0918
👍10
#编程
作者从Json和YAML的两种格式的优缺点,展开的一系列讨论。其中讨论到的一个有意思的观点:
“看到有人说json的问题是写错一个逗号就报错,yaml就用户友好,随便搞。
跟你们讲,大约97%的情况下,尝试给错误的输入返回正确的结果是万恶之源。”
(原推)
进而,作者又做了一个总结:
“与“尝试给错误的输入返回正确的结果”有些类似的,“为低效的输入高效地返回结果”大家尽量别碰,比如编译器优化、数据库SQL优化,其特点是随着你做的越来越好,你得到的输入就会越来差,所以这是一条无尽之路。”
(原推)
我感觉“尝试给错误的输入返回正确的结果是万恶之源”,这个总结挺对的。从这个意义上来说,Erlang的“fail fast”设计哲学就挺好:既然都不知道怎么处理了,不如就报错退出,让用户自己来处理。
作者从Json和YAML的两种格式的优缺点,展开的一系列讨论。其中讨论到的一个有意思的观点:
“看到有人说json的问题是写错一个逗号就报错,yaml就用户友好,随便搞。
跟你们讲,大约97%的情况下,尝试给错误的输入返回正确的结果是万恶之源。”
(原推)
进而,作者又做了一个总结:
“与“尝试给错误的输入返回正确的结果”有些类似的,“为低效的输入高效地返回结果”大家尽量别碰,比如编译器优化、数据库SQL优化,其特点是随着你做的越来越好,你得到的输入就会越来差,所以这是一条无尽之路。”
(原推)
我感觉“尝试给错误的输入返回正确的结果是万恶之源”,这个总结挺对的。从这个意义上来说,Erlang的“fail fast”设计哲学就挺好:既然都不知道怎么处理了,不如就报错退出,让用户自己来处理。
Twitter
象牙山刘能
看到有人说json的问题是写错一个逗号就报错,yaml就用户友好,随便搞。 跟你们讲,大约97%的情况下,尝试给错误的输入返回正确的结果是万恶之源。
👍6👏3
👍18