Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR MANAGING TERMINAL DATA RECORDS
Document Type and Number:
WIPO Patent Application WO/2012/013008
Kind Code:
A1
Abstract:
A method and a device for managing terminal data records are disclosed. The method includes: assigning a local unique identifier (LUID) for each data record in terminals; assigning a universal unique identifier (UUID) for the storage location of each data record in terminals; respectively establishing a mapping relationship between the LUID and UUID of each data record in terminals; respectively hiding the corresponding UUID in each storage location of a revising record changelog file; and during the asynchronous operation period of data recording, revising the value of a revising record entry in the changelog file by using the established mapping relationship between the LUID and UUID; and during the synchronous operation period of data recording, performing a synchronous operation for data records by using the established mapping relationship between the LUID and UUID and the value of the revising record entry of the chagelog file. The method and device can significantly reduce the length of a changelog file, obviously lower the operation complexity of the changelog, and simplify the operation and maintenance of the whole changelog file.

Inventors:
FU, Liqin (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
付丽琴 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
PU, Jingchun (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
蒲竞春 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
YUAN, Lei (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
袁磊 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
Application Number:
CN2010/080666
Publication Date:
February 02, 2012
Filing Date:
December 31, 2010
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORPORATION (ZTE Plaza, Keji Road South Hi-Tech Industrial Park, Nanshan Distric, Shenzhen Guangdong 7, 518057, CN)
中兴通讯股份有限公司 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦, Guangdong 7, 518057, CN)
FU, Liqin (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
付丽琴 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
PU, Jingchun (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
蒲竞春 (中国广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦中兴通讯股份有限公司转交, Guangdong 7, 518057, CN)
YUAN, Lei (ZTE Plaza Keji Road South, Hi-Tech Industrial Park, Nansha, Shenzhen Guangdong 7, 518057, CN)
International Classes:
G06F17/30
Attorney, Agent or Firm:
AFD CHINA INTELLECTUAL PROPERTY LAW OFFICE (Suite B 1601A, 8 Xue Qing Rd.Haidian, Beijing 2, 100192, CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种管理终端数据记录的方法, 包括以下步骤:

为终端的每一条数据记录分配一个本地唯一标识符 LUID;

为终端的每一条数据记录的存储位置分配一个全局唯一标识符 UUID; 分别为终端的每一条数据记录建立 LUID与 UUID的映射关系; 在修改记录 changelog文件中的每个修改记录项的存放位置分别隐藏该 爹改记录项相对应的 UUID;

在数据记录非同步操作期间, 使用所建立的 LUID与 UUID的映射关系 修改 changelog文件中的修改记录项的值; 以及

在数据记录同步操作期间, 使用所建立的 LUID与 UUID的映射关系和 所述 changelog文件的修改记录项的值执行数据记录同步操作。

2、 根据权利要求 1所述的方法, 其中, 修改 changelog文件中的修改记 录项的值的步骤包括:

在数据记录非同步操作期间, 首先利用 UUID与 LUID的映射关系找到 由 LUID标识的数据记录的 UUID , 然后修改 changelog文件中的与所找到的 UUID对应的修改记录项的值。

3、 根据权利要求 1所述的方法, 其中, 执行数据记录同步操作的步骤包 括:

在数据记录同步操作期间,首先读取 changelog文件中修改记录项的有效 值及该爹改记录项对应的 UUID,然后利用读取的 UUID与 LUID的映射关系 得到 LUID所标识的数据记录, 然后再对所得到的数据记录进行同步操作。

4、 根据权利要求 2或 3所述的方法, 其中, 所述 changelog文件中修改 记录项的存放位置的序号为 changelog文件的字节序号,其中所述字节序号与 所述 UUID的关系为: BN = ( UUID-1 ) BL + 1 , 其中 BN为字节序号, BL 为修改记录项字节长度。

5、 根据权利要求 4所述的方法, 其中, 所述修改记录项字节长度为固定 值。

6、 根据权利要求 1所述的方法, 其中, 所述数据记录非同步操作包括: 添力。或修改数据记录;

使用所建立的 LUID与 UUID的映射关系修改 changelog文件中的修改记 录项的值的步骤包括: 在添加或修改数据记录后, 或者在数据记录同步成功 的后续处理中, 使用所建立的 LUID与 UUID的映射关系修改 changelog文件 中的修改记录项的值。

7、 根据权利要求 6所述的方法, 其中, 在数据记录同步成功的后续处理 中修改 changelog文件中的修改记录项的值的步骤包括:

对于已完成同步的数据记录, 利用 UUID 与 LUID 的映射关系找到由

LUID标识的数据记录的 UUID,接着把 changelog文件中的与所找到的 UUID 对应的爹改记录项的值爹改为无效。

8、 一种管理终端数据记录的装置, 包括:

LUID分配模块,其设置成为终端的每一条数据记录分配一个本地唯一标 识符 LUID;

UUID 分配模块, 其设置成为终端的每一条数据记录的存储位置分配一 个全局唯一标识符 UUID;

LUID与 UUID映射关系建立模块,其设置成分别为终端的每一条数据记 录建立 LUID与 UUID的映射关系; 以及

Changelog模块, 其设置成:

1 )在修改记录 changelog文件中每个修改记录项的存放位置分别 隐藏与该爹改记录项相对应的 UUID;

2 )在数据记录非同步操作期间, 使用所述 LUID与 UUID的映射 关系修改 changelog文件中的修改记录项的值; 以及

3 )在数据记录同步操作期间, 使用所述 LUID与 UUID的映射关 系和所述 changelog文件的修改记录项的值执行数据记录同步操作。

9、 根据权利要求 8所述的装置, 其中, 所述 Changelog模块是设置成通 过如下方式修改 changelog文件中的修改记录项的值:

在数据记录非同步操作期间, 利用 UUID 与 LUID 的映射关系找到由 LUID标识的数据记录的 UUID,接着修改 changelog文件中与所找到的 UUID 对应的爹改记录项的值。

10、 根据权利要求 8或 9所述的装置, 其中, 所述 Changelog模块是设 置成通过如下方式执行数据记录同步操作:

在数据记录同步操作期间 ,读取 changelog文件中修改记录项的有效值及 该修改记录项对应的 UUID, 接着利用 UUID与 LUID的映射关系得到 LUID 所标识的数据记录, 然后再对所得到的数据记录进行同步操作。

11、 根据权利要求 8所述的装置, 其中, 所述终端包括: 服务器客户端、 网络节点、 手机或 PDA。

Description:
管理终端数据记录的方法及装置

技术领域

本发明涉及到通讯领域中终端的个人信息管理 PIM (数据同步)业务,特别 涉及管理终端数据记录的方法及装置。

背景技术

手机、 PDA等终端个人信息、 日程信息和邮件信息等的管理日益重要, 已经成为终端信息管理的一个重要组成部分。 如何安全有效的将数据备份到 网络服务器中, 在更换终端或者终端数据发生变化的时候, 可以方便的将备 份数据恢复到终端成为数据同步的主体, SyncML协议可以实现终端和网络等 服务器的数据同步, 最终使得终端和服务器上的数据保持一致。

图 1显示了显示客户端与服务器之间进行数据同 的业务, 即由客户端 如手机终端与服务器进行数据记录项的双向同 步。

SyncML协议基本数据同步类型包括双向快同步和 双向慢同步。 双向慢 同步将手机终端和服务器上的所有数据记录项 (如名片夹和日程表)进行同 步; 双向快同步将终端和服务器上自上一次同步之 后的所有更新进行同步。

双向快同步是一种增量同步, 它将终端和服务器自上一次同步之后至本 次同步之间数据库的所有修改同步。

Changelog (修改记录), 则是用以记录终端 /服务器自上一次同步之后至 本次同步之间数据库所有修改信息的。

传统的 Changelog 包含每一个被更新实体的修改信息, 如实体的唯一标 识符(数据库为实体唯一分配)、 所做操作类型等。 即 changelog文件由一个 个爹改记录项组成, 每一个爹改记录项代表一个实体被爹改的信息 。

图 2显示了传统 changelog的爹改记录项结构 ,其爹改记录项可以为定长 或变长, 由于需要记录的是数据记录的修改信息, 则通常由数据记录的唯一 标识符 LUID和其他内容 (如操作类型、 修改类型等)组成。 目前 changelog方案存在以下问题:

若对数据库每操作一次, changelog文件增加一个修改记录项,则 changelog 文件将无限增长。

即使在解决无限增长问题下, changelog文件也随着被更新实体的数量越 多而越大, 且 changelog文件需要根据数据库修改、 同步和同步的结果不停的 反复刷新和修改以添加或修改 "被修改实体的修改记录项" 和删除 "已同步 成功实体的修改记录项"。 这种对 changelog文件的操作通常是根据修改记录 项中的数据 ID进行遍历式查找, 涉及插值或查找算法, 使得 changelog文件 的管理变得复杂。

发明内容

本发明的目的是提供一种可降低修改记录管理 复杂度的管理终端数据记 录的方法。

本发明的另一目的是提供一种可降低修改记录 管理复杂度的管理终端数 据记录的装置。

根据本发明第一方面, 管理终端数据记录的方法包括以下步骤: 为终端的每一条数据记录分配一个本地唯一标 识符 LUID;

为终端的每一条数据记录的存储位置分配一个 全局唯一标识符 UUID; 分别为终端的每一条数据记录建立 LUID与 UUID的映射关系; 在修改记录 changelog文件中每个修改记录项的存放位置分别 隐藏与该 爹改记录项相对应的 UUID;

在数据记录非同步操作期间, 使用所建立的 LUID与 UUID的映射关系 修改 changelog文件中的修改记录项的值; 以及

在数据记录同步操作期间, 使用所建立的 LUID与 UUID的映射关系和 所述 changelog文件的修改记录项的值执行数据记录同 步操作。

其中,修改 changelog文件中的修改记录项的值的步骤可包括 : 在数据记 录非同步操作期间,利用 UUID与 LUID的映射关系找到由 LUID标识的数据 记录的 UUID, 接着修改与所找到的 UUID对应的 changelog文件存放位置上 的当前爹改记录项的值。

其中,执行数据记录同步操作的步骤可包括: 在数据记录同步操作期间, 读取 changelog文件中修改记录项的有效值及该修改记 录项对应的 UUID , 接 着利用 UUID与 LUID的映射关系得到 LUID所标识的数据记录,然后再对所 得到的数据记录进行同步操作。

其中, 所述 changelog文件中修改记录项的存放位置的序号可 以对应于 changelog文件的字节序号, 所述字节序号与所述 UUID的关系可以为: BN = ( UUID-1 ) BL + 1 , 其中 BN为字节序号, BL为修改记录项字节长度。 本发明的修改记录项字节长度可以是固定的, 例如为 1字节, 在此情况下, changelog文件中修改记录项的存放位置的序号可 以等于 changelog文件的字 节序号, 即修改记录项的第 N存放位置的序号为 changelog文件的第 N字节 序号, 并且 BN=UUID。

数据记录非同步操作可以包括: 添加或修改数据记录; 修改 changelog文 件中的修改记录项的值的步骤可以包括: 在添加或修改数据记录之后, 或者 在数据记录同步成功的后续处理中, 使用所建立的 LUID与 UUID的映射关 系修改 changelog文件中的修改记录项的值。

在数据记录同步成功的后续处理中修改 changelog文件中的修改记录项 的值的步骤可以包括: 对于已完成同步的数据记录, 利用 UUID与 LUID的 映射关系找到由 LUID标识的数据记录的 UUID,接着把与所找到的 UUID对 应的 changelog文件存放位置上的当前爹改记录项的值 爹改为无效。

根据本发明第二方面, 管理终端数据记录的装置包括:

LUID分配模块,其设置成为终端的每一条数据 录分配一个本地唯一标 识符 LUID;

UUID 分配模块, 其设置成为终端的每一条数据记录的存储位置 分配一 个全局唯一标识符 UUID;

LUID与 UUID映射关系建立模块,其设置成分别为终端 每一条数据记 录建立 LUID与 UUID的映射关系; 以及 Changelog模块, 其设置成:

1 )在修改记录 changelog文件中每个修改记录项的存放位置分别 隐藏与该爹改记录项相对应的 UUID;

2 )在数据记录非同步操作期间, 使用所建立的 LUID与 UUID的 映射关系修改 changelog文件中的修改记录项的值; 以及

