代码之家  ›  专栏  ›  技术社区  ›  Jules

实现透明持久性

  •  1
  • Jules  · 技术社区  · 15 年前

    透明持久性允许您使用常规对象而不是数据库。对象将自动从磁盘读取并写入磁盘。例如Gemstone和Rucksack(对于commonlisp)。

    简化版:如果你访问 foo.bar 而bar不在内存中,它是从磁盘加载的。如果你这样做了 foo.bar = baz foo

    我的问题是,实现这类系统有哪些不同的技术,这些实现方法之间有哪些权衡?

    1 回复  |  直到 15 年前
        1
  •  1
  •   anon anon    15 年前

    我在几个项目中使用过这样一个系统(ObjectStore),最著名的是一个商业信用风险系统,以及一个优化石油管道网络流量的系统。关于实现的问题太复杂了,无法在这里讨论,但是对于这类系统和关系数据库之间的权衡:

    对象数据库优势:

    • 非常容易与C++代码集成——不需要阻抗匹配层。

    • 可用于面包和黄油积垢应用程序的GUI库数量有限

    关系优势:

    • 即席查询比对象数据库更简单、更快速。

    • 大约一百万个管理数据库的工具

    • 非常容易创建GUI应用程序

    但当然,与所有工具一样,您不必选择一种。我编写的风险应用程序从Sybase数据库导入了数据,而管道则从Oracle导入。