C++实现句柄多版本过期置old的思路

清泛原创
使用MVCC可以解决。

轻量级的不使用MVCC的话,思路如下:

核心ObjPtr
map<id, ObjPtr> map_;

Get的时候返回最新的ObjPtr;
当ObjPtr有新版本要更新的时候,将map中对应id的ObjPtr中is_old置为true,然后将该位置换一个新的ObjPtr;
这样,之前发布出去的对象自动都是old的;map中最新的对象old是false的。这样就完成了一个简单的多版本。
使用的时候,判断句柄是否过期,过期则重新去map拿一次最新句柄。


mvcc 多版本

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部