我理解的分布式社交媒体
聊到这个话题我倒是觉得很有意思,就是mastodon是个【distributed】 social network。因为它是“分布式”的,而每一个实例的存储能力又是有限的,所以几乎可以确定每一个实例是不可能一直存储其他实例上的全部内容的。
我理解的“分布式”社交媒体的运作方式是,当你刷新你的主页时,你所在的实例向其他所有你关注的用户所在的实例发送请求,然后等待其他实例返回结果,然后排布出你的TL。
如果有实例不返回结果怎么办?设置一个timeout。达到既定时间还不返回结果的实例就不要它的结果了。
当然这只是我根据自己学过的分布式系统这门课的知识猜测的。实际也许会和我想象的有出入。
其他实例会保存自己的数据这种错觉是因为(1)自己浏览器的缓存(2)实例之间的同步不及时。浏览器会保存你访问过的其他实例的数据,所以当你下一次访问该实例时会看到那个实例已经删除的数据尚且还在。同步不及时会导致其他实例依然缓存了一些自己实例已经删除的内容。但是就算是eventual consistency,也能够保证所有实例的信息最终会趋同。所以删掉的东西,最后会在所有实例中消失。