为了提供恰当的对象存取,这些关系本质上可以将持久对象引导到物理分组。对象分组不太容易实现有两个原因。简单来说,如果给定一个类图,则可有三个基本的对象分组存储模型。然而,只有LOID允许对象的垂直分割和继承关系。主要困难是对象的父母被删除时,这个对象要重新分组。分布式系统中,DSM和NSM适合直接使用水平分割。......
2023-10-28
对象从一个节点移动到另外一个节点,这是分布式系统的一个显著特点。这样就产生了新的问题,即对象迁移问题。
下面讨论迁移的单位问题。大家知道,在面向对象概念里,对象由其状态及其上面的方法(行为)来描述。在状态和方法分离的系统中,可以移动系统状态而不移动方法。在一个纯行为系统里,可以将对象按照其行为来分片。若将单个对象置为迁移单位,则其重新分配可能会将它搬离与其捆绑的类型说明(信息),因此必须确定是否将该类型说明复制到每个有实例驻留的节点,或者将行为或方法应用到对象时需存取类型(的定义)。
这样可以将类(型)的迁移问题分成以下三类。
●源码移动,然后在目的地重新编译。
●类编译后的版本可以像其他对象一样迁移。
●类定义的源码移动,但编译后的操作不移动,因为可以使用懒惰迁移策略(lazy migration strategy)。
另外一个问题是必须跟踪对象移动,以便能在其新地点找到该对象。结果是对象可以处于以下四种状态中的一种。
●Ready:Ready对象指目前未被调用,或者还没有收到消息,但等待被调用,对于接收消息状态。
●Active:Active对象指目前已被调用,响应于调用或消息,处于激活状态。(www.chuimin.cn)
●Waiting:Waiting对象已被调用(或已经发送消息给另一个对象),处于等待响应状态。
●Suspended:Suspended对象暂时不能被调用。
处于激活或等待的对象不允许迁移,否则,会被阻塞。
迁移则涉及两步:将对象从源节点发送到目的地;在源节点生成一个代理(proxy),取代原始对象。
这里要注意两个问题。第一个问题是系统目录的维护。因为对象移动时,必须更新系统目录,以反映新的位置。可以采用懒散方法来实现这一点,即无论什么时候,在移动期间,将代理(surrogate/proxy)对象重指向援引(invocation)。第二个问题是在对象移动频繁的高度动态环境里,代理链可能会变得很长。为了系统的透明度,要把这些代理链压结实。而压结实的结果必须反映在目录里,这在懒散方法里不太容易做到。
还要注意组合对象(composite object)的移动问题。组合对象的移动会涉及其参考的其他对象的移动,如对象组装方法。
对象存储包含两个重要问题,即对象分组(object clustering)和分布垃圾收集。大部分对象是组合对象和复杂对象,它们的特性可带来好处:如果在磁盘上将数据有效分组,则可以减少检索时的I/O开销。
当对象数据库中出现分布垃圾收集时,是因为存在基于参考的共享。所以,需要小心对付对象删除和随机的存储空间回收。
有关分布式数据库技术的文章
为了提供恰当的对象存取,这些关系本质上可以将持久对象引导到物理分组。对象分组不太容易实现有两个原因。简单来说,如果给定一个类图,则可有三个基本的对象分组存储模型。然而,只有LOID允许对象的垂直分割和继承关系。主要困难是对象的父母被删除时,这个对象要重新分组。分布式系统中,DSM和NSM适合直接使用水平分割。......
2023-10-28
SQL:1999[7]是ISO制定的一个国际标准。可以说SQL3是为面向对象SQL而定义的,计划作为对象-关系数据库管理系统的基础。与SQL-92相比,新的语言增加了面向对象的特征。JTC 1中的分委员会SC32负责数据库的标准问题,其中,WG3负责SQL标准,而WG4关注SQL/MM。......
2023-10-28
如何将数据库迁移到云上是面临的一个挑战。有些组织会在迁移到云上时重新设计体系结构。例如,用户使用的系统缺乏负载均衡,迁移到云上时,可以让云供应商弥补这个不足。难的是异构数据库的迁移,例如,将Oracle数据库迁移到云端的PostgreSQL上。......
2023-10-28
几乎所有的对象查询处理器都使用关系型系统定制开发的优化技术。通过继承层次存取对象的优化也是面向对象和关系查询处理相区别的问题。图15.8对象查询处理方法对象的复杂结构及其上面提及的那些与关系查询的四点主要差异导致对象查询的优化和关系查询比较有很大不同。查询优化器可以计算整棵处理树的成本。......
2023-10-28
对象的分布设计比前面介绍的关系分布要复杂。对此,分割类是不容易的,原因是对象模型本身的难度。考虑到类和型的问题,对象世界里的分布设计由于对象状态和方法封装在一起而产生了新的问题。,Cn是不相交的。路径分片是将组合对象分组形成一个分片的概念。这样,索引包含一个指向组合对象的所有成分的指针,避免浏览类......
2023-10-28
瞬时对象标识的实现与所使用的程序设计语言有关。对于永久对象标识,可以是物理标识也可以是逻辑标识。注意,选定对象的大小也很重要,使用小对象,导致对象标识数量大,可能会使得OID表十分大。所以,对象标识管理与对象存储技术密切相关。在对象存取期间,如果LOID里的服务器标识部分不直接用在对象定位标示上,则对象标识符起的是纯LOID的作用。在磁盘上通常采用对象标识符作为指针。......
2023-10-28
在关系数据模型上构建对象数据库称为关系-对象模式。前面的VML样例就是基于关系-对象模式的,只是那里的讨论聚焦于模式映射。本节以Oracle为例说明关系-对象模式的实现。由于Oracle是典型的关系型数据库管理系统,因此继承自己的优势是其首要考虑的因素。这样,它采用在关系系统上构建面向对象系统的策略。在许多其他面向对象语言和系统中,Oracle对象类型等于对象类。......
2023-10-28
可串行化是经典数据库事务并发控制的正确性判据。 抽象数据类型集合的前向交换关系兼容和后向交换关系兼容分别如表15.3和表15.4所示。下面从可交换性上来讨论面向对象数据库的事务管理问题。对象系统中,如果使用封锁技术,则封锁颗粒会有变化。这是因为没有把对象的语义考虑在内。ADT上的事务执行需要多级机制。......
2023-10-28
相关推荐