继Gitlab之后,Instapaper也停服了近一个礼拜,和Gitlab干净利落的数据被删了回档一个月相比,这次Instapaper的遭遇更加令人同情:他们并没有自己运维数据库服务器,也没有神智不清的工程师半夜上去rm /* -rf,而是把数据服务放在了以稳定性和伸缩性著称亚马逊的RDS上。
ext3的锅?
在14年创建的实例中,RDS的mysql实例都运行在ext3的文件系统上,作为已经被主流Linux发行版弃用的ext3,最大支持2TB的单个文件大小,这次Instapaper就是撞上了2T文件大小这堵墙。14年之后的rds实例都基于ext4系统,理论上支持16T的文件大小,单个文件大小被亚马逊限制在6T。
kibibyte KiB 2^10
mebibyte MiB 2^20
gibibyte GiB 2^30
tebibyte TiB 2^40
pebibyte PiB 2^50
exbibyte EiB 2^60
zebibyte ZiB 2^70
yobibyte YiB 2^80
与之对比,就单个文件大小限制来说:windows常用的EXFAT是4GB,NTFS是2TB,幸好有Sun留给我们的人类智慧结晶——支持1EB的ZFS,用mac的话,HFS+支持8EB。
这次出事的是一个表,一个表!
Instapaper的事后分析文章里指出,这次是bookmarks表的单表数据文件达到了2TB,仅仅一个表就达到了2TB,可见Instapapaer是一个多么流行的服务,估计是前不久收费功能尤其是全文搜索免费之后,用户更是纷至沓来。
就算换成6TB的ext4系统,用rds也不过再多撑几个月罢了。
数据多大算大?
有个说法是,一台电脑装不下,需要分布式存储的就算大数据。某些公司一个excel文档(最大一百万行,一万六千列)就能装下的数据,也好意思叫大?
上面的文件大小不够我就换文件系统的线性思维方法,成本是不可接受的。在3D NAND技术还没有大规模开始堆料,大容量存储还靠传统电磁感应式硬盘的今天,超过8T的硬盘,容量再往上增加,价格就是“厂商高兴”模式了。
就算用户愿意买单,现有的存储原理,还是依赖基于电子/原子的物理特性,因为信息和基本粒子的绑定,理论上有一个无法突破的上限:地球上的原子总数——大约2^160。
已经是一个哲学问题
单就信息本身来说,首先信息代表的实体是无限的,就别提实体的种种排列组合了。限制仅仅是用户——我们人类的认知范围。我们用以存储信息的方法,和上古时期的结绳记事并无本质差别。
具体到一个时间点,我们能操作的存储媒介数量X是有限的,认识到的实体/概念/排列组合数Y也是有限的,而记录在案的数量Z,在媒体从石壁、绳子、竹简、纸张、硬盘一路走来,量不断增大。Y>>X>Z,古代讲究“微言大义”,荆轲刺秦王具体场景我们只能脑补,而今天甚至一起盗窃案都有视频资料可查。说明了人类对自身认识正在不断深化——好吧起码表面工作数据收集是越来越细致了。
等X==Z的时候,估计人类就开始尝试突破次元壁了,研究数据对人类的终极意义,大概就是这个吧。
网友评论