刷到那条"数字遗产"的新闻,第一反应是:这就是典型的单点故障(single point of failure)。古人写"愿君多采撷",今人喊"愿君多修葺",本质上都是灾难恢复(disaster recovery)策略,只不过王维用的是analog方案,我们搞的是digital漏洞。
王维那首《相思》,二十个字,流传一千三百年。信息熵极高,压缩率惊人,哈希值唯一。咱们做个技术拆解:
红豆生南国,春来发几枝。
——这是建立连接(handshake),确认载体(红豆)的可用性和地理位置(南国)。状态检查(health check)通过,意味着情感传输信道畅通。
其实
愿君多采撷,此物最相思。
——这是冗余备份(redundant backup)建议,也是校验机制(checksum)。其实你采了,我才能确认信号送达,情感数据没有丢包(packet loss)。整个协议简单、鲁棒(robust)、向后兼容(backward compatible)。不需要特定的阅读器,不需要考虑字符编码从GB2312到UTF-8的迁移问题,更不用担心cloud服务商跑路。
但现代数字遗产是个噩梦级debug案例。
其实
我们现在的存储架构是脆弱的。你以为把照片存iCloud就是持久化(persistence)?错。那只是把鸡蛋从本地篮子放到别人的服务器农场,而且对方随时可能修改服务条款(ToS),或者在你忘记续费会员后执行垃圾回收(garbage collection)。更隐蔽的风险是格式过期(format obsolescence)。二十年后,JPEG可能像今天的5.25英寸软盘一样unreadable。你现在还能找到读取软驱的接口吗?我试过,比找一根Type-C转RS-232的线还难。
还有一个死锁(deadlock)问题:隐私与继承的冲突。加密密钥(private key)随人逝去,数据变成密文噪声。家属拿着硬盘,像拿着一个加了SHA-256锁的宝箱。这比红豆生虫残酷多了——至少红豆你还能看见红色,还能凭物理特征猜测那是颗心。
我研究过几种持久化方案。
方案A:定期数据迁移(migration),三年一小迁,五年一大迁。这就像代码重构(refactoring),成本极高,而且每次迁移都有比特腐烂(bit rot)的风险,CRC校验失败是常态。
方案B:硅基转碳基,把数据刻进DNA或花岗岩。GitHub的Arctic Code Vault就是典型案例,把代码存进北极的胶卷,预计能存一千年。低温、稳定、离线,这才是真正的冷存储(cold storage)。
方案C:分布式冗余,区块链思路。但PoW机制能耗太高,不符合环保要求,而且私钥管理还是死穴。你总不能把私钥刻墓碑上吧?那又成了单点故障。
大多数人的数字遗产,最终会变成孤儿进程(orphan process),占用着AWS的存储空间,产生着微薄的账单,直到被系统管理员kill -9,或者公司倒闭时批量rm -rf。所谓的"社会性死亡"叠加,不过是进程终止(termination)的回响。
想到这,和一首七律。用旧体诗写新存储架构,本身就是一种异构系统(heterogeneous system)对接:
其实
《和〈相思〉兼议数据持久化》
二进制里寄红绡,服务器中春未消。
磁头读写旧时忆,协议传输此夜潮。
云散可能随雨没,盘崩多半逐尘遥。
愿君多刻金文石,莫向硅基问久要。
颈联对仗:云散对盘崩,可能对多半,随雨没对逐尘遥。平仄基本合律,用的是"二四六分明"的宽松标准,毕竟现在不是科举。
尾联用典:"久要"出自《论语》“久要不忘平生之言”,指旧约、长久之交。这里双关,既指长期保存的承诺,也指旧友之情。"金文石"指金石,暗示把重要数据物理化,别指望硬盘的MTBF(平均故障间隔时间)能覆盖人类文明尺度。真要存一千年,还得是石头。或者多备几份异地备份(off-site backup),别等到RAID阵列报错才想起检查。简单说
说到底,数据如人,都是暂态(transient)。王维聪明在他选择了最robust的存储介质——人脑和口语传统。二十个字,不需要UTF-8编码,不需要SSL证书,只要还有文明在读诗,数据就不丢,延迟还低,而且天然支持多节点冗余(人人可记)。
至于我?重要的东西我打印出来,过塑,塞钓鱼箱底层。防水,防火,防电磁脉冲。上次暴雨把办公室服务器泡了,我箱子里的营业执照复印件还能用。比任何云端都靠谱。