3 )在数据记录同步操作期间, 使用所建立的 LUID与 UUID的映 射关系和所述 changelog文件的修改记录项的值查找待同步的数 据记录。

其中, 所述 Changelog模块可设置成通过如下方式修改 changelog文件中 的修改记录项的值: 在数据记录非同步操作期间, 首先利用 UUID与 LUID 的映射关系找到由 LUID 标识的数据记录的 UUID, 然后修改与所找到的 UUID对应的 changelog文件存放位置上的当前修改记录项的值 。

其中, 所述 Changelog模块可设置成通过如下方式执行数据记 录同步操 作: 在数据记录同步操作期间, 首先读取 changelog文件中修改记录项的有效 值及该爹改记录项对应的 UUID, 然后利用 UUID与 LUID的映射关系得到 LUID所标识的数据记录, 然后再对所得到的数据记录进行同步操作。

需要说明的是, 本发明涉及但不限于 SyncML协议同步; 此外, 本发明 适用于所有增量同步。

还需要说明的是, 本发明适用于手机或 PDA等终端, 也同样适用于服务 器, 因此本发明所述的终端可以包括但不限于: 服务器客户端、 网络节点, 手机或 PDA等。

与现有技术相比,本发明的有益技术效果在于 : 由于本发明利用 IUID与 UUID 的映射关系来管理 changelog文件中修改记录项, 因此可以大大缩减 changelog文件的长度, 也就是说, 本发明的 changelog文件不随被修改实体 数量的增多而增大, 且随着被修改实体数量的增多, 其存储空间优势越明显。

