首页 > 开发 > 综合 > 正文

DODS学习日记(五)

2024-07-21 02:14:08
字体:
来源:转载
供稿:网友

从5.1final版开始,do的缓存转换到datastruct的缓存中.只有那些原始的datastructs加入到新的datastruct缓存中而不是所有的do,do只有一个数据(datastruct对象).所有的转换是在这个对象上完成的, datastruct对象包含了每个表的列的值,现在,do保存了两个datastruct引用.

(1)    orginaldata

(2)    data

orginaldata保存了原始的数据(从数据库中读取),这个数据将不会被修改直到提交,而且如果缓存存在,则该datastruct对象被加到datastruce缓存中去.

data仅仅当数据被修改才会产生(拷贝orginaldata),如果第二个datastruct存在,那么do的属性”isdirty”将被设置为true,即使经过一些修改之后,新的datastruct保存了根orginaldata一样的值.该do仍然是脏的,所有没有办法让属性isdirty由true到false,除非在提交事务的过程中,如果事务被提交,新的datastruct将会转移到orginaldata.新的

datastruct将会再次置为空,所有属性isdirty变为false.

一个新生成的do(内存中,而不是数据库中)将只有一个datastruct对象数据, orginaldata中的orginaldata数据值在提交之前为空..

oid和version属性从do转移到datastruct对象.

datastruct中新添加的属性有:

isempty和databasename

datastruct中新添加的方法有:

getoid()

setdatabase(string dbname)

……..
      


dods为每张表拥有缓存的可能.可能的缓存类型有:none,lru.和full.

dods有两种层次的缓存.

数据缓存级.只有一个lru缓存,

查询缓存级,可以有两个查询缓存(简单和复杂类型),这些查询缓存也是lru缓存.

缓存的配置:

同上面的类似,也分为三个层次的.


中国最大的web开发资源网站及技术社区,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表