发明名称 一种支持历史Key信息的内存数据库
摘要 支持历史Key信息的内存数据库涉及计算机应用领。在memcached中添加自定义函数get_KeyitemList,对process_update_command、complete_nread、process_get_command和process_delete_command函数改造后成为支持历史Key值存储的Hmemcached。Key值的数据存储采用不断追加记录的方式。一个Key的历史数据的数量根据需要设定。同一KEY值的不同历史数据在Hmemcached内部的存储使用Key_NO作为Key值的形式,NO是从0到系统允许的最大记录数MAX_RECNO-1中的一个数字。记录时若未超过设定的最大记录条数,直接追加;若超过则采用先进先出的方法,删除掉首条记录,再将新记录追加至此Key中。本发明有效解决了分布式系统中以Key-Value方式对同一Key值存储的历史数据访问问题,数据被写入每个主机的Hmemecached管理的内存中,客户端无需改动,方便实用。
申请公布号 CN102073690A 申请公布日期 2011.05.25
申请号 CN201010607113.X 申请日期 2010.12.27
申请人 四川川大智胜软件股份有限公司 发明人 胡术;莫思特;李晓峰;邱敦国;黄戈;刘舒;刘宇
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 成都和睿达专利代理事务所(普通合伙) 51217 代理人 潘育敏
主权项 一种支持历史Key信息的内存数据库,其特征在于:对memcahed中的某些函数进行改造,改造后的memcahed成为能够支持历史信息的Hmemcached;对于同一KEY值不同的数据在Hmemcached内部的存储使用Key_NO作为Key值的形式,NO是值从0到系统最大记录数MAX_RECNO‑1中的某个数,当主机中某个进程提出对某个Key写入请求时,启动数据操作流程,由Hmemcached通过查询当前操作的Key的记录条数,若未超过设定的最大记录条数,则直接追加一条记录;若超过设定的最大记录条数,则采用先进先出的方法,删除掉首条记录,再将新记录追加至此Key的记录中;系统中的数据以KEY‑VALUE的方式存储,memcached客户端实例化为N个,N为集群中主机的个数,每个客户端连接一个集群环境中的服务器主机,主态进程调用对Key值进行赋值操作时,调用每个客户端实例对集群中主机的Hmemecached进行写入操作,数据被写入每个主机的Hmemecached管理的内存中;所述对memcahed中的某些函数进行改造包括:增加自定义get_KeyitemList函数,改造process_update_command函数、complete_nread函数、process_get_command函数和process_delete_command函数;在自定义get_KeyitemList函数中,获得Key对应的所有历史item,存储到作为返回值的item_list链表中,确定返回该Key值有多少条记录;在process_update_command加入对更新的Key值的处理,完成新记录数据的加入;在complete_nread函数中加入对更新的Key值的处理,完成新记录数据的加入;在process_get_command加入读取指定Key所有记录数据的处理;在process_delete_command加入读取指定Key所有记录数据并进行删除处理;数据操作流程包括:数据写入、数据读出和数据删除。
地址 610045 四川省成都市武侯科技园武科东一路7号