C++对象的持久化中的问题和解决方案
DOI:
作者:
作者单位:

作者简介:

通讯作者:

中图分类号:

基金项目:


MAKING C+ + OBJECTS PERSISTENT:PROBLEMS AND SOLUTIONS
Author:
Affiliation:

Fund Project:

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    多媒体智能数据库系统MIDS(multimediaintelligentdatabasesystem)是一个对象数据库管理系统.它的数据库编程语言是P++,P++个语言是一种基于C++的语言.作者在P++的实现过程中遇到了以下问题:首先,C++的指针有二义性,它无法在语义上区分成员指针和引用指针,以及易失性指针和持久性指针,从而给事务管理中的对象加锁及其它方面带来问题.其次,具有虚拟函数或虚拟基类的对象中含有指向内存中的指针,而这些指针不是由程序员定义的.如果C+个对象被持久化,这些指针在不同的程序调用中有可能无效.最后,如果作者用文件系统调用来存储对象,那么必须要设计复杂的Cache系统和做大量对象的格式转化工作,这需要大量的空间和时间,所以他们采用了另外的一种方法──基于虚拟内存空间映射的存储方案.

    Abstract:

    MIDS(mutitmedia intelligent database system) is an object database management system.Its database programming language is P++,which is based on C++.In the implementation of P++ the authors encountered the following problems:First,C++ pointer is ambiguous,not only can member pointer and reference pointer not be distinguished in semantics,but also volatile pointer and persistent pointer.This pointer ambiguity results in object locking problem in transaction management and others.Second, C++ objects that have virtual functions or virtual base classes contain memory pointers, which were not specified by the programmer.If such C++ objects are made persistent,then these pointers may be invalid across program invocations.Last,If the authors store object using file system call services,they should design complicated cache subsystem and a large amount of object format transformation,which demand a lot of memory and time.So they must find another solution storage scheme based on virtual memory mapping.

    参考文献
    相似文献
    引证文献
引用本文

陶伟,麦中凡. C++对象的持久化中的问题和解决方案.软件学报,1996,7(2):73-82

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:
  • 最后修改日期:1994-12-29
  • 录用日期:
  • 在线发布日期:
  • 出版日期:
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号