操作数据记录方法、装置和服务器的制造方法

文档序号:6501749阅读:173来源:国知局
操作数据记录方法、装置和服务器的制造方法
【专利摘要】本发明公开了一种操作数据记录方法、装置和服务器,所述方法包括:获取数据操作对象标识,所述数据操作对象标识用于标识内存数据存储系统数据操作的数据操作对象;在内存中缓存所述数据操作对象标识;在文件写入条件被触发时,根据缓存的数据操作对象标识查询对应的数据操作对象的内容,将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件,所述对应的数据操作对象的内容为所述数据操作对象在查询进行时的当前内容。本发明还公开了对应的装置和包括所述装置的服务器。本发明可以在减小进行操作数据缓存的内存容量的同时,保持操作数据记录文件的大小不大幅增加。
【专利说明】操作数据记录方法、装置和服务器

【技术领域】
[0001] 本发明涉及存储技术,具体涉及内存数据存储系统管理技术,尤其涉及内存数据 存储系统的操作数据记录方法、装置和服务器。

【背景技术】
[0002] 内存数据存储系统利用内存读写速度快的优势,在内存中存储大量数据,并直接 在内存中进行数据操作,可以满足目前网络存储对于响应速度的要求。
[0003] 操作数据记录技术为目前通常的计算机存储系统中为提高可用性而采用的方法, 其在计算机存储系统数据操作成功后,在操作数据记录文件中记录数据操作对象标识以及 数据操作对象内容。当存储系统出现故障后,可以使用操作数据记录文件记录的数据操作 将存储系统的数据还原。
[0004] 由于内存数据存储系统具有业务请求量大,响应快的特点,进行操作数据记录时 需要记录的数据极多,硬盘的输入输出速度不能满足需要,因此通常会将操作数据在内存 中缓存起来。现有技术中,通常对所有的操作数据均进行缓存,满足预定条件后再将缓存的 数据写入硬盘中的操作数据记录文件。但是,当对于存储系统的操作数据量和操作频率不 断增长时,如果进行操作数据记录文件写入操作的间隔较短,则会导致操作数据记录文件 占用的存储空间过大,而如果延长进行操作数据记录文件写入操作的间隔,则需要占用极 大的内存空间来进行操作数据缓存,由此,对内存数据存储系统性能构成不良影响。


【发明内容】

[0005] 有鉴于此,本发明提供一种操作数据记录方法、装置和服务器,以降低内存数据存 储系统中用于进行操作数据缓存的内存容量同时保持操作数据记录文件的大小不会过大。
[0006] 本发明公开了一种操作数据记录方法,包括:
[0007] 获取数据操作对象标识,所述数据操作对象标识用于标识内存数据存储系统数据 操作的数据操作对象;
[0008] 在内存中缓存所述数据操作对象标识;
[0009] 在文件写入条件被触发时,根据缓存的数据操作对象标识查询对应的数据操作对 象的内容,将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件,所 述对应的数据操作对象的内容为所述数据操作对象在查询进行时的当前内容。
[0010] 本发明还公开了一种操作数据记录装置,包括:
[0011] 获取单元,用于获取数据操作对象标识,所述数据操作对象标识用于标识内存数 据存储系统数据操作的数据操作对象;
[0012] 缓存单元,用于在内存中缓存所述数据操作对象标识;
[0013] 文件写入单元,用于在文件写入条件被触发时,根据缓存的数据操作对象标识查 询对应的数据操作对象的内容,将数据操作对象标识及对应的数据操作对象的内容写入操 作数据记录文件,所述对应的数据操作对象的内容为所述数据操作对象在查询进行时的当 前内容。
[0014] 本发明还公开了一种服务器,其包括上述的操作数据记录装置。
[0015] 本发明通过在进行操作数据缓存时,仅缓存被操作的数据操作对象标识,而在生 成操作数据记录文件时再根据缓存数据操作对象标识查询对应的数据操作对象的内容,将 数据操作对象标识和数据操作对象内容写入操作数据记录文件,由此,在减小进行操作数 据缓存的内存容量的同时,保持了操作数据记录文件的大小不大幅增加。

【专利附图】

【附图说明】
[0016] 图1是本发明的运行环境的示意图;
[0017] 图2是本发明第一实施例的操作数据记录方法的流程图;
[0018] 图3是现有技术中进行操作数据记录的示意图;
[0019] 图4是本发明第一实施例进行操作数据记录的示意图;
[0020] 图5是本发明第一实施例的一个优选实施方式的流程图;
[0021] 图6是本发明第二实施例的操作数据记录装置的示意图;
[0022] 图7是本发明第二实施例的一个优选实施方式的示意图。

