分页: 1 / 1

建议开启缓写需求监控,和临时缓写 空闲或关机后自动关闭缓写

发表于 : 周二 3月 31, 2020 12:45 pm
shouhu178
建议提供自动监控 当磁盘写入大量数据的时候且不空闲的时候弹出弹窗点击弹窗开启,或者设置选项里面默认自动检测到写入量把磁盘占满时自动开启缓写,或者临时缓写到ssd里面空闲时候再写入硬盘,然后缓写完了之后自动关闭缓写,这样既可以保证效率 也能最大概率保证意外事故对数据的破坏 因为只是临时缓写 而且还在这个时候死机概率更低,然后提供缓写数据版本号,比如缓写到固态之后就保存好版本号,然后即使中途断电 也能知道已经记录的版本之前的数据是正常的 这样能保证大量数据的完整性

Re: 建议开启缓写需求监控,和临时缓写 空闲或关机后自动关闭缓写

发表于 : 周二 4月 07, 2020 12:42 pm
Support
非常感谢您的建议,的确提供了一个非常好的思路。关于数据完整性的问题,比较麻烦些,因为PrimoCache是一款磁盘块(扇区)级的缓存软件,没有文件信息,在缓写时可能仅仅是一个文件中的某些扇区。

Re: 建议开启缓写需求监控,和临时缓写 空闲或关机后自动关闭缓写

发表于 : 周三 4月 08, 2020 7:04 pm
shouhu178
可能我的表达有误,我的意思是先把缓写的扇区写入二级缓存 然后由于二级缓存是ssd这种断电也不丢失的设备,创建一个缓存扇区到真实扇区的映射,那么断电前一刻基本上大部分的扇区已经实时写入到缓存里面了,每隔一段时间标记一个版本号,等机械硬盘空闲的时候再慢慢把缓存里面的扇区数据同步过去,即使断电了,那么也有缓存里面的扇区映射,知道哪些数据是没有写入到对应磁盘的,开机后可以写回去,至于数据的完整性,其实如果能保证大部分,比如我每隔一秒把这个映射更新并写入到ssd里面 断电前我保存了一个版本到缓存,那么我丢失的数据最大限度 是不是就相当于这一秒钟更改的数据,因为一秒前的数据我应经写到固态并做好映射了,等开机的时候就可以检查当前最新的版本拿着映射去继续缓写,不知道这样的方式是否可行,我也是一个程序员,对底层了解不是很多,有讲错的地方还请指正

Re: 建议开启缓写需求监控,和临时缓写 空闲或关机后自动关闭缓写

发表于 : 周三 4月 08, 2020 7:05 pm
shouhu178
support 写了: 周二 4月 07, 2020 12:42 pm 非常感谢您的建议,的确提供了一个非常好的思路。关于数据完整性的问题,比较麻烦些,因为PrimoCache是一款磁盘块(扇区)级的缓存软件,没有文件信息,在缓写时可能仅仅是一个文件中的某些扇区。
可能我的表达有误,我的意思是先把缓写的扇区写入二级缓存 然后由于二级缓存是ssd这种断电也不丢失的设备,创建一个缓存扇区到真实扇区的映射,那么断电前一刻基本上大部分的扇区已经实时写入到缓存里面了,每隔一段时间标记一个版本号,等机械硬盘空闲的时候再慢慢把缓存里面的扇区数据同步过去,即使断电了,那么也有缓存里面的扇区映射,知道哪些数据是没有写入到对应磁盘的,开机后可以写回去,至于数据的完整性,其实如果能保证大部分,比如我每隔一秒把这个映射更新并写入到ssd里面 断电前我保存了一个版本到缓存,那么我丢失的数据最大限度 是不是就相当于这一秒钟更改的数据,因为一秒前的数据我应经写到固态并做好映射了,等开机的时候就可以检查当前最新的版本拿着映射去继续缓写,不知道这样的方式是否可行,我也是一个程序员,对底层了解不是很多,有讲错的地方还请指正

Re: 建议开启缓写需求监控,和临时缓写 空闲或关机后自动关闭缓写

发表于 : 周四 4月 09, 2020 10:53 am
Support
嗯,这些我们都有考虑过,而且我们也希望能实现这种功能。只是难度在映射信息上,由于缓存软件的映射信息可能数据量比较多,而且会更新非常频繁,在突然断电时记录的映射信息有可能处在正在刷新的过程中,这就可能导致信息不完整或部分错误的情况。如果用错误的映射信息来恢复数据,就可能会出现覆盖正常数据的情况,这将会是个灾难性的问题。