我有一个需要数据库+的应用程序,它将从MVCC模型中获益良多。理想情况下,它将支持永久历史存储、在特定时间点访问数据以及增量备份。
我在看可能支持这个的数据库。我知道CouchDB可以(除了增量备份之外,我不确定这一点),但在这个应用程序中,我确实需要一个关系数据库。
我很惊讶MySQL列出MVCC支持在Innodb / Falcon。我的印象是,这可能只适用于事务中的数据库状态,一旦提交了所有事务级别,历史记录就会丢失。
那PostgreSQL呢?
发布于 2009-11-06 18:06:53
MVCC不是你要找的。听起来,您希望能够基于“时间点”查询数据,并根据指定时间点的数据状态查询结果。
那是一个时态数据库模式。您可以为时态查询设计关系数据库模式,但是SQL本身使得某些类型的时态查询非常麻烦。存在/曾经有一个时态SQL方言 ( 规格在这里,虽然它似乎是研究出版物的主题,但从来没有标准化),它应该使时态查询不再那么麻烦,而仍然“是SQL”。
如果您搜索时态数据和关系模型,您可以找到很多关于它的研究和书籍。良好的数据建模可以帮助您达到您想要的目标,尽管如果您要使用SQL作为您的查询语言,您可能不喜欢某些查询的结果。
编辑:TimeDB是甲骨文的前端,它添加了时态查询方言。这个代码是在什么许可下发布的,目前还不清楚。
发布于 2010-07-31 03:00:41
McObject在2009年11月宣布,其eXtremeDB数据库添加了一个可选的MVCC事务管理器:
http://www.mcobject.com/november9/2009
eXtremeDB最初是作为内存数据库系统(IMDS)开发的,现在有了混合存储(内存/磁盘存储)、高可用性、64位支持等版本。接口包括SQL、更快的原生API和(JNI)。
发布于 2010-07-31 03:06:27
MVCC有一个很好的解释--用图表--以及McObject的联合创始人兼首席执行官在RTC杂志上写的eXtremeDB的一些性能数字:
http://www.rtcmagazine.com/articles/view/101612
显然,作为一个应用程序规模,MVCC越来越有益于包含在多个CPU核上执行的许多任务。
https://serverfault.com/questions/82272
复制相似问题