TimesTen Aging会清理未来的数据吗

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TimesTen Aging会清理未来的数据吗相关的知识,希望对你有一定的参考价值。

前一阵用户问一个问题,如果基于时间窗的缓存组中插入了未来的数据,此数据会被清理吗?

我感觉不会,最终结果也是如此。下面来验证一下。不过我不准备用缓存组来测试了,直接用缓存表吧。反正概念一样。

先建一个带非空时间字段的表t1。

-- Database is in Oracle type mode
create table ORATT.T1 (
        C1 VARCHAR2(4000 BYTE) NOT INLINE,
        C2 DATE NOT NULL DEFAULT sysdate);

定义基于时间窗的缓存,窗口为10天,每5秒检查一次。

alter table "ORATT"."T1"
    add aging use C2 lifetime 10 days
    cycle 5 seconds
    ON

插入2条数据,一条为当前时间,一条为11天前的。

insert into t1 values('a');
insert into t1 values('b', sysdate  - 11);
commit;

过不多久,根据测量,11天的那条就被删除了。

insert into t1 values('b', sysdate  + 10);
commit;

再插入一条10天以后的数据:

insert into t1 values('b', sysdate  + 10);
commit;

过了很久,这条数据还在。
即使手工运行Aging检查,这些数据仍在:

call ttAgingScheduleNow('t1');

以上是关于TimesTen Aging会清理未来的数据吗的主要内容,如果未能解决你的问题,请参考以下文章

TimesTen Classic缓存组和NOT NULL

TimesTen磁盘空间管理

TimesTen缓存组与触发器

TimesTen 数据库复制学习:10. 定义classic复制

TimesTen 应用层数据库缓存学习:17. 全局数据缓存(cache grid)的高可用性

理解TimesTen内存数据库DBI文件的作用以及相关故障处理