CN109165259A - 基于网络附属存储的索引表更新方法、处理器及存储装置 - Google Patents
基于网络附属存储的索引表更新方法、处理器及存储装置 Download PDFInfo
- Publication number
- CN109165259A CN109165259A CN201810980785.1A CN201810980785A CN109165259A CN 109165259 A CN109165259 A CN 109165259A CN 201810980785 A CN201810980785 A CN 201810980785A CN 109165259 A CN109165259 A CN 109165259A
- Authority
- CN
- China
- Prior art keywords
- directory
- directory information
- concordance list
- data
- message queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本申请公开了一种基于网络附属存储的索引表更新方法、处理器及存储装置,该方法包括:接收对数据表进行操作的第一指令;响应所述第一指令对所述数据表进行相应的操作;生成与所述操作相关的目录信息,并将所述目录信息发送至消息队列;将所述消息队列中的所述目录信息更新至索引表,其中,所述索引表存储有与所述数据表相关的目录结构信息。通过上述方式,本申请能够实现数据表与索引表异步更新。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种基于网络附属存储的索引表更新方法、处理器及存储装置。
背景技术
网络附属存储(NAS)的数据库由索引表和数据表构成,为了加快用户操作的查询速度,索引表除了包含数据表主键外还会添加需要展示的业务字段,通过此设计用户进行业务字段查询时就不需要通过主键路由到数据表中进行数据查询。
目前索引表与数据表的数据同步方案一般如下模式:当用户对数据表进行操作后,将变更后的相关数据实时同步到索引表来保持数据一致性。
本申请的发明人在长期的研发过程中发现,当用户对数据表进行操作所涉及的数据量达到一定级别时,上述将索引表与数据表的数据同步方案会锁死数据库导致其他并发业务发生异常。
发明内容
本申请主要解决的技术问题是提供一种基于网络附属存储的索引表更新方法、处理器及存储装置,能够实现数据表与索引表异步更新。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种基于网络附属存储的索引表更新方法,所述方法包括:接收对数据表进行操作的第一指令;响应所述第一指令对所述数据表进行相应的操作;生成与所述操作相关的目录信息,并将所述目录信息发送至消息队列;将所述消息队列中的所述目录信息更新至索引表,其中,所述索引表存储有与所述数据表相关的目录结构信息。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种处理器,所述处理器包括:处理电路、收发电路和显示电路,其中,所述处理电路耦接所述收发电路和所述显示电路,所述处理电路、所述收发电路、所述显示电路工作时能实现上述任一实施例中所述的方法中的步骤。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种具有存储功能的装置,其上存储有程序数据,所述程序数据被处理器执行以实现上述任一实施例中的所述的方法中的步骤。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的基于网络附属存储的索引表更新方法中,数据表先响应第一指令并进行与第一指令相应的操作后,生成与操作信息相关的目录信息,并将该目录信息发送至消息队列,将消息队列中的目录信息更新到索引表;即本申请中数据表与索引表的更新是异步操作的,从而可以降低数据库锁死导致其他并发业务异常的概率,且可以降低对大量数据进行操作的耗时。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请基于网络附属存储的索引表更新方法一实施方式的流程示意图;
图2是索引表一实施方式的结构示意图;
图3是图1中步骤S104一实施方式的流程示意图;
图4是本申请基于网络附属存储的索引表更新方法另一实施方式的流程示意图;
图5是本申请处理器一实施方式的结构示意图;
图6是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
网络附属存储NAS是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。NAS本身能够支持多种协议,例如,网络文件系统NFS、通用网络文件系统CIFS、文件传输协议FTP、超文本传输协议HTTP等,而且能够支持各种操作系统。本申请所提供的方法主要是为了解决NAS数据库中数据表与索引表的更新问题,尤其是涉及到的数据量达到一定级别时的更新问题。
请参阅图1,图1为本申请基于网络附属存储的索引表更新方法一实施方式的流程示意图,该方法包括:
S101:接收对数据表进行操作的第一指令。
具体地,对数据表进行的操作包括写操作和读操作,本申请所提供的方法是基于写操作,且写操作包括插入、更新和删除,例如,在数据表中插入某些文件、对数据表中的文件夹进行重命名、删除数据表中的某些文件等。
S102:响应第一指令对数据表进行相应的操作。
具体地,在本实施例中,服务器的业务层响应第一指令对数据表进行响应的操作。
S103:生成与操作相关的目录信息,并将目录信息发送至消息队列。
具体地,在实际操作过程中,对数据表进行操作的内容可以是索引表中的内容,也可以不是索引表中的内容,当对数据表进行操作的内容是索引表中的内容时,则需要更新索引表,例如,对数据表中的文件或文件夹进行重命名;当对数据表进行操作的内容不是索引表中的内容时,则无需更新索引表,例如,数据表中的文件或文件夹的修改时间。因此,在上述步骤S103之前,本申请所提供的方法还包括:判断对数据表进行操作的内容为索引表中的内容;若是,则进入生成与操作对应的目录信息的步骤。例如,可以先根据数据表中的IS_DIR字段,判断对数据表进行操作的文件的文件名是否为一个目录,进而判断出对数据表进行操作的内容是否为索引表中内容;然后将对数据表进行操作的内容为索引表中内容的部分生成对应的目录信息,而对数据表进行操作的内容不是索引表中内容的部分不生成目录信息。
在本实施例中,索引表中存储有与数据表相关的目录结构信息,如图2所示,图2为索引表一实施方式的结构示意图。图2中a1为根目录,b1-bn为根目录下a1下的一级目录,c1-cm为一级目录b1下的二级目录,d1-dp为二级目录c1下的三级目录。上述步骤S103中所生成的目录信息包括:进行操作后的目录名、进行操作后的目录名下的文件夹数、进行操作后文件夹下的文件数。例如,对图2中的根目录a1对应的数据表中的文件夹的名称重命名为A1。由于图2中所示的索引表中存储的是进行操作前的目录名,为明确操作前a1与操作后A1的关系,上述步骤S103中将目录信息发送至消息队列,包括:将进行操作前的目录名与进行操作后的目录名建立对应关系,例如,进行key-value的对应关系;将建立对应关系后的目录信息发送至消息队列。
在另一个实施方式中,当对数据表中的数据量处理未达到一定级别时,可采取现有技术中索引表与数据表同步的方式;而当对数据表中的数据量处理达到一定级别时,可采取本申请所提供的方式。因此,在上述步骤S103中将目录信息发送至消息队列之前,本申请所提供的方法还包括:判断目录信息中包含的总文件数是否超过阈值,若是则执行将目录信息发送至消息队列的步骤,否则不执行将目录信息发送至消息队列的步骤。在一个应用场景中,上述阈值与处理器频率、内存大小、应用中允许数据库阻塞的时长成正比。例如,当处理器频率为1G,内存大小为512M,允许数据库阻塞的时长为500ms,上述阈值可以设置为1024。
在又一个实施方式中,在上述步骤S103中将目录信息发送至消息队列后,可以发送完成指令至服务器的业务层,服务器的业务层在接收到该完成指令后再进入后续步骤。
S104:将消息队列中的目录信息更新至索引表,其中,索引表存储有与数据表相关的目录结构信息。
具体的,在一个实施方式中,当消息队列中的目录信息个数较多时,可采取分批更新的方式,例如,上述步骤S04具体包括:将消息队列中的目录信息分为至少一个批次,例如,一个、两个、三个等;利用目录信息按批次更新索引表。在本实施例中,每个批次中所包含的目录信息的个数可以相同或者不同;另外,每个批次中所包含的目录信息的个数具有上限值,该上限值可以自行设定,例如,该上限值可以是1024等。
在又一个实施方式中,可根据PARENT_ID来更新索引表,请参阅图3,图3为图1中步骤S104一实施方式的流程示意图,上述步骤S104中将消息队列中的目录信息更新至索引表具体包括:
S201:获得目录信息中进行操作后的目录名以及与操作后的目录名对应的进行操作前的目录名;例如,获得目录信息中进行操作后的目录名为A1对应的进行操作前的目录名为a1。
S202:利用操作后的目录名获得在数据表中操作后的目录名下的所有文件及文件夹;例如,利用目录名A1获得其在数据表中操作后的目录名A1下的所有文件和文件夹。
S203:利用操作前的目录名获得在索引表中操作前的目录名下的所有文件和文件夹;例如,利用目录名a1获得其在索引表中还未更新的目录名a1下的所有文件和文件夹。
S204:将索引表中的操作前的目录名下的所有文件和文件夹更新为与数据表中操作后的目录名下的所有文件和文件夹相同。例如,将索引表中目录名a1下的所有文件和文件夹更新为与数据表中目录名A1下的所有文件和文件夹相同。
在某些情况下,可能会遇到访问索引表中需要更新但还未更新的内容问题,为应对该问题,可以在上述实施例中步骤S103生成与所述操作对应的目录信息的步骤之前或者之后,将与数据表进行操作对应的索引表中的目录处设置第一标记位。当索引表中的目录处设置了第一标记位时,代表该索引表中的目录需要更新但还未更新;当索引表中的目录处未设置第一标记位时,代表该索引表中的目录已经更新完毕或者无需更新,即通过第一标记位有无来判断索引表中的该目录处的状态。在其他实施方式中,也可通过设置不同标记位的方式来判断索引表中的该目录处的状态。例如,可在索引表的所有目录处设置标记位,标记位包括第一标记位和第二标记位,第一标记位代表该索引表中的目录需要更新但还未更新,第二标记位代表该索引表中的目录已经更新完毕或者无需更新。请参阅图4,图4为本申请所提供的方法另一实施方式的流程示意图,本申请所提供的方法进一步包括:
S301:接收对索引表的访问请求。
S302:判断与访问请求对应的目录处是否设置有第一标记位。
S303:若设置有第一标记位,则发送第二指令至消息队列,其中,第二指令中携带有标识信息;具体的,标识信息可以是目录名。
S304:在消息队列中获得与标识信息对应的目录信息;具体地,可根据目录名在消息队列中获得与其对应的目录信息。
S305:根据与标识信息对应的目录信息更新索引表,并更改第一标记位。在本实施例中,更改第一标记位可以是删除第一标记为或者是将第一标记位修改为第二标记位。此外,上述步骤S305中更新索引表的方式可参见上述实施例,在此不再详述。
下面以一个具体的应用场景,对本申请所提供的索引表更新方法作进一步说明。
A、服务器的业务层对数据层的数据库中的数据表进行重命名、移动等写操作;
B、获得写操作内容为索引表内容中的部分,并生成对应的目录信息;
C、判断目录信息中的总文件数是否超过阈值,若超过则将目录信息发到消息队列,发送完成后发送response给业务层;
D、后台监控到消息队列的任务后分批次将目录信息同步到索引表,最后达到索引表与数据表数据的同步;在此任务完成之前,如访问未同步的索引,会立即通知消息队列同步此索引数据。
请参阅图5,图5为本申请处理器一实施方式的结构示意图,该处理器1包括处理电路10、收发电路12和显示电路14,其中,处理电路10耦接收发电路12和显示电路14,处理电路10、收发电路12、显示电路14工作时能实现上述实施例中方法中的步骤。
请参阅图6,图6为本申请具有存储功能的装置一实施方式的结构示意图,该具有存储功能的装置2上存储有程序数据20,程序数据20被处理器执行以实现上述实施例中任一项的方法中的步骤。
总而言之,区别于现有技术的情况,本申请所提供的基于网络附属存储的索引表更新方法中,数据表先响应第一指令并进行与第一指令相应的操作后,生成与操作信息相关的目录信息,并将该目录信息发送至消息队列,将消息队列中的目录信息更新到索引表;即本申请中数据表与索引表的更新是异步操作的,从而可以降低数据库锁死导致其他并发业务异常的概率,且可以降低对大量数据进行操作的耗时。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (12)
1.一种基于网络附属存储的索引表更新方法,其特征在于,所述方法包括:
接收对数据表进行操作的第一指令;
响应所述第一指令对所述数据表进行相应的操作;
生成与所述操作相关的目录信息,并将所述目录信息发送至消息队列;
将所述消息队列中的所述目录信息更新至索引表,其中,所述索引表存储有与所述数据表相关的目录结构信息。
2.根据权利要求1所述的方法,其特征在于,所述生成与所述操作对应的目录信息,之前,所述方法包括:
判断对所述数据表进行操作的内容为所述索引表中的内容;
若是,则进入所述生成与所述操作对应的目录信息的步骤。
3.根据权利要求2所述的方法,其特征在于,所述若是,则进入所述生成与所述操作对应的目录信息的步骤,之前或者之后,所述方法还包括:
将与所述数据表进行操作对应的索引表中的目录处设置第一标记位。
4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:
接收对所述索引表的访问请求;
判断与所述访问请求对应的所述目录处是否设置有所述第一标记位;
若设置有所述第一标记位,则发送第二指令至所述消息队列,其中,所述第二指令中携带有标识信息;
在所述消息队列中获得与所述标识信息对应的目录信息;
根据与所述标识信息对应的目录信息更新所述索引表,并更改所述第一标记位。
5.根据权利要求1所述的方法,其特征在于,所述目录信息包括:进行操作后的目录名、进行操作后的目录名下的文件夹数、进行操作后文件夹下的文件数。
6.根据权利要求5所述的方法,其特征在于,所述将所述目录信息发送至消息队列之前,所述方法还包括:
判断所述目录信息中包含的总文件数是否超过阈值,若是则执行将所述目录信息发送至消息队列的步骤,否则不执行将所述目录信息发送至消息队列的步骤。
7.根据权利要求6所述的方法,其特征在于,所述阈值与处理器频率、内存大小、应用中允许数据库阻塞的时长成正比。
8.根据权利要求5所述的方法,其特征在于,所述将所述目录信息发送至消息队列,包括:
将进行操作前的所述目录名与进行操作后的所述目录名建立对应关系;
将建立对应关系后的所述目录信息发送至所述消息队列。
9.根据权利要求8所述的方法,其特征在于,所述将所述消息队列中的所述目录信息更新至索引表,包括:
获得所述目录信息中进行操作后的目录名以及与所述操作后的目录名对应的进行操作前的目录名;
利用所述操作后的目录名获得在所述数据表中所述操作后的目录名下的所有文件及文件夹;
利用所述操作前的目录名获得在所述索引表中所述操作前的目录名下的所有文件和文件夹;
将所述索引表中的所述操作前的目录名下的所有文件和文件夹更新为与所述数据表中所述操作后的目录名下的所有文件和文件夹相同。
10.根据权利要求1所述的方法,其特征在于,所述将所述消息队列中的所述目录信息更新至索引表,包括:
将所述消息队列中的所述目录信息分为至少一个批次;
利用所述目录信息按批次更新所述索引表。
11.一种处理器,其特征在于,所述处理器包括:处理电路、收发电路和显示电路,其中,所述处理电路耦接所述收发电路和所述显示电路,所述处理电路、所述收发电路、所述显示电路工作时能实现上述权利要求1-10中任一项所述的方法中的步骤。
12.一种具有存储功能的装置,其上存储有程序数据,其特征在于,所述程序数据被处理器执行以实现上述权利要求1-10中任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810980785.1A CN109165259B (zh) | 2018-08-27 | 2018-08-27 | 基于网络附属存储的索引表更新方法、处理器及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810980785.1A CN109165259B (zh) | 2018-08-27 | 2018-08-27 | 基于网络附属存储的索引表更新方法、处理器及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109165259A true CN109165259A (zh) | 2019-01-08 |
CN109165259B CN109165259B (zh) | 2021-12-21 |
Family
ID=64896701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810980785.1A Active CN109165259B (zh) | 2018-08-27 | 2018-08-27 | 基于网络附属存储的索引表更新方法、处理器及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165259B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211492A1 (zh) * | 2019-04-19 | 2020-10-22 | 创新先进技术有限公司 | 一种位图索引的写入/转储/合并/查询方法和装置 |
US10909101B2 (en) | 2019-04-19 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Updating and querying a bitmap index |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499488A (zh) * | 2002-10-31 | 2004-05-26 | 日立环球储存科技荷兰有限公司 | 在磁盘存储装置中选择排队的数据存取操作的方法和装置 |
CN101697154A (zh) * | 2009-10-28 | 2010-04-21 | 卓望数码技术(深圳)有限公司 | 一种创建索引的方法和创建索引的装置 |
CN102521269A (zh) * | 2011-11-22 | 2012-06-27 | 清华大学 | 一种基于索引的计算机连续数据保护方法 |
CN103678577A (zh) * | 2013-12-10 | 2014-03-26 | 新浪网技术(中国)有限公司 | 一种数据更新方法及装置 |
US9575842B2 (en) * | 2011-02-24 | 2017-02-21 | Ca, Inc. | Multiplex backup using next relative addressing |
-
2018
- 2018-08-27 CN CN201810980785.1A patent/CN109165259B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499488A (zh) * | 2002-10-31 | 2004-05-26 | 日立环球储存科技荷兰有限公司 | 在磁盘存储装置中选择排队的数据存取操作的方法和装置 |
CN101697154A (zh) * | 2009-10-28 | 2010-04-21 | 卓望数码技术(深圳)有限公司 | 一种创建索引的方法和创建索引的装置 |
US9575842B2 (en) * | 2011-02-24 | 2017-02-21 | Ca, Inc. | Multiplex backup using next relative addressing |
CN102521269A (zh) * | 2011-11-22 | 2012-06-27 | 清华大学 | 一种基于索引的计算机连续数据保护方法 |
CN103678577A (zh) * | 2013-12-10 | 2014-03-26 | 新浪网技术(中国)有限公司 | 一种数据更新方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211492A1 (zh) * | 2019-04-19 | 2020-10-22 | 创新先进技术有限公司 | 一种位图索引的写入/转储/合并/查询方法和装置 |
US10909101B2 (en) | 2019-04-19 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Updating and querying a bitmap index |
US11086835B2 (en) | 2019-04-19 | 2021-08-10 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Updating and querying a bitmap index |
Also Published As
Publication number | Publication date |
---|---|
CN109165259B (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101584828B1 (ko) | 웹-기반 다중사용자 협업 | |
US9396216B2 (en) | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform | |
JP4770921B2 (ja) | ゲートウェイサーバ、ファイル管理システム、ファイル管理方法とプログラム | |
KR20210002574A (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
CN103649945B (zh) | 最近使用的文档列表的自动同步 | |
US20110004584A1 (en) | Multi-way, Peer-to-Peer Synchronization | |
US20070174246A1 (en) | Multiple client search method and system | |
CN111881223B (zh) | 数据管理方法、设备、系统及存储介质 | |
US8805924B2 (en) | Optimistic concurrency utilizing distributed constraint enforcement | |
WO2018036324A1 (zh) | 一种智慧城市信息共享的方法和装置 | |
CN104092770A (zh) | 基于云计算的企业内部通讯录管理方法和系统 | |
CN102779185A (zh) | 一种高可用分布式全文索引方法 | |
US9706003B2 (en) | Bulk uploading of multiple self-referencing objects | |
CN103841180B (zh) | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 | |
KR20130126930A (ko) | 텍스트 메시지를 사용하는 스프레드시트와의 상호작용 | |
CN109684282A (zh) | 一种构建元数据缓存的方法及装置 | |
GB2399663A (en) | Synchronising content between two sources using profiles | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN103795811A (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
CN112084270A (zh) | 一种数据血缘处理方法、装置、存储介质及设备 | |
CN105930345A (zh) | 基于分布式实时数据库的层次索引方法 | |
CN105872168A (zh) | 通讯录更新方法及装置 | |
CN103546380A (zh) | 一种基于策略路由的报文转发方法和装置 | |
CN109165259A (zh) | 基于网络附属存储的索引表更新方法、处理器及存储装置 | |
CN104509029B (zh) | 在通信系统中更新个人信息的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |