FTPC Key原理

FTPC Key存储

        FTPC中Key的当前值存储在DATASWEEP_SEQUENCE表中,而未使用Oracle数据库的Sequence,或SQL Server的identity,这样做到与底层数据库类型无关性。Key共分为以下几种类型

        

        SEQ_NUM_ID:通过该主键获取对应类型Key的初始值

        SEQUENCE_NUMBER:下一次获取Key时的初始值,由于Key存在缓存,无法确定当前使用到哪一个Sequence Number值

        DESCRIPTION:该Sequence Number使用对象类型的描述

FTPC Key获取

        FTPC中提供了存储过程,通过Key值的大小来获取对应类型Key的开始值,结束值。

        Oracle数据库的Procedure中,有以下存储过程来获取对应类型Key的开始值,结束值

        

        以下为DSGETMULTIPLEDEFAULTIDS源码,其他的存储过程只是其中seq_num_id的值不同。FTPC通过调用该存储过程获取开始值、结束值缓存在服务中,并更新sequence_number的初始值。

       

FTPC Key缓存

        FTPC服务器上缓存的事务Key值最少为3000个。如果有超过3000个事务请求,FTPC将自动为它们分配更多的空间。此缓存机制是不可配置的。因为缓存了一个键块,所以不能保证Key的顺序。如果想知道事务的创建顺序,建议查看trx_time值(它具有毫秒数据),而不是trx_key值。

猜你喜欢

转载自blog.csdn.net/panjin72/article/details/87218214