数据机制约 11 分钟

第 9 / 26 个单元计算机与软件基础设施区

第 8 章 数字服务怎样保存状态与数据

核心问题跨设备的进度、账户和订单状态怎样被保存、查询、更新和恢复?

你在平板上看完半节网课,晚上换到手机,视频从附近继续。平板没有直接把进度告诉手机。更常见的路径是:应用把播放位置写入远端服务,手机登录同一账户后,再读取这份状态。

服务之所以能记住“之前发生了什么”,依靠数据表示、身份、存储和更新规则。跨设备看似自然,背后要处理并发、延迟、冲突、权限和恢复。

状态让系统拥有前后

状态是在某一时刻会影响系统后续行为的信息。播放位置、购物车内容、订单阶段、登录会话和消息是否已读,都属于状态。

有些状态只在当前设备短暂保存,例如尚未提交的输入;有些状态必须跨设备或长期存在。问“状态主要保存在哪里”,可以帮助判断断网后功能是否可用、换设备后记录是否回来、退出账户后本地还剩什么。

状态还需要身份。系统要知道这次读取属于哪个账户、课程或设备。身份识别错误,可能让人看见别人的数据;权限过宽,则可能让本来只读的应用修改记录。

数据库管理持续变化的记录

当记录数量增加、多人同时访问、内容反复更新,还需要按条件查找和控制权限时,零散文件难以管理。数据库是用于组织、保存、访问和更新数据的受管理集合。[1]

数据库不等于一张巨大表。关系数据库常以表、行、列和关系组织结构化记录;文档、键值、图等数据库采用其他模型,适合不同访问方式。一个系统也会同时使用多种存储:数据库保存账户和进度,文件系统保存视频,搜索索引支持快速查找,日志记录操作过程。

查询表达要找什么、筛选什么、怎样排序或汇总。查询结果取决于数据状态、条件和权限;数据库能够准确执行错误条件,也不会自动判断原始数据是否真实。

更新比读取更容易产生冲突

两台设备几乎同时修改播放进度,哪一个应当保留?订单付款与库存扣减需要同时成功,某一步失败后怎样恢复?这些问题要求数据库和应用定义一致性规则。

有些操作需要作为整体处理:全部成功,或在失败时不留下半完成状态。数据库事务提供处理这类更新的一组机制,具体保证随系统而异。

分布式服务还会面对网络延迟和节点故障。一个设备刚更新状态,另一设备立刻读取时,可能暂时看到旧值;缓存可以加快访问,也会带来过期问题。界面显示“已保存”时,应明确是本地保存、服务接受,还是多个副本已经完成同步。

系统选择何种一致性和延迟取舍,要看任务。视频进度晚几秒同步通常可以接受,余额、成绩和医疗记录的错误代价更高,需要更严格的控制与审计。

同步、版本和备份仍然不能互相替代

同步让多个位置尽量反映当前状态,错误也可能随之传播。版本历史保留变化,使人能够回到较早记录。备份为丢失、损坏或误操作后的恢复保留独立副本。[3]

数据库有多个副本,不一定等于备份。副本可以提高可用性,却可能共同复制错误。备份是否可用,要看范围、版本、权限和恢复演练。

删除也不一定在所有位置立即完成。本地缓存、备份、日志和依法依规需要保留的记录,可能拥有不同生命周期。用户面对“删除成功”时,有权知道产品承诺的范围;组织则需要按适用规则处理。

云计算提供可配置的共享资源

“数据在远端”不等于完整云计算。NIST把云计算描述为通过网络按需获得可配置共享资源的一种模型,并包括资源池、快速弹性和可度量等特征。[2]

云服务让系统可以根据需求增加计算和存储,减少每个组织自己维护硬件的负担。它也引入供应商、区域、成本、权限和退出路径。数据放进云端以后,责任没有随之消失。

对普通读者,先区分三层即可:远端服务说明计算或数据在另一处;云计算说明资源怎样被组织和提供;具体云产品还包含更多平台与合同条件。

AI系统里有多种数据位置

AI系统常同时涉及:训练模型的数据,当前用户输入,RAG检索的资料,账户与会话状态,工具执行结果和运行日志。把它们都称为“AI记忆”,会遮住用途和权限。

训练数据用于形成参数;当前上下文只在本次推理中直接使用;外部知识库可以更新和检索;账户状态由普通软件保存;日志用于排障与追溯,也可能带来隐私风险。

分析一项AI记忆功能时,可以问:内容保存在哪一层,谁能读取,保存多久,怎样纠错和删除,是否会用于训练。产品界面的“记住我”不能回答这些技术与治理问题。

回到网课进度,可以沿一条数据链检查:用户动作产生什么状态,应用怎样写入,服务用什么身份保存,其他设备何时读取,冲突怎样处理,删错后从哪里恢复。能够回答这些问题,就已经进入数据库与云服务的核心。

保存状态以后,软件还要在多年修改、多人协作和异常输入中保持可用。下一章讨论为什么软件不等于一段能运行的代码。