附图概述

图 1是显示客户端与服务器之间进行数据同步业 的示意图;

图 2是传统 changelog的修改记录项结构的示意图; 图 3是本发明的管理终端数据记录的装置的示意 ;

图 4是本发明的动态的 LUID - UUID映射图,根据该图能查找当前 UUID (存储位置)所对应的 LUID, 反之亦然;

图 5a是本发明的 changelog的修改记录项结构图, 其中不包括 LUID和 UUID;

图 5b是本发明的 changelog文件示意图,将 UUID隐藏于 changelog文件 中;

图 6 是本发明的修改某一条数据记录时对 changelog文件的更新的流程 图;

图 7 是本发明的数据记录同步时读取 changelog文件的流程图; 图 8 是当数据记录为电话本时的传统 changelog的修改记录项结构图; 图 9是当数据记录为电话本时本发明的 changelog的修改记录项结构图; 图 10 是本发明的初始化后的空 changelog文件示意图;

图 11是本发明的添加一个电话本后的 changelog文件示意图。

本发明的较佳实施方式

图 3显示了本发明的管理终端数据记录的装置, 本发明的终端可以是图 1所示的客户端即移动终端, 也可以是图 1所示的服务器。

如图 3所示, 本发明的管理终端数据记录的装置包括: LUID分配模块、 UUID分配模块、 Changelog模块、 和 LUID与 UUID映射关系模块。 LUID分 配模块设置成为终端的每一条数据记录分配一 个本地唯一标识符 LUID; UUID 分配模块设置成为终端的每一条数据记录的存 储位置分配一个全局唯 一标识符 UUID; LUID与 UUID映射关系模块设置成分别为终端的每一条 据记录建立 LUID与 UUID的映射关系; Changelog模块设置成: 1 )在修改 记录 changelog文件中每个修改记录项的存放位置分别 隐藏与该修改记录项 相对应的 UUID; 2 )在数据记录非同步操作期间,使用所建立的 LUID与 UUID 的映射关系修改 changelog文件中的修改记录项的值; 3 )在数据记录同步操 作期间, 使用所建立的 LUID与 UUID的映射关系和 changelog文件的修改记 录项的值查找待同步的数据记录, 并对查找到的数据记录进行同步操作。

