数据淘汰

TcaplusDB后台淘汰记录的两种方式:

  1. 被动淘汰:有请求访问记录时,实时判断该记录是否过期, 过期记录立即清除,并返回记录不存在。
  2. 主动淘汰:Tcaplus后台遍历表,判断并删除已过期记录。主动淘汰因会遍历整张表,因此性能消耗相对较大,通常由DBA配置在业务低峰期扫描。

在产品形态上,TcaplusDB支持“表级数据淘汰”和“记录级数据淘汰(TTL)”

1. 表级数据淘汰

  1. TcaplusDB支持为任何表配置一个根据"记录最后修改时间"做判断的数据淘汰规则,如淘汰30天前的邮件。
  2. 记录在更新数据(插入、修改、替换)的时候,系统会自动更新记录的"最后修改时间"。
  3. 仅通过"主动淘汰"方式,判断"系统当前时间 - 记录最后修改时间 > 过期时间"来淘汰过期的记录。 因此过期记录可能延迟天级别删除。

1.1. 适用场景

  1. 全表的数据都遵循相同的数据淘汰规则;
  2. 能够容忍数据过期后,短时间内还可以查询到的情况。如设置30天淘汰的记录,可能在31天才删除。
  3. 淘汰时间的粒度在天以上。

1.2. 使用方法

  1. 告知DBA, 由DBA通过TcaplusDB OMS控制台设置表级淘汰策略

  2. 通过TcaplusDB WebService API设置表级淘汰策略

2. 记录级数据淘汰(TTL)

  1. TcaplusDB支持为Generic表(List表暂不支持)的单条数据设置过期时间(TTL)。一张表的不同记录可以有不同的过期时间。
  2. 业务通过调用SetTTL和GetTTL等接口设置和查询记录的过期时间
  3. TcaplusdB通过"主动淘汰"和"被动淘汰"相结合方式,判断"系统当前时间 > 过期时间"来淘汰过期的记录。

2.1. 适用场景

  1. 记录的过期时间需要精确到秒或毫秒级,过期时间后一定访问不到记录.
  2. 一张表中的不同记录需要设置不同的淘汰时间.

2.2. 使用方法

查询和设置单条数据的过期时间(TTL)接口,参见TcaplusDB SDK & API文档中的相关接口说明。

注意:如果设置了表界别数据淘汰的同时,调用TTL接口设置了某些key永不过期淘汰(记录级别淘汰),实际也可能淘汰TTL接口设置永不淘汰的记录

results matching ""

    No results matching ""