对象的分布设计比前面介绍的关系分布要复杂。对此,分割类是不容易的,原因是对象模型本身的难度。考虑到类和型的问题,对象世界里的分布设计由于对象状态和方法封装在一起而产生了新的问题。,Cn是不相交的。路径分片是将组合对象分组形成一个分片的概念。这样,索引包含一个指向组合对象的所有成分的指针,避免浏览类......
2025-09-30
对象从一个节点移动到另外一个节点,这是分布式系统的一个显著特点。这样就产生了新的问题,即对象迁移问题。
下面讨论迁移的单位问题。大家知道,在面向对象概念里,对象由其状态及其上面的方法(行为)来描述。在状态和方法分离的系统中,可以移动系统状态而不移动方法。在一个纯行为系统里,可以将对象按照其行为来分片。若将单个对象置为迁移单位,则其重新分配可能会将它搬离与其捆绑的类型说明(信息),因此必须确定是否将该类型说明复制到每个有实例驻留的节点,或者将行为或方法应用到对象时需存取类型(的定义)。
这样可以将类(型)的迁移问题分成以下三类。
●源码移动,然后在目的地重新编译。
●类编译后的版本可以像其他对象一样迁移。
●类定义的源码移动,但编译后的操作不移动,因为可以使用懒惰迁移策略(lazy migration strategy)。
另外一个问题是必须跟踪对象移动,以便能在其新地点找到该对象。结果是对象可以处于以下四种状态中的一种。
●Ready:Ready对象指目前未被调用,或者还没有收到消息,但等待被调用,对于接收消息状态。
●Active:Active对象指目前已被调用,响应于调用或消息,处于激活状态。(https://www.chuimin.cn)
●Waiting:Waiting对象已被调用(或已经发送消息给另一个对象),处于等待响应状态。
●Suspended:Suspended对象暂时不能被调用。
处于激活或等待的对象不允许迁移,否则,会被阻塞。
迁移则涉及两步:将对象从源节点发送到目的地;在源节点生成一个代理(proxy),取代原始对象。
这里要注意两个问题。第一个问题是系统目录的维护。因为对象移动时,必须更新系统目录,以反映新的位置。可以采用懒散方法来实现这一点,即无论什么时候,在移动期间,将代理(surrogate/proxy)对象重指向援引(invocation)。第二个问题是在对象移动频繁的高度动态环境里,代理链可能会变得很长。为了系统的透明度,要把这些代理链压结实。而压结实的结果必须反映在目录里,这在懒散方法里不太容易做到。
还要注意组合对象(composite object)的移动问题。组合对象的移动会涉及其参考的其他对象的移动,如对象组装方法。
对象存储包含两个重要问题,即对象分组(object clustering)和分布垃圾收集。大部分对象是组合对象和复杂对象,它们的特性可带来好处:如果在磁盘上将数据有效分组,则可以减少检索时的I/O开销。
当对象数据库中出现分布垃圾收集时,是因为存在基于参考的共享。所以,需要小心对付对象删除和随机的存储空间回收。
相关文章
对象的分布设计比前面介绍的关系分布要复杂。对此,分割类是不容易的,原因是对象模型本身的难度。考虑到类和型的问题,对象世界里的分布设计由于对象状态和方法封装在一起而产生了新的问题。,Cn是不相交的。路径分片是将组合对象分组形成一个分片的概念。这样,索引包含一个指向组合对象的所有成分的指针,避免浏览类......
2025-09-30
关于面向对象数据库系统的体系结构问题,最简单的形态是Client/Server。下面讨论Client/Server体系结构,但要指出,并不是大多数面向对象数据库管理系统都是Client/Server系统。在对象Client/Server DBMS里,这不是最好的方法,因为应用程序的组合/复杂对象结构的导航指派将数据移到客户端。限于篇幅,下面只讨论对象Client/Server体系结构和页面Client/Server体系结构两种典型的体系结构。......
2025-09-30
据观察,在150℃条件下的电迁移试验中,铅是主要的扩散元素。回流结束后,高铅焊料内会产生Cu3 Sn,但随着锡向热端扩散,Cu3 Sn转变为Cu6 Sn5。在硅侧的整个接触区域内,孔洞和Cu6 Sn5的分布是均匀的。......
2025-09-29
在关系数据模型上构建对象数据库称为关系-对象模式。前面的VML样例就是基于关系-对象模式的,只是那里的讨论聚焦于模式映射。本节以Oracle为例说明关系-对象模式的实现。由于Oracle是典型的关系型数据库管理系统,因此继承自己的优势是其首要考虑的因素。这样,它采用在关系系统上构建面向对象系统的策略。在许多其他面向对象语言和系统中,Oracle对象类型等于对象类。......
2025-09-30
面向对象的技术可以利用继承的特性减少建模过程中的工作量, 并增加模型的通用性。仿真基于事件和时间驱动的, 在一个仿真时钟步长内, 对其所有的设备进行相关事件判断。因此在本章研究的仿真中, 主要是依靠设备的事件判断为主, 相关工件的事件为辅来推进仿真。利用面向对象的技术可以将设备和工件抽象成为两个类, 每个设备和工件都将具有相应类中的所有属性。......
2025-09-29
Oracle公司的OPS环境比一般的(单实例)Oracle环境复杂得多。不同结构下的OPS的实施略有不同。图14.23OPS体系结构为了利用这些特性,需要专业人员合适的设计以及恰当的手工配置。下面对有些关键问题进行简单讨论,讨论中会涉及一些Oracle系统专用的术语,读者可参阅Oracle公司的相关文档。DLM与Oracle进程一起工作并相互通信。DLM相关的初始化参数在每个实例的SGA[12]中分配必要的结构以处理消息机制、封锁与实例相关的Cache管理,这样就为各种Oracle进程操纵提供了基础。......
2025-09-30
下面推荐两种主要的Client/Server体系结构:对象服务器体系结构和页面服务器体系结构。对象服务器体系结构里不要求服务器逐个将对象发送给客户端,可以成组发送。图15.7所示的是页面服务器体系结构,早期在页面服务器体系上的性能研究要多于对象服务器体系结构的。......
2025-09-30
前面提及的OPS是Oracle 6.0中引入的,RAC源自OPS,但作为新的产品推出。一个4节点的集群结构如图14.24所示。图14.24一个4节点的集群结构RAC起源于OPS,在Oracle 6.0.35版本中引入。最初只适用于Digital VAX/VMS集群使用Oracle开发的分布式封锁管理器。从Oracle 9.0.1开始,OPS重新改为RAC可选项。在商业上,RAC已是一个完整的新产品。然而在技术上,OPS和RAC的一个重要区别是超高速缓存相关性。OPS里,实例间的块协调由PCM处理。Oracle 8i引入了Cache Fusion PhaseⅠ,部分淘汰了磁盘ping。......
2025-09-30
相关推荐