分布式系统,不变式,可信偏序
一个分布式系统可以被表示为一个事件驱动的状态机。 这里是在说整个系统,不是节点协议。 系统处于任何一个状态时,都有对应的一组此状态下的合法事件,以及对于每个事件的状态转移。 这些事件和状态转移为系统的所有合法状态建立起一种偏序关系。 一个分布式系统,从最笼统的角度看待,就是在全部的合法状态下都能保证某些不变式始终成立。 系统状态可以沿着这个偏序关系图中的箭头以任意的方式跳来...
一个分布式系统可以被表示为一个事件驱动的状态机。 这里是在说整个系统,不是节点协议。 系统处于任何一个状态时,都有对应的一组此状态下的合法事件,以及对于每个事件的状态转移。 这些事件和状态转移为系统的所有合法状态建立起一种偏序关系。 一个分布式系统,从最笼统的角度看待,就是在全部的合法状态下都能保证某些不变式始终成立。 系统状态可以沿着这个偏序关系图中的箭头以任意的方式跳来...
我在之前的项目中常常避免用命令行参数,原因有二。 一是命令行参数序列化高度结构化的配置时非常捉鸡。配置一列IP地址已经是极限,配置一列键值对字典实属折磨。 二是命令行参数的可扩容性太差(即不scale)。超过一个规模极限以后就不得不转向配置文件。 热知识:把过长的命令写成一个脚本也叫配置文件。 一个成熟的命令行参数库应该内建命令行参数与配置文件之间的转换功能。 前向的,提供...
之前 之后 算是了却了长久以来的一番心愿。 以前琢磨最多的是装个还能算是显卡的显卡来打游戏。那个的确是不太可能的。一个是折腾显卡就几乎一定得折腾电源,原厂配的功率太小了,这就又贵又麻烦又有风险。 再说了,也是太不务正业了。 装无线网卡的想法是很显然的:任何被SoC墙壁网的傻呗防火墙折磨过的人都会有这想法。 装大点的内存是因为内存时常就算是够用也有点捉襟见肘。开个大点规模的项目,...
感觉有点顶不住了,感觉安装了个Fira Code和GitHub Light主题。 首先将接口的层级提升到「peer」,也就是掌管多条连接的网络栈全局对象。就像现有的代码在TCP peer中添加了一个TCPMig peer一样,我也在TCPMig peer中再添加一个user connection peer。 与基于peer抽象的接口交互可以采取无状态的方式。有需要就当场调用peer提供的...
给自己今后的兴趣项目出出主意。 以后应该考虑做些照猫画虎的项目。比如编译器,那就先做一个长得像C编译器的编译器,再做一个长得像Java,再做一个长得像Python,以此类推。 长得像的意思就是模仿其神韵,但是不追求完整的兼容性。能编译/运行一些现成的代码库自然更好,但是能支持个大概也就可以了。 不要老是天马行空的想出点什么别人都没有的东西来,然后就做了起来。这样是做不出来的。 要先熟...
有点干不下去,点开下一集甄嬛传,然后决定先记点日志再看。 卡皮巴拉的代码主要分布在三个源码文件中(略去共同路径前缀src/rust/inetstack/: tcp/peer.rs:顶层接口。因为是Demikernel原本就有的,所以和Demikernel运行时中其他部分进行对接,也就是对TCP协议栈修改的「入口」必须写在这里,比如在接收端处理数据包的条件分支中加入对迁移期间来包的缓存...
好吧还是干了一点点点点的事情。把本地的LaTeX构造环境配了起来。ACM模板是好看,但是却要依赖最完整一档的TexLive,Docker镜像大小高达16.33GB。有空看看能不能给它裁一裁。 好了今天无论如何也得搞点卡皮巴拉的进度出来了。
昨晚才写了上一篇,今天上午又来写,可想而知中间并来不及干什么。 收拾好了粉粉键盘,提交了CSC奖学金申请,(大脑空空地)开完了卡皮巴拉的周会。粉粉键盘一开始S和D键有点疯疯的,一按不出字不按狂出字,好在G键无碍不然真有点怀疑是这键盘对我有意见。我让它反思了一会,现在已经好了。 打起字来很舒服,是时候开始好好干活了。 卡皮巴拉已经来到了再不快点就真的赶不上了的地步。那就快点吧。起码先...
昨晚决定在OSDI’25投稿周期这段时间每天早上来到实验室就写日志来勉励自己。 然后今天的日志就被拖到了晚饭时间。 几秒钟之前在脑子里明确了一下。吐槽/内心框框用绿色,中性的内容补充用蓝色。 昨天看了看卡皮巴拉代码库,认真搞清楚了垫片层(shim layer)究竟都做了些什么。然后义无反顾地转身又给DSLabs写完了lab3。(喂 不过写着调着又给DSLabs提了PR...
今早来到实验室发现昨晚Windows自动更新并重启了。 KB5044284终于装上了。 昨晚写得匆忙,查缺补漏一下。 本来还跃跃欲试要把DSLabs继续往下写lab3,想想记下来要干的活,想想报销的手续,默默打开这个老老实实写了起来。 昨天写了跟ℒ开会讨论的项目,没有写接下来的安排。 Vispo倒是没有什么后续,还是试着写写代码,然后看看能不能照着代码起草一下我们究竟是想...