图 4显示了由图 3所示的映射关系模块生成的本发明的 LUID与 UUID 映射关系图,其中 LUID44、 85和 100分别是 LUID分配模块为三条终端数据 记录分配的本地唯一标识符(如正整数 ) , 比如 44为关于张 X 电话本的数 据记录的本地唯一标识符, 85为关于李 X X电话本的数据记录的本地唯一标 识符, 100为关于王 X X电话本的数据记录的本地唯一标识符。 与 LUID44、 85和 100对应的 UUID1、 2、 3则是 UUID分配模块为 LUID所标识的数据记 录的存储位置分配的全局唯一标识。

图 5a显示了本发明的 changelog文件的一条修改记录项的结构, 它没有 图 2所示的传统 changelog文件的修改记录项中的 LUID。 图 5b显示了 UUID 隐藏在 changelog文件中的情况, 由于 changelog文件由有序排列的一条条修 改记录项构成, 因此每一条修改记录项在 changelog文件中的存放位置(其存 放位置序号对应于 changelog的字节序号, 例如, 当记录项长度为 1字节时, 则第 N存放位置的序号为 changelog的第 N字节序号 )可以唯一地反映相应 的数据记录的 UUID, 例如当修改记录项长度为 1字节时, 第 3存放位置的 修改记录项反映 UUID为 3的数据记录的修改情况。

本发明的每个修改记录项的长度是固定的, 比如固定长度为 1个字节, 或 2个字节等, 由此可见, 每个修改记录项的存放位置依赖于 changelog文件 中修改记录项字节长度。因此 UUID在 changelog文件中的隐藏关系实际上是 根据 changlog文件中的字节序号确定的存放位置与 UUID的对应关系, 表示 为: changlog文件中的字节序号 = ( UUID-1 ) χ修改记录项字节长度 + 1。

如果每个修改记录项的固定长度为 1个字节, 那么每个修改记录项只占 用一个字节,因此修改记录项存放位置的序号 相当于 changelog文件的字节序 号, 即修改记录项存放位置 = changlog文件中的字节序号 = ( UUID-1 ) 1 + 1 = UUID, 例如 changelog文件的第 3字节序号相当于第 3存放位置的序号, 使得 changelog文件的第 3字节的序号隐藏了标识符为 3的 UUID。

如果修改记录项固定长度为 2个字节, 那么每个修改记录项占用两个字 节, 其第一个字节的序号 = ( UUID-1 ) x 2 + 1 = UUID x 2-l。 例如当 UUID 为 3 时, 其存放修改记录项的第一字节的序号为 5, 存放修改记录项的第二 字节的序号为 6, 使得序号为 5的 changelog文件的字节隐藏了标识符为 3的 UUID。

在数据记录非同步操作期间, Changelog模块利用 UUID与 LUID的映射 关系找到由 LUID标识的数据记录的 UUID ,接着修改与所找到的 UUID对应 的 changelog文件存放位置上的当前修改记录项的值 。 需要说明的是, 本发明 的数据记录非同步操作包括: 添加或修改数据记录; 修改数据记录项的值的 步骤包括: 在添加或修改数据记录后, 或者在数据记录同步成功的后续处理 中^ ί'爹改 changelog文件中 ^ί'爹改记录项的值(下面将举例说明) 。

在对数据记录同步操作期间, Changelog模块读取 changelog文件中修改 记录项的有效值及其隐藏的 UUID,接着利用 UUID与 LUID的映射关系得到 LUID所标识的数据记录, 然后再对所得到的数据记录进行同步操作。

为终端 (比如客户端或服务器) 的每一条数据记录分配一个本地唯一标 识符 LUID;

为终端的每一条数据记录的存储位置分配一个 全局唯一标识符 UUID; 分别为终端的每一条数据记录建立 LUID与 UUID的映射关系; 在修改记录 changelog文件中的各个存放位置分别隐藏相应的 UUID; 在数据记录非同步操作期间, 使用所建立的 LUID与 UUID的映射关系 修改 changelog文件中的修改记录项的值; 以及

在数据记录同步操作期间, 使用所建立的 LUID与 UUID的映射关系和 changelog文件的修改记录项的值查找待同步的数 据记录。

在数据记录非同步操作期间, 利用 UUID 与 LUID 的映射关系找到由 LUID标识的数据记录的 UUID,接着修改与所找到的 UUID对应的 changelog 文件存放位置上的当前修改记录项的值。比如 在 changelog文件的修改记录项 长度为 1字节的情况下, 当添加一条 LUID = 85的关于赵 X X的电话本记录 时, 利用图 4的影射图可以查询到其存储位置的全局唯一 识符 UUID = 2, 由此得到 changelog文件的存放位置为 2, 从而把 changelog第 2个存放位置 的当前爹改记录项的值爹改为 1。

本发明的数据记录同步成功的后续处理属于数 据记录非同步操作, 它包 括:对于已完成同步的数据记录,利用 UUID与 LUID的映射关系找到由 LUID 标识的数据记录的 UUID, 接着把与所找到的 UUID对应的 changelog文件存 放位置上的当前修改记录项的值修改为无效, 通常为 0, 以避免下次同步已 同步成功的数据记录。

在对数据记录同步操作期间 ,读取 changelog文件中修改记录项的有效值 及其隐藏的 UUID,接着利用 UUID与 LUID的映射关系得到 LUID所标识的 数据记录, 然后再对所得到的数据记录进行同步操作。

下面结合图 4至图 11对本发明的管理终端数据记录的特点进行详 说 明。

