微商货源网
243 1 1
首页 > 信息资讯 > 资讯

5月2日到6月15日 你知道发生了什么吗

作者:admin 发布时间:2022-08-23 11:56:41 分类:资讯 浏览:


这篇文章很有意思,讲了一个比较完整的故事。这里总结一下。近期数据管理系统中常用的加速系统的方法1.要么使用动态随机存取存储器服务器。这个例子是将多个节点的动态随机存取存储器进行逻辑组合,以增加单个节点的可用存储器2.要么采用主存数据库技术,几乎完全在内存中操作数据。这个例子是IBM内存中......

这篇文章很有意思,讲了一个比较完整的故事。这里总结一下。

近期数据管理系统中常用的加速系统的方法

1.要么使用动态随机存取存储器服务器。这个例子是将多个节点的动态随机存取存储器进行逻辑组合,以增加单个节点的可用存储器

2.要么采用主存数据库技术,几乎完全在内存中操作数据。这个例子是IBM内存中的多个副本相互同步

但是由于DRAM的数据丢失特性。如果您想确保数据不会在系统中丢失,您需要引入更多开销,通过在非易失性存储介质上维护数据的副本来解决问题。

并且在崩溃或计划的数据系统维护之后需要很长时间来恢复,因为它需要从非易失性存储介质重建存储器中的数据。

然后拉了一段说SCM是大家的希望。

但是,上面提到的两种技术必须保证引入检查点或日志技术。最新的解决方案是将数据的多个副本保存在不同的服务器内存中

而且这种能耗比较大。

为了正确实现软件,必须解决三个问题

对于数据结构,必须向声明中添加一些约束,因为

错误随时可能发生。例如,如果将持久性指针变量指向未初始化的

如果系统在块初始化和指针更新之间崩溃,内存块地址可能会导致无法检测的错误

但是,交换更新顺序,使块在指针之前初始化,可以确保即使出现错误也能重新启动。

事后数据的一致性。

重要的是要确保持久化订购要求定制所有更新

对persistentmemory的顺序执行。且仅在典型存储器一致性协议中实现这些更新

全球知名度不够。必须有额外的硬件支持,这将在第2.1节中讨论

2.2.persistenceatomicity的事务语义要求一组相关记录的更新必须代表一组完整的操作

这意味着要么所有记录都已更新,要么没有更新。

因为错误随时可能发生,所以系统必须以某种方式备份一个缺省的设置数据,或者推迟更新

直到所有数值都记录在停电安全存储区。传统软件系统称底层文件系统为

数据库来执行事务性更新,并使用基于磁盘的日志记录或复制写入机制来确保更新

的执行没有分区,并且在事务提交后始终保持可恢复状态。

3 .持久性保护持久性存储系统中的编程错误很难找到。

首先,由于持久特性的变化,仅靠重启是不可能达到一致的内存状态的。和

由于数据结构之间的指针关系在易失性和非易失性存储器之间传播,因此确保编程的健壮性是一个巨大的挑战。

我们来看看前面的方法是如何解决以上三个问题的。

为了保证BPFS中的更新顺序,提出了一种称为epochbarriers的新机制,标识了一个缓存行

历元号和高速缓存硬件被修改以确保存储器回写顺序总是遵循历元号顺序。

记忆中持久性的书写顺序由以下因素决定

1.一些不缓冲的写模式是非缓存写模式

2.cachelineflush操作

3.记忆障碍(栅栏指令)

然而,围栏指令仅确保需要增强全局可见性,以确保围栏指令的完成表明

挂起的写入也被提交到persistentmemory。

一种称为cachelinecounters的轻量级硬件机制可以允许软件查询特定集合中的所有写入

提交到内存并延迟依赖于此写入的操作。

软件原语刷新与内存栅栏指令相结合,可以允许软件对更新操作进行排序。

在[22,7]中,提出了基于排序原语的持久日志实现。

在本文中,有序基元的保守使用只能保证事务中的更新轨迹在事务提交之前

在安全断电的情况下被记录到持久存储区。

在[22,7]中提出的对数结构在这里进行了简化和使用。

标签tag: