不可变运行时与历史建模模式解析
1. 不可变运行时的工作与归档
1.1 工作跟踪与事实转换
在不可变运行时中,有一个函数用于跟踪已完成的工作。当转换一个事实时,该函数首先会生成新的标识并将其存储在日志中,然后使用这个标识生成新的事实。如果过程被中断,函数可以恢复且不会有重复工作的风险。
1.2 复制器的归档
复制器是仅追加的存储组件,在其生命周期内,占用空间会不断增加,这给系统操作员带来了挑战。不过,复制提供了解决方案。操作员可以寻找机会启用新的复制器并归档旧的复制器。单向转换就是这样一个机会,但比较少见。操作员可以在两个复制器之间放置转换函数,从而将使用新版本的网络部分与使用旧版本的部分隔离开来。组件不是就地升级,而是在升级后部署到新网络。当所有组件都升级后,旧网络上的复制器可以停止服务并归档。
操作员不必等待极端情况才归档复制器,也可以依靠应用程序的自然周期。开发人员可以使用周期模式按时间细分模型。应用程序通常只在当前周期内创建新事实,并且往往只检索少数过去周期内的事实。系统操作员可以选择以大致相当于应用程序周期的节奏轮换复制器投入使用。
在学校网络复制器的配置中,每个规范通过新的复制器拉取信息,从而用旧复制器中的事实填充它。规范中未出现的事实不会被复制,旧复制器也不会从新复制器中拉取事实。最终,新复制器包含了满足日常规范所需的所有信息。操作员可以观察事实的流动以验证流量是否已平静,然后在下一次轮换时,将最旧的复制器停止服务并归档。这种定期轮换可以自动化,以提高可靠性并降低成本。
1.3 Jinaga 运行时
Jinaga 是一个开源的参考实现,它实现了这里介绍的不
超级会员免费看
订阅专栏 解锁全文
2391

被折叠的 条评论
为什么被折叠?