对于存储于终端的数据记录项 (比如说, 手机中的一条名片夹) , 本发明设置了一个 LUID(Locally Unique Identifier) , 本地唯一标识符, 该 LUID在整个终端是唯一的, 并且是不断增长的。 即使添加一条已删除的相同 数据记录,为该新添加数据记录分配的 LUID也是和原来被删除的 LUID不相 同的。

除 LUID外, 本发明还设置了一个 UUID ( Univeral Unique Identifier ) , 全局唯一标识符, 标识着该数据记录在数据库存储空间的存储位 置。 一条数 据记录对应一个 UUID, UUID 的取值是固定的, 通常为 1 ~ MAXNUM, MAXNUM为终端数据库存储容器可存储的最大记录 项数。 UUID标识着该条 数据记录项在数据库中的相对位置, 根据 UUID, 可找到相应的数据记录内 容。

本发明建立了图 4所示的 LUID-UUID的映射关系, 比如映射表,但其形 式不局限于表。

LUID-UUID映射表中, 动态地对应着同一条数据记录的 LUID与 UUID 的映射关系, 通过当前 UUID 可以找到该 UUID存储的数据记录所对应的 LUID; 通过 LUID可以对应找到其 UUID , 并通过 UUID找到其存储位置 , 取出数据。 例如在图 4中,若知一条数据记录的 LUID为 3 , 则可通过映射表找出该 记录的 UUID为 100 , 即该条记录被存储在数据库的第 100个存储位置; 若 知一条数据的 UUID为 1 , 即在存储位置 1上的记录, 则可通过映射表找出 其 LUID为 44。

通常, changelog文件由一个个修改记录项组成, 每一个修改记录项, 代 表一个数据记录 (实体)被修改的信息。

本发明的独特之处在于:

1 ) changelog文件中修改记录项为固定长度。

2 ) 每一个数据记录的修改只唯一对应于一个 changelog修改记录项, 故 changelog文件长度固定, 其值为 MAXNUM χ修改记录项的长度。

3 ) 建立了一个 LUID-UUID的映射表, 通过 UUID可以找到 LUID, 同时 通过 LUID也可以找到 UUID.

4 ) changelog文件数据记录项不釆用 LUID,也不直接釆用 UUID, 其修改 记录项只由图 5a所示的 "其他内容" 组成,例如代表有效或无效的值组 成。

同时, 将数据的 UUID (信息 ) 隐藏于 changelog文件修改记录项的位置 中, 如图 5b所示。

如, 当修改记录项长度为 1字节时, 修改记录项 4代表 changelog文件中 第四个修改记录项, 则对应的 UUID为 4。 当对该条数据进行操作时, 则可 通过 UUID, 或通过 UUID找到 LUID, 对其操作。

如此, 不仅大大缩短修改记录项的长度 (省去了每个修改记录项的 ID字 节数, 将大大减少修改记录项的长度, 从而节省 changelog的存储空间); 同 时, 将 UUID信息隐藏于 changelog文件本身, 不仅节省了存储空间, 且能有 效的对修改记录项进行定位, 大大降低了 changelog的操作和维护复杂度。

以手机终端名片夹同步为例, 假设手机终端数据库最大容量为 500条电 话本。 本发明的 Changelog文件中修改记录项的结构如图 9所示, 仅仅含有 固定长度 (比如占一个字节) 的标志 FLAG的操作类型。

图 8显示了传统 changelog中修改记录项的结构, 其中 Changelog文件中 修改记录项的结构包含: 具有 13字节的 LUID; 含标志 FLAG的操作类型, 是指电话本条目被操作的类型, 如添加等。 其值为: 0代表无效, 1代表添 加操作, 2代表删除操作, 3代表更新操作, 1 ~ 3均代表有效, 占 4字节。 所以传统的 changelog的数据记录项长度共 17字节。

对比文件图 8所示的传统的 changelog中修改记录项结构和图 9所示的本 发明的修改记录项的结构, 不难发现本发明大大缩短修改记录项的长度。

图 10显示了一个通过初始化操作后的一个空 changelog文件, 其中网格 示意每一个修改记录项, 其长度为一个字节, 其初始值为 0, 代表无效。

图 6显示了本发明的更新 changelog文件的流程,用于说明数据记录非同 步操作的一个实例。 以添加一条 LUID=100的电话本记录为例进行说明, 假 设此时 LUID-UUID映射表如图 4, 则:

1 ) 根据 LUID查询其 UUID=3;

