首页 新闻 会员 周边

内存中的数据持久化探讨?

0
[已解决问题] 解决于 2008-08-09 17:57
这个问题是我在想WF的时候想到了,它的工作流程是在内存中的,也可以提供持久化到db中的机制,于是我想到了,像我们平常中程序运行过程中也会在内存中保留有各种数据结构,如果因为异外宕机了,那我们在内存中的数据就不复存在了,那我们如果再启动程序时如何能够重现宕机前内存中的数据,使是程序可以从那个数据点继续运行,不知道大家有这方面的经验吗?交流一下,感觉这个算是灾难恢复的范畴吗?还是说我们要在程序中实现持久化的机制,可我感觉这个行不太通,不可能时刻都持久化啊
lexus的主页 lexus | 初学一级 | 园豆:0
提问于:2008-08-09 11:16
< >
分享
最佳答案
0
>> WF也不是时刻持久化的。 对。真正的灾难恢复往往都是需要硬件支持的。 为了提高你的数据的安全性,我感觉有两点需要注意。 1. 类似咸蛋超人所说 缓存只是提高数据读取的机制,并不缓存数据存储。也就是说,当你要写一个数据时,需要立即写入到数据库中。而读取数据的时候,你会先向数据库查询当前版本信息,如果版本信息和你缓存的数据的版本一致。直接使用缓存的数据。否则,重新载入数据库中的数据到缓存中。 2. 事务 你应该将你的业务逻辑划分为独立的事务单元,确保每个事务完成后结果都被很好的持久化了(方法可以自己考虑)。这样,及时系统发生了崩溃,你也可以恢复上一个成功的事务的状体,然后继续执行下面的事务。 其实,WF就是定义了这样一个基础结构。他并没有实现很高级的灾难恢复能力。仅仅是让每一个在WF上开发的人都按照这个机理来管理自己的业务逻辑。从而达到更高的数据安全性。
Colin Han | 老鸟四级 |园豆:3041 | 2008-08-09 14:35
其他回答(2)
0
可以将读取过的数据保存起来...如果是需要插入、更新的数据被放到缓存里面的话,如果碰上down机就是灾难....需要插入和更新的数据统一保存到数据库里面,然后再附加到缓存中........ 这些数据,主要是频繁读取的数据 或者 固定的数据...
咸蛋超人 | 园豆:485 (菜鸟二级) | 2008-08-09 12:09
0
WF也不是时刻持久化的。
Windie Chai | 园豆:580 (小虾三级) | 2008-08-09 12:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册