【具体实施方式】
[0023] 下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。
[0024] 图1为可以由本发明使用的典型数据处理系统的示例。本领域技术人员可以理 解,图1阐释了计算机系统的多个组件,并不意味着代表组件连接的任何特定架构和方式。 还应当知道具有较少组件或者可能具有较多组件的网络计算机和其他数据处理系统也可 以用于本发明。
[0025] 如图1所示,计算机系统10是数据处理系统的一种形式,其可以包括总线11。微 处理器12、易失性存储器13以及非易失性存储器14和/或海量存储器15均连接到总线 11,通过总线11进行数据交换和通信。微处理器12可以是独立的微处理器,也可以是一个 或者多个微处理器集合。总线11将上述多个组件连接在一起,同时将上述组件连接到显示 控制器16和显示装置以及输入/输出(I/O)装置17。输入/输出(I/O)装置17可以是鼠 标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的 其他装置。典型地,输入/输出装置17通过输入/输出控制器18与系统相连。
[0026] 计算机系统10中的易失性存储器13在本发明中也称为内存,其具有数据读写速 度快的特点,具体地,易失性存储器13可由动态随机读写存储器(DRAM)实现,动态随机读 写存储器需要持续供电以更新或者维持存储器中的数据。
[0027] 通常而言,非易失性存储器14是指当电流关掉后,所存储的数据不会消失者的存 储器,其可以包括例如只读存储器(ROM)和闪存(Flash Memory)。非易失性存储器典型地 用于存储系统启动的必要程序或其他程序。
[0028] 通常而言,海量存储器15可以是磁性硬盘驱动器或者磁性光学驱动器或者可以 存储大量数据的存储器系统的其他类型,海量存储器15可以在系统切断电源之后还保持 大量数据。尽管图1所示的海量存储器15是与数据处理系统的其他组件直接连接的本地 设备,应当知道本发明可以使用远程海量存储器,例如与数据处理系统通过网络接口相连 的网络存储装置,该网络接口例如调制解调器或者以太网接口。总线11可以包括通过多个 本领域公知的桥连接器、控制器和/或适配器,相互连接的一条或者多条总线。在实施例中 I/O控制器18包括用于控制USB外围设备的USB (通用串行总线)适配器、用于IEEE1394 外围设备的IEEE1394控制器或者用于控制蓝牙外围设备的蓝牙控制器,以及适用于其它 外围设备接口标准的外围设备控制器。
[0029] 本领域技术人员可以理解,本发明的一些实施例可以全部或至少部分由软件实 现。也就是说,本发明的实施例可以在计算机系统10或者其他数据处理系统中以例如微处 理器的处理器执行包含在存储器中的指令序列实现,所述存储器可以是易失性存储器或者 远程存储装置。在多个实施例中,硬连线电路可以与软件指令结合应用,以实现本发明。如 此,该技术并不局限于硬件电路和软件的任何特定结合,也不局限于数据处理系统执行的 任何特定指令源。另外,贯穿该描述,各种功能和操作被描述为由软件代码执行或者由软件 代码引发以简化该描述。然而,本领域技术人员可以认识到该表达意味着该功能由例如微 处理器12的处理器执行代码实现。
[0030] 图2是本发明第一实施例的操作数据记录方法的流程图,如图2所示,所述方法包 括:
[0031] 步骤210、获取数据操作对象标识,所述数据操作对象标识用于标识内存数据存储 系统数据操作的数据操作对象。
[0032] 具体地,本实施例所述的内存数据存储系统是指将大量数据直接存储在内存中并 进行数据访问控制的系统,其可以是例如内存数据库或内存对象缓存系统(Memory Object Caching System)。
[0033] 内存数据库是指将全部数据内容存放在内存中,而非如磁盘数据库那样存放在外 部存储器(例如,硬盘)中的数据库。内存数据库所有的数据访问控制都在内存中进行,其主 要相对于磁盘数据库而言的,磁盘数据库虽然也有一定的缓存机制,但都不能避免从外设 到内存的交换,而这种交换过程对速度性能的损耗很大。由于内存的读写速度极快,所以内 存数据库的读写性能很高,可以应用于在对读写频率极高的环境中。
[0034] 同时,内存对象缓存系统(Memory Object Caching System)用于将数据库的一部 分数据存储到内存中,并直接在内存中进行数据访问控制以减轻数据库负载,其通过在内 存中缓存数据和对象来减少读取数据库的次数,从而提高访问数据库的速度。
[0035] 对于内存数据存储系统,由于其在内存中直接进行数据访问控制,需要对数据操 作历史进行记录,用于在出现数据故障时可以将数据恢复到出现故障前的状态。
[0036] 现有的操作数据记录技术中,采用的方法是在内存中对数据操作(例如,写操作) 的所有操作数据(包括数据操作对象标识和数据操作对象内容)进行缓存,然后每隔预定周 期将缓存的数据写入记录文件。由于对所有操作数据都进行缓存,需要的缓存空间大。
[0037] 本实施例中,仅获取数据操作对象标识,所述数据操作对象标识用于标识内存数 据存储系统数据操作的数据操作对象。具体地,在内存数据存储系统以键-值(Key-Value) 方式存储数据时,数据操作对象标识可以为键-值对中的键,在内存数据存储系统以关系 数据库方式存储数据时,数据操作对象标识可以为关系数据库主键。当然,本领域技术人员 可理解,数据操作对象标识可以为任意地可以标识数据操作对象的标识。
[0038] 步骤220、在内存中缓存数据操作对象标识。
[0039] 具体地,本步骤在内存中的预定区域中对获取的数据操作对象的标识进行缓存, 同时,并不缓存数据操作对象的数据操作内容。
[0040] 步骤230、在文件写入条件被触发时,根据缓存的数据操作对象标识查询对应的数 据操作对象的内容,所述对应的数据操作对象的内容为所述数据操作对象在查询进行时的 当前内容,将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件。
[0041] 具体地,在本步骤中,在需要将缓存数据写入操作数据记录文件时,根据缓存的数 据操作对象标识在内存数据存储系统中查询获取对应的数据操作对象的当前内容,将获取 得到的当前内容写入操作数据记录文件。
[0042] 在本实施例的一个优选实施方式中,每隔预定的时间周期触发文件写入条件,也 艮P,每隔预定时间根据缓存的数据操作对象标识在内存数据存储系统中查询获取对应的数 据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文件。所述操作数据记 录文件可以是新建的、与该时间周期对应的文件,也可以预先建立的、用于记录有所有数据 操作的文件。
[0043] 在本实施例的另一个优选实施方式中,当内存中缓存的数据操作对象标识的数量 达到预定数量阈值时触发文件写入条件,也即,在内存中缓存的数据操作对象标识的数量 达到预定数量阈值时,根据缓存的数据操作对象标识在内存数据存储系统中查询获取对应 的数据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文件。
[0044] 在本实施例的另一个优选实施方式中,当内存中缓存的数据操作对象标识的数据 量达到预定数据量阈值时触发文件写入条件,也即,在内存中缓存的数据操作对象标识的 总数据量达到预定的数据量阈值时,根据缓存的数据操作对象标识在内存数据存储系统中 查询获取对应的数据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文 件。
[0045] 以下以键-值型内存对象缓存系统为例,进一步说明本实施例。键-值型内存对 象缓存系统以键-值对的形式存储数据,并依靠散列地图(Hash Map)来对数据进行管理。 键-值型内存对象缓存系统适宜于对网页(Web)应用以及即时通讯(IM)应用的数据进行存 储。例如,对于即时通讯(頂)应用,用户资料通常以"用户账号-用户数据"的形式存在,由 此,键-值型的存储方式可以方便对用户资料进行存储,同时,内存对象缓存系统的高响应 速度可以满足对于用户资料的频繁读写。
[0046] 在对键-值型内存对象缓存系统进行操作数据记录时,现有的方法对键-值对均 进行缓存,如果在缓存过程中出现重复的数据,则删除旧数据,并缓存新数据,每隔预定时 间周期将缓存的键-值对写入操作数据记录文件。现有的方法如图3所示,在时间点tl和 t2之间,缓存所有操作数据的键-值对,在时刻t2到达时,将缓存的所有键-值对写入操作 数据记录文件,操作数据记录文件记录的为t2时刻该键-值型内存对象缓存系统的状态。 在利用该操作数据记录文件进行恢复时,可以将系统状态恢复到t2时刻。
[0047] 而本实施例则如图4所示,在时间点tl和t2之间,仅缓存所有操作数据的键,在 时刻t2达到时,在进行新的键缓存的同时,开始根据在tl至t2时间段内缓存的键在内 存数据存储系统中查询键对应的值,由于查询需要一定时间,查询到的值有可能并不是时 刻t2的内存数据存储系统的值,而是时刻t2后某一时刻的数据对象的值。将查询得到的 键-值写入操作数据记录文件,操作数据记录文件记录的为t2时刻后某时刻的该键-值型 内存对象缓存系统的状态。在利用该操作数据记录文件进行恢复时,可以将系统状态恢复 到t2时刻后特定时刻的状态。
[0048] 当然,本领域技术人员可以理解,以上描述仅为示例性说明,本实施例的方法可以 应用于以其它现有技术方式存储的内存数据存储系统中。
[0049] 由此,本实施例通过在进行操作数据缓存时,仅缓存被操作的数据操作对象标识, 而在生成操作数据记录文件时再根据缓存数据操作对象标识查询对应的数据操作对象的 内容,将数据操作对象标识和数据操作对象内容写入操作数据记录文件,由此,在减小进行 操作数据缓存的内存容量的同时,保持了操作数据记录文件的大小不大幅增加。
[0050] 如图5所示,在本实施例的一个优选实施方式中,所述方法还可以包括步骤240, 在将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件后,删除内存 中缓存的数据操作对象标识。清空缓存的操作相对于直接用新的数据覆盖的方式安全性更 高,可以提高缓存操作的可靠性。
[0051] 图6是本发明第二实施例的操作数据记录装置的示意图,如图6所示,所述装置60 包括获取单元61,缓存单元62和文件写入单元63。
[0052] 其中,获取单元61用于获取数据操作对象标识,所述数据操作对象标识用于标识 内存数据存储系统数据操作的数据操作对象。
[0053] 具体地,本实施例所述的内存数据存储系统是指将大量数据直接存储在内存中并 进行数据访问控制的系统,其可以是例如内存数据库或内存对象缓存系统(Memory Object Caching System)。
[0054] 缓存单元62用于在内存中缓存数据操作对象标识。
[0055] 文件写入单元63用于在文件写入条件被触发时,根据缓存的数据操作对象标识 查询对应的数据操作对象的内容,将数据操作对象标识及对应的数据操作对象的内容写入 操作数据记录文件,所述对应的数据操作对象的内容为所述数据操作对象在查询进行时的 当前内容。
[0056] 在本实施例的一个优选实施方式中,每隔预定的时间周期触发文件写入条件,也 艮P,每隔预定时间根据缓存的数据操作对象标识在内存数据存储系统中查询获取对应的数 据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文件。所述操作数据记 录文件可以是新建的、与该时间周期对应的文件,也可以预先建立的、用于记录有所有数据 操作的文件。
[0057] 在本实施例的另一个优选实施方式中,当内存中缓存的数据操作对象标识的数量 达到预定数量阈值时触发文件写入条件,也即,在内存中缓存的数据操作对象标识的数量 达到预定数量阈值时,根据缓存的数据操作对象标识在内存数据存储系统中查询获取对应 的数据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文件。
[0058] 在本实施例的另一个优选实施方式中,当内存中缓存的数据操作对象标识的数据 量达到预定数据量阈值时触发文件写入条件,也即,在内存中缓存的数据操作对象标识的 总数据量达到预定的数据量阈值时,根据缓存的数据操作对象标识在内存数据存储系统中 查询获取对应的数据操作对象的当前内容,将获取得到的当前内容写入操作数据记录文 件。
[0059] 本实施例中,仅获取数据操作对象标识,所述数据操作对象标识用于标识内存数 据存储系统数据操作的数据操作对象。具体地,在内存数据存储系统以键-值(Key-Value) 方式存储数据时,数据操作对象标识可以为键-值对中的键,在内存数据存储系统以关系 数据库方式存储数据时,数据操作对象标识可以为数据库主键。当然,本领域技术人员可理 解,数据操作对象标识可以为任意地可以标识数据操作对象的标识。
[0060] 如图7所示,在本实施例的一个优选实施方式中,所述装置60还包括内存清理单 元64,其用于在将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件 后,删除内存中缓存的数据操作对象标识。内存清理单元64可以提高缓存操作的可靠性。
[0061] 由此,本实施例通过在进行操作数据缓存时,仅缓存被操作的数据操作对象标识, 而在生成操作数据记录文件时再根据缓存数据操作对象标识查询对应的数据操作对象的 内容,将数据操作对象标识和数据操作对象内容写入操作数据记录文件,由此,在减小进行 操作数据缓存的内存容量的同时,保持了操作数据记录文件的大小不会过大。
[0062] 本实施例的操作数据记录装置可以应用于服务器中,所述服务器用于进行数据的 访问控制和管理,所述服务器可以为独立地服务器,也可以为相互通信连接的多个服务器 组成的服务器集群,还可以是部署在相同服务器集群中的独立部分或者部署在同一服务器 中的独立部分。
[0063] 本发明的实施例可被实现成纯软件实施例,或者包含硬件元件和软件元件的实施 例。在优选实施方式中,本发明是用软件实现的,所述软件包括但不限于:固件、驻留软件、 微代码等。
[0064] 此外,本发明可以采取可从计算机可用或计算机可读介质访问的计算机程序产品 的形式,所述计算机可用或计算机可读介质提供供计算机或者任何指令执行系统使用,或 者结合计算机或任何指令执行系统使用的程序代码。对本发明来说,计算机可用或计算机 可读介质可以是能够包含、保存、传递、传播或传送供指令执行系统、设备或装置使用,或者 结合指令执行系统、设一备或装置使用的程序的任何设备。
[0065] 所述介质可以是电、磁、光、电磁、红外或半导体系统(或设备或装置)或者传播介 质。计算机可读介质的例子包括半导体或固态存储器、磁带、可拆卸的计算机磁盘、存储器、 硬盘和光盘。网络适配器也可连接到系统,从而使数据处理系统通过居间的专用或公共网 络连接到其它数据处理系统或者远程打印机或存储装置。调制解调器、线缆调制解调器和 以太网卡只是日前可用的各种网络适配器中的一些。
[〇〇66] 以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员 而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同 替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种操作数据记录方法,其特征在于,所述方法包括: 获取数据操作对象标识,所述数据操作对象标识用于标识内存数据存储系统数据操作 的数据操作对象; 在内存中缓存所述数据操作对象标识; 在文件写入条件被触发时,根据缓存的数据操作对象标识查询对应的数据操作对象的 内容,将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件,所述对 应的数据操作对象的内容为所述数据操作对象在查询进行时的当前内容。
2. 根据权利要求1所述的操作数据记录方法,其特征在于,每隔预定的时间周期触发 文件写入条件。
3. 根据权利要求1所述的操作数据记录方法,其特征在于,当内存中缓存的数据操作 对象标识的数量达到预定数量阈值时触发文件写入条件。
4. 根据权利要求1所述的操作数据记录方法,其特征在于,当内存中缓存的数据操作 对象标识的数据量达到预定数据量阈值时触发文件写入条件。
5. 根据权利要求1-4任一所述的操作数据记录方法,其特征在于,所述方法还包括: 在将数据操作对象标识及对应的数据操作对象的内容写入操作数据记录文件后,删除 内存中缓存的数据操作对象标识。
6. 根据权利要求1-4任一所述的操作数据记录方法,其特征在于,所述内存数据存储 系统以键-值方式存储数据,所述数据操作对象标识为键-值对中的键。
7. 根据权利要求1-4任一所述的操作数据记录方法,其特征在于,所述内存数据存储 系统以关系数据库方式存储数据,所述数据操作对象标识为所述关系数据库的主键。
8. -种操作数据记录装置,其特征在于,所述装置包括: 获取单元,用于获取数据操作对象标识,所述数据操作对象标识用于标识内存数据存 储系统数据操作的数据操作对象; 缓存单元,用于在内存中缓存所述数据操作对象标识; 文件写入单元,用于在文件写入条件被触发时,根据缓存的数据操作对象标识查询对 应的数据操作对象的内容,将数据操作对象标识及对应的数据操作对象的内容写入操作数 据记录文件,所述对应的数据操作对象的内容为所述数据操作对象在查询进行时的当前内 容。
9. 根据权利要求8所述的操作数据记录装置,其特征在于,每隔预定的时间周期触发 文件写入条件。
10. 根据权利要求8所述的操作数据记录装置,其特征在于,当内存中缓存的数据操作 对象标识的数量达到预定数量阈值时触发文件写入条件。
11. 根据权利要求8所述的操作数据记录装置,其特征在于,当内存中缓存的数据操作 对象标识的数据量达到预定数据量阈值时触发文件写入条件。
12. 根据权利要求8-11任一所述的操作数据记录装置,其特征在于,所述装置还包括: 内存清理单元,用于在将数据操作对象标识及对应的数据操作对象的内容写入操作数 据记录文件后,删除内存中缓存的数据操作对象标识。
13. 根据权利要求8-11任一所述的操作数据记录装置,其特征在于,所述内存数据存 储系统以键-值方式存储数据,所述数据操作对象标识为键-值对中的键。
14. 根据权利要求8-11任一所述的操作数据记录装置,其特征在于,所述内存数据存 储系统以关系数据库方式存储数据,所述数据操作对象标识为所述关系数据库的主键。
15. -种服务器,其特征在于,包括如权利要求8-14任一所述的操作数据记录装置。
【文档编号】G06F17/40GK104102750SQ201310125211
【公开日】2014年10月15日 申请日期:2013年4月11日 优先权日:2013年4月11日
【发明者】冯晓冰, 高洋 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1