2 ) 根据 UUID, 查找对应的修改记录项所在的位置: (3-1 ) *1 (字节长 度) +1 = 3。 直接找到 changelog中对应的位置, 即图 11所示的第 3存 放位置。

3 ) 在 changelog文件的第 3存放位置(第三个记录项处)修改, 操作类型 为增加, 则其值为 1 , 代表增加。

图 7显示了本发明的终端执行数据记录同步时读 changelog文件的流 程, 该流程包括:

1 ) 遍历如图 11的 changelog文件, 先读取第一、 第二个修改记录项。 其 值为 0, 代表无效。

2 ) 读取第三个记录项的值, 其值为 1 , 有效。 则:

a)根据其位置第三字节, 计算出 UUID = ( 3-1 ) /1 -1= 3。 其中 1代表 changelog修改记录项的长度。

b)根据 LUID-UUID映射表, 假设仍为图 1所示, 则 LUID = 100。 c) 当同步时, 可将 LUID = 100的电话本进行同步。

数据记录同步成功的后续处理属于数据记录的 非同步操作, 通常根据同 步成功的响应信号启动该操作, 比如当服务器发出关于 LUID = 100的数据记 录同步成功响应时, 客户端进行如下处理(参见图 6 ) :

根据 LUID查询其 UUID=3;

根据 UUID, 查找对应的修改记录项所在的位置: ( 3-1 ) *1 (字节长度) +1 = 3。 直接找到 changelog中对应的位置, 即图 11所示的第 3存放位置。

在 changelog文件的第 3存放位置(第三个记录项处)修改, 将其值修改 为无效即 0, 以便避免下次重复同步。

综上所述, 本发明具有以下技术效果:

changelog文件有恒定大小,其大小为 MAXNUM*修改记录项的长度, 即 无文件大小无限增长问题, 且最大文件长度也非常小。

例如传统 changelog方案 changelog文件随着被修改记录数的增加而增大, 其值为 X*修改记录项的长度,其中 X 为当前被修改记录个数; 本发明的 changelog长度为 MAXNUM*修改记录项的长度。

比如, 终端数据库容量为 500条, 对于长度为 17字节的传统方案修改记 录项, changelog文件需要 500 17 = 8500字节, 而本发明 changelog文件仅 仅需要 500 X 1 = 500字节, 也就是说, 在同样的存储空间条件下, 当修改记 录数超过 30 ( 500/17 = 30 )条时, 本方案在存储空间方面有明显优势。

另一方面,假设修改记录有 M个, 同步服务器有 N个且对应每个服务器 有一套 changelog。 则对于现有技术, 当需要对 changelog中的某条记录项进 行修改时, 其复杂度为 0 ( Μ*Ν ) ,且所有操作都是文件操作。 对于本方案, 因 changelog可以很快定位到某个修改记录, 无需遍历式查找, 则其操作复杂 度为 0(N)。 故, 本方案对文件的操作和维护非常简单。

综上所述, 由于本发明利用 IUID与 UUID的映射关系来管理 changelog 文件中修改记录项, 因此可以大大缩减 changelog文件的长度, 从而减小了文 件存储空间; 此外, 本发明通过 changelog文件存放位置与 UUID隐藏关系, 即 changelog文件字节序号与 UUID的对应关系,管理终端修改记录或通过存 放位置得到 LUID标识的修改记录,从而大大降低了 changelog的操作复杂度, 使整个 changelog文件操作和维护简单化。特别是, 对于支持与多个服务器同 步的系统, 本发明可以极大地降低复杂度。

具体地说, 本发明的文件存储空间少和管理复杂度较低的 技术效果归因 于本发明的以下技术特点:

1、 每个修改记录项的长度都大大降低;

2、 每个文件只包含固定个数的修改记录项;

3、 每次更新修改记录项的值不需要进行查找等操 作。

尽管上文对本发明进行了详细说明, 但是本发明不限于此, 本技术领域 技术人员可以根据本发明的原理进行各种修改 。 因此, 凡按照本发明原理所 作的修改, 都应当理解为落入本发明的保护范围。

工业实用性

与现有技术相比,本发明利用 IUID与 UUID的映射关系来管理 changelog 文件中修改记录项, 因此可以大大缩减 changelog文件的长度, 也就是说, 本 发明的 changelog文件不随被修改实体数量的增多而增大 ,且随着被修改实体 数量的增多, 其存储空间优势越明显。