CN105956046A - 一种字典的更新方法、系统和服务器 - Google Patents
一种字典的更新方法、系统和服务器 Download PDFInfo
- Publication number
- CN105956046A CN105956046A CN201610266395.9A CN201610266395A CN105956046A CN 105956046 A CN105956046 A CN 105956046A CN 201610266395 A CN201610266395 A CN 201610266395A CN 105956046 A CN105956046 A CN 105956046A
- Authority
- CN
- China
- Prior art keywords
- task
- dictionary
- reading
- distribution
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000009826 distribution Methods 0.000 claims abstract description 153
- 238000012795 verification Methods 0.000 claims description 97
- 238000010276 construction Methods 0.000 claims description 83
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/374—Thesaurus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种字典的更新方法、系统和服务器,该方法包括:任务管理器针对在存储器中的一字典生成分发任务;任务执行器读取所述分发任务;任务执行器按照所述分发任务,将所述字典分发至指定的设备。本申请实施例任务调度简洁,进而提高了系统的可靠性和吞吐量,提高了字典更新的效率,并大幅降低操作风险,尤其对大数量级字典的更新效率有极大提高,同时,也可以被方便地管理和监控。
Description
技术领域
本申请涉及计算机处理的技术领域,特别是涉及一种字典的更新方法、一种字典的更新系统和一种服务器。
背景技术
随着网络的迅速发展,网络中的信息量急剧增加,用户为了在网络巨大的信息中寻找所需的信息,通常向搜索引擎输入查询词,搜索引擎则对该查询词进行分析,查找匹配的信息,返回给用户。
在搜索引擎的对查询词分析时,通常需要一些字典的支持,这些字典主要是一些词表文件、规则文件等等。
例如,某些字典可以用在搜索引擎的纠错处理中,将查询词“留的华”进行纠错,获得“刘德华”。
由于网络中的信息量巨大,这些字典经常需要更新,而且每次更新的数量较多,目前为了提高更新效率,通过是编写自动更新的脚本对这些字典进行更新,但该更新方法的效率仍然十分低下,并且在更新过程中非常容易出错,尤其在处理大数量级字典的批量更新时,有较大的更新风险。
发明内容
本申请实施例提供一种字典的更新方法、系统和服务器,用以解决更新效率低,容易出错的问题。
为了解决上述问题,本申请实施例公开了一种字典的更新方法,包括:
任务管理器针对在存储器中的一字典生成分发任务;
任务执行器读取所述分发任务;
任务执行器按照所述分发任务,将所述字典分发至指定的设备。
优选地,所述分发任务存储在分发任务组中;
所述任务执行器读取所述分发任务的步骤包括:
在所述分发任务组中读取未标有执行者的分发任务。
优选地,所述任务管理器中具有所述字典的元信息;
所述任务执行器按照所述分发任务,将所述字典分发至指定的设备的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
按照所述字典地址信息在所述存储器中读取所述字典;
将所述字典分发至所述分发设备标识对应的设备。
优选地,在所述任务管理器针对一字典生成分发任务的步骤之前,所述方法还包括:
任务管理器在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
任务执行器读取所述构建任务;
任务执行器按照所述构建任务,将所述字典源数据构建字典。
优选地,所述构建任务存储在构建任务组中;
所述任务执行器读取所述构建任务的步骤包括:
在所述构建任务组中读取未标有执行者的构建任务。
优选地,所述任务管理器中具有所述字典源数据的元信息;
所述任务执行器按照所述构建任务,将所述字典源数据构建字典的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
按照所述字典地址信息在所述存储器中读取所述字典源数据;
按照所述格式文件地址信息在所述存储器中读取格式文件;
按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
优选地,在所述任务管理器针对一字典生成分发任务的步骤之前,所述方法还包括:
任务管理器针对在存储器中的一字典生成校验任务;
任务执行器读取所述校验任务;
任务执行器按照所述校验任务,对所述字典进行合法性校验。
优选地,所述校验任务存储在校验任务组中;
所述任务执行器读取所述校验任务的步骤包括:
在所述校验任务组中读取未标有执行者的校验任务。
优选地,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述任务执行器按照所述校验任务,对所述字典进行合法性校验的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
按照所述字典地址信息在所述存储器中读取所述字典;
按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
按照所述格式校验信息对所述字典进行格式校验。
优选地,还包括:
任务管理器在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
任务管理器在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,还包括:
任务管理器在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,还包括:
任务管理器读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
任务管理器在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
本申请实施例还公开了一种字典的更新系统,所述系统包括任务管理器和任务执行器;其中,
所述任务管理器包括:
分发任务生成模块,用于针对在存储器中的一字典生成分发任务;
所述任务执行器包括:
分发任务读取模块,用于读取所述分发任务;
字典分发模块,用于按照所述分发任务,将所述字典分发至指定的设备。
优选地,所述分发任务存储在分发任务组中;
所述分发任务读取模块包括:
分发任务组读取子模块,用于在所述分发任务组中读取未标有执行者的分发任务。
优选地,所述任务管理器中具有所述字典的元信息;
所述字典分发模块包括:
第一元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
第一字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
设备分发子模块,用于将所述字典分发至所述分发设备标识对应的设备。
优选地,所述任务管理器还包括:
构建任务生成模块,用于在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
所述任务执行器还包括:
构建任务读取模块,用于读取所述构建任务;
字典构建模块,用于按照所述构建任务,将所述字典源数据构建字典。
优选地,所述构建任务存储在构建任务组中;
所述构建任务读取模块包括:
构建任务组读取子模块,用于在所述构建任务组中读取未标有执行者的构建任务。
优选地,所述任务管理器中具有所述字典源数据的元信息;
所述字典构建模块包括:
第二元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
字典源数据读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典源数据;
格式文件读取子模块,用于按照所述格式文件地址信息在所述存储器中读取格式文件;
格式转换子模块,用于按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
优选地,所述任务管理器还包括:
校验任务生成模块,用于针对在存储器中的一字典生成校验任务;
所述任务执行器还包括:
校验任务读取模块,用于读取所述校验任务;
字典校验模块,用于按照所述校验任务,对所述字典进行合法性校验。
优选地,所述校验任务存储在校验任务组中;
所述校验任务读取模块包括:
校验任务组读取子模块,用于在所述校验任务组中读取未标有执行者的校验任务。
优选地,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述字典校验模块包括:
第三元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
第二字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
大小校验子模块,用于按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
格式校验子模块,用于按照所述格式校验信息对所述字典进行格式校验。
优选地,所述任务管理器还包括:
标记模块,用于在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
清除模块,用于在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,所述任务管理器还包括:
任务删除模块,用于在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,所述任务管理器还包括:
历史数据读取模块,用于读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
恢复模块,用于在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
本申请实施例还公开了一种服务器,所述服务器包括任务管理器和任务执行器;其中,
所述任务管理器,用于针对在存储器中的一字典生成分发任务;
所述任务执行器,用于读取所述分发任务;按照所述分发任务,将所述字典分发至指定的设备。
优选地,所述分发任务存储在分发任务组中;
所述任务执行器还用于:
在所述分发任务组中读取未标有执行者的分发任务。
优选地,所述任务管理器中具有所述字典的元信息;
所述任务执行器还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
按照所述字典地址信息在所述存储器中读取所述字典;
将所述字典分发至所述分发设备标识对应的设备。
优选地,所述任务管理器还用于:
在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
所述任务执行器还用于:
读取所述构建任务;
按照所述构建任务,将所述字典源数据构建字典。
优选地,所述构建任务存储在构建任务组中;
所述任务执行器还用于:
在所述构建任务组中读取未标有执行者的构建任务。
优选地,所述任务管理器中具有所述字典源数据的元信息;
所述任务执行器还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
按照所述字典地址信息在所述存储器中读取所述字典源数据;
按照所述格式文件地址信息在所述存储器中读取格式文件;
按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
优选地,所述任务管理器还用于:
针对在存储器中的一字典生成校验任务;
所述任务执行器还用于:
读取所述校验任务;
按照所述校验任务,对所述字典进行合法性校验。
优选地,所述校验任务存储在校验任务组中;
所述任务执行器还用于:
读取所述校验任务的步骤包括:
在所述校验任务组中读取未标有执行者的校验任务。
优选地,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述任务执行还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
按照所述字典地址信息在所述存储器中读取所述字典;
按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
按照所述格式校验信息对所述字典进行格式校验。
优选地,所述任务管理器还用于:
在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,所述任务管理器还用于:
在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
优选地,所述任务管理器还用于:
读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
本申请实施例包括以下优点:
本申请实施例构建面向工作流的调度方式,任务管理器创建诸如构建任务、校验任务和分发任务等任务,由任务执行器构建任务、校验任务和分发任务等任务的消费,任务调度简洁,进而提高了系统的可靠性和吞吐量,提高了字典更新的效率,并大幅降低操作风险,尤其对大数量级字典的更新效率有极大提高,同时,也可以被方便地管理和监控。
此外,使用存储器交换中间结果数据,极大地增加了数据交换的可靠性,也使得任务执行器之间的数据交换变得简洁。
本申请实施例通过在镜像文件的的基础上更新所述操作信息,恢复故障发生时的元信息,恢复了系统的状态,保证系统在运行的过程中,数据不丢失,保证了系统的稳定性。
附图说明
图1是本申请的一种字典的更新方法实施例1的步骤流程图;
图2是本申请实施例的一种字典管理系统的结构示例图;
图3是本申请的一种字典的更新方法实施例2的步骤流程图;
图4是本申请的一种字典的更新方法实施例3的步骤流程图;
图5是本申请的一种字典的更新方法实施例4的步骤流程图;
图6是本申请的一种字典的更新方法实施例5的步骤流程图;
图7是本申请的一种字典的更新系统实施例的结构框图;
图8是本申请的一种服务器的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种字典的更新方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,任务管理器针对在存储器中的一字典生成分发任务;
步骤102,任务执行器读取所述分发任务;
步骤103,任务执行器按照所述分发任务,将所述字典分发至指定的设备。
本申请实施例可以应用在字典管理系统(Dictionary ManagementSystem,DMS)中,即用于管理字典的系统。
其中,该字典管理系统可以部署在独立的服务器,也可以部署在服务器集群中,如分布式系统,本申请实施例对此不加以限制。
字典的管理可以分为构建、校验、分发等阶段,由于字典的数量很多,在本申请实施例中,在字典管理系统中以面向工作流的方式进行任务调度,对字典的构建(building)、校验(checking)和分发等阶段任务进行调度和管理,提高调度和管理的效率。
如图2所示,在字典管理系统中,使用的是控制流集中、数据流分散的模型,TaskManager(任务管理器,本质为功能模块)保持控制流信息,以Task(任务)为维度,创建各类型的Task(如构建任务、校验任务和分发任务),对各个节点的任务进行调度、管理,一般不主动数据处理过程。
对于构建(building)、校验(checking)和分发等操作,其任务可以称之为构建任务、校验任务、分发任务等。
每个阶段会有相应Excutor(任务执行器,本质为功能模块)消费Task,一个阶段Task执行完成之后,会生成下一阶段的Task。
例如,在构建任务执行完成之后,生成校验任务,在校验任务执行完成之后,生成分发任务。
一系列的Executor(如Executor1、Executor2……ExecutorN,N为正整数)组成了一个多级的数据处理流水线,这个流水线的每一级可以按照构建任务、校验任务、分发任务,执行字典的构建(builder)、校验(checking)和分发等操作。
在Excutor之间,存储器(即存储数据的系统,如分布式文件系统DFS),被用来交换中间结果数据(如字典源数据、字典等),而不是使用RPC(RemoteProcedure Call Protocol,远程过程调用协议),极大地增加了数据交换的可靠性,也使得Excutor之间的数据交换变得简洁。
本申请实施例构建面向工作流的调度方式,任务管理器创建诸如构建任务、校验任务和分发任务等任务,由任务执行器构建任务、校验任务和分发任务等任务的消费,任务调度简洁,进而提高了系统的可靠性和吞吐量,提高了字典更新的效率,并大幅降低操作风险,尤其对大数量级字典的更新效率有极大提高,同时,也可以被方便地管理和监控。
此外,使用存储器交换中间结果数据,极大地增加了数据交换的可靠性,也使得任务执行器之间的数据交换变得简洁。
参照图3,示出了本申请的一种字典的更新方法实施例2的步骤流程图,具体可以包括如下步骤:
步骤301,任务管理器在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
在申请实施例中,字典源数据可以指构建字典的数据,如词表文件、规则文件等。
在实际应用中,若词表文件、规则文件等字典源数据更新,则用户可以将该字典源数据、格式文件(存储字典源数据与字典之间格式关系的文件,如proto buffer,protobuf)写入存储器中,更新相应的时间戳,同时,在TaskManager中写入该字典源数据的元信息meta,即与字典管理相关的信息,在内存中构建一个高效的HashMap(哈希表)进行存储。
在本申请实施例的一个示例中,该meta信息可以如下的至少一项目:
app_name(应用名称)、dict_name(词表名称)、dict_version(词表版本)、data_path(字典的路径)、proto_path(字典对应的proto文件的路径)、dp_master(dp master对应的路径)、dp_iplist(dp分发的机器列表)、dp_path(dp分发词表对应的路径)、alarm_group(词表对应的报警组)、trigger_time(词表分发的时间)、data_dir(词表文件的格式)、status(是否发布)、check_proto(需要校验的proto)、process_state(目前运行状态)、start_time(任务开始的时间)、finish_time=16(任务结束的时间)、expansion_factor(膨胀系数)、output_file(构建字典输出路径)、dp_job_id(任务ID)、message_spliter(用户定义的message分隔符)、only_deploy(是否仅分发)、build_thread_num(builder线程个数)、message_name(字典名称)、deployed_data_version(已经分发版本)、only_deploy_version(only_dp是否需要版本号)、gray_dp_iplist(灰度发布的机器列表)、gray_dp_job_id(灰度发布的任务ID)、load_time(登录时间)、test_query(测试请求)、case_timeout(超时时间)、upper_dict_size(字典大小上限)、lower_dict_size(字典大小下限)、need_gray(是否需要灰度发布)、app_port(应用提供服务的端口)。
字典管理系统中具有一检测线程,可以定时或不定时地检测存储器中是否具有新的字典源数据。
例如,字典sc_video_web_clear_entity_dict在存储器的路径是:
pangu://AY19D:10240/product/DMS/qp_data/sc_data/video/sc_video_web_clear_entity_dict/
当有新的字典源数据生成时,这个路径下面会有新版本对应的时间戳,如20160201170000。
因此,在存储器的路径变更为:
pangu://AY19D:10240/product/DMS/qp_data/sc_data/video/sc_video_web_clear_entity_dict/20160201170000
若检测线程在路径中检测到时间戳“20160201170000”,则表示存储器中存储了新的字典源数据。
若检测到新的字典源数据,则TaskManager可以生成Task,调度构建(building)、校验(checking)和分发等操作。
对于构建(building)操作,TaskManager可以配置任务标识(如TaskID),新增一个构建任务,在内存中的HashMap(哈希表)进行存储。
步骤302,任务执行器读取所述构建任务;
在本申请实施例中,为了区分不同类型的任务,可以设置不同的TaskGroup(任务组),将相应的Task写入该TaskGroup中,由Excutor从相应的TaskGroup中读取、执行相应的操作。
对于构建(building)操作,可以设置构建任务组buider_group,构建任务可以存储在构建任务组buider_group中,因此,任务执行器Executor可以在构建任务组buider_group中读取未标有执行者的构建任务。
步骤303,任务管理器在任务执行器读取构建任务时,对所述构建任务标记执行者和超时时间;
为了提升系统的并发处理能力,系统中的Executor通常是有多个实例的,为了避免处理出错,一个Task一般只能被一个Executor执行,因此,在Task中可以提供互斥的语义,保证在同一时刻一个Task一般只能被一个Executor执行。
在具体实现中,Task通过分布式系统中的租约机制(如Lease)实现,如果一个Executor获取到相应的Task,TaskManager可以对Task标记该Executor为执行者(owner),可以理解为这个Task加了一把锁,在相应的Executor执行期间,别的Executor无法获取。
此外,为了避免在故障等情况下,Executor长时间在占用Task,使得该Task长时间没有执行,TaskManager可以对Task标记超时时间(eta),通过超时时间,别的Executor可以获取该Task执行。
对于标记owner和eta的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为构建任务。
步骤304,任务执行器按照所述构建任务,将所述字典源数据构建字典;
在具体实现中,任务管理器TaskManager中具有字典源数据的元信息meta,Executor在构建字典时,步骤304可以包括如下子步骤:
子步骤S11,从任务管理器TaskManager存储的字典的元信息meta中读取字典地址信息和格式文件地址信息;
其中,字典地址信息为字典在存储器中存储的路径,如data_path;
格式文件地址信息为格式文件在存储器中存储的路径,如proto_path。
子步骤S12,按照字典地址信息在存储器(如DFS)中读取字典源数据,按照格式文件地址信息在存储器(如DFS)中读取格式文件;
子步骤S13,按照格式文件对字典源数据进行格式转换,以构建字典。
字典源数据是文本格式的,具有一个或多个字段,该字典源数据的格式文件定义键名(key),以及该键名(key)对应的值(value)所在的字段,在该字段读取该键名(key)对应的值(value),组成键值对(key=value)形式的字典信息message。
例如,某个字典源数据如下:
Abc\t 5678\t 13.5
其中,字典源数据的每个字段以\t分隔。
该字典源数据的proto定义如下:
其中,proto定义key为字典源数据的第1个字段,coocc_num为字典源数据的第2个字段,mean_sep为字典源数据的第3个字段。
解析完成之后,会构建成为相应的pb格式的message,对于上述示例,具体message CooccDict为:
key=Abc;
coocc_num=5678;
mean_sep=13.5;
通过字典源数据和格式文件构建字典,可以方便用户的使用,同时也是为了支持高效的查询,这个message可以存在一个HashMap数据结构中。
步骤305,任务管理器在超过所述超时时间时,清除所述构建任务的执行者和超时时间;
在本申请实施例中,若Task执行超时(即超过超时时间),TaskManager可以清除Task的执行者(owner)和超时时间(eta),使得别的Executor可以获取该Task进行处理。
对于清除执行者(owner)和超时时间(eta)的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为构建任务。
步骤306,任务管理器在任务执行器执行完构建任务时,删除所述构建任务。
在具体实现中,若Executor执行完成Task,如字典构建完成,则TaskManager可以删除该Task。
对于删除的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为构建任务。
参照图4,示出了本申请的一种字典的更新方法实施例3的步骤流程图,具体可以包括如下步骤:
步骤401,任务管理器针对在存储器中的一字典生成校验任务;
在本申请实施例中,该字典可以指具有规定格式(如key=value)的词表或规则等文件,可以是字典源数据构建的,也可以是用户直接输入的。
若该字典是由字典源数据构建的,则在Executor执行完构建任务完成之后,TaskManager针对构建完成的字典,创建校验任务给下一个节点的Executor进行合法性校验,即校验字典是否符合规范,避免错误字典分发到线上,影响服务。
当然,TaskManager也可以针对用户输入的字典创建校验任务,本申请实施例对此不加以限制。
对于校验(checking)操作,TaskManager可以配置任务标识(如TaskID),新增一个校验任务,在内存中的HashMap(哈希表)进行存储。
需要说明的是,构建(building)阶段的任务标识(如TaskID)与校验(checking)阶段的任务标识(如TaskID)一般是不同的,但是指示同一个数据对象,该数据对象在构建(building)阶段称之为字典源数据,在构建(building)完成之后、在校验(checking)阶段称之为字典。
步骤402,任务执行器读取所述校验任务;
在本申请实施例中,为了区分不同类型的任务,可以设置不同的TaskGroup(任务组),将相应的Task写入该TaskGroup中,由Excutor从相应的TaskGroup中读取、执行相应的操作。
对于校验(checking)操作,可以设置构建任务组checking_group,校验任务可以存储在校验任务组checking_group中,因此,任务执行器Executor可以在校验任务组checking_group中读取未标有执行者的校验任务。
步骤403,任务管理器在任务执行器读取校验任务时,对所述校验任务标记执行者和超时时间;
为了提升系统的并发处理能力,系统中的Executor通常是有多个实例的,为了避免处理出错,一个Task一般只能被一个Executor执行,因此,在Task中可以提供互斥的语义,保证在同一时刻一个Task一般只能被一个Executor执行。
在具体实现中,Task通过分布式系统中的租约机制(如Lease)实现,如果一个Executor获取到相应的Task,TaskManager可以对Task标记该Executor为执行者(owner),可以理解为这个Task加了一把锁,在相应的Executor执行期间,别的Executor无法获取。
此外,为了避免在故障等情况下,Executor长时间在占用Task,使得该Task长时间没有执行,TaskManager可以对Task标记超时时间(eta),通过超时时间,别的Executor可以获取该Task执行。
对于标记owner和eta的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为校验任务。
步骤404,任务执行器按照所述校验任务,对所述字典进行合法性校验;
在具体实现中,任务管理器TaskManager中具有字典源数据的元信息meta,合法性校验可以包括文件大小校验(校验字典的大小是否符合规范)和/或格式校验(校验字典的格式是否符合规范),Executor在对字典进行合法性校验时,步骤404可以包括如下子步骤:
子步骤S21,从任务管理器TaskManager存储的字典的元信息meta中读取字典地址信息(如data_path)、文件大小信息和格式校验信息;
其中,文件大小信息可以为设置的字典的大小信息,如upper_dict_size、lower_dict_size;
格式校验信息可以指需要校验的字典信息message,如check_proto;
子步骤S22,按照字典地址信息在存储器(如DFS)中读取字典;
子步骤S23,按照文件大小信息对字典进行文件大小校验;
一方面,可以校验字典是否超过upper_dict_size规定的大小上限,若是,则确定文件大小校验成功,反之,文件大小校验失败。
另一方面,可以校验字典是否低于lower_dict_size规定的大小下限,若是,则确定文件大小校验成功,反之,文件大小校验失败。
和/或,
子步骤S24,按照所述格式校验信息对所述字典进行格式校验。
在具体实现中,可以校验格式校验信息指示的键值对(key=value)形式字典信息message,键名(key)与值(value)的匹配是否正确,若是,则确定格式校验成功,反之,格式校验失败。
需要说明的是,字典的checking操作可以由用户根据实际情况才进行配置的,如设置check_proto,每个字典的checking操作都可能不相同。
若文件大小校验、格式校验均校验成功,则可以确定字典合法性校验成功,可以进行分发。
反之,若文件大小校验、格式校验任一校验失败,则可以确定字典合法性校验失败,可以生成提示信息,提示用户进行处距离,也可以直接重新进行构建。
步骤405,任务管理器在超过所述超时时间时,清除所述校验任务的执行者和超时时间;
在本申请实施例中,若Task执行超时(即超过超时时间),TaskManager可以清除Task的执行者(owner)和超时时间(eta),使得别的Executor可以获取该Task进行处理。
对于清除执行者(owner)和超时时间(eta)的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为校验任务。
步骤406,任务管理器在任务执行器执行完校验任务时,删除所述校验任务。
在具体实现中,若Executor执行完成Task,如字典构建完成,则TaskManager可以删除该Task。
对于删除的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为校验任务。
参照图5,示出了本申请的一种字典的更新方法实施例4的步骤流程图,具体可以包括如下步骤:
步骤501,任务管理器针对在存储器中的一字典生成分发任务;
在本申请实施例中,该字典可以指具有规定格式(如key=value)的词表或规则等文件,可以是字典源数据构建的,也可以是合法性校验成功的,还可以是用户直接输入的,本申请实施例对此不加以限制。
在实际应用中,有些字典本身就是用户构建好,是二进制格式的,就不需要进行构建,因此,用户可以在配置元信息meta的时候制定配置项为only_deploy(意思是仅仅是分发),那么DMS仅仅会分发字典到相应的设备上。
若该字典是合法性校验成功的之后的字典,则在Executor执行完校验任务完成之后,TaskManager针对校验成功的字典,创建分发任务给下一个节点的Executor进行分发。
当然,TaskManager也可以针对用户输入的字典创建校验任务,本申请实施例对此不加以限制。
对于分发操作,TaskManager可以配置任务标识(如TaskID),新增一个分发任务,在内存中的HashMap(哈希表)进行存储。
需要说明的是,分发阶段的任务标识(如TaskID)与构建(building)、阶段校验(checking)阶段的任务标识(如TaskID)一般是不同的,但是指示同一个数据对象,该数据对象在构建(building)阶段称之为字典源数据,在构建(building)完成之后、在校验(checking)阶段、分发阶段称之为字典。
步骤502,任务执行器读取所述分发任务;
在本申请实施例中,为了区分不同类型的任务,可以设置不同的TaskGroup(任务组),将相应的Task写入该TaskGroup中,由Excutor从相应的TaskGroup中读取、执行相应的操作。
对于分发操作,可以设置分发任务组,分发任务可以存储在分发任务组中,因此,任务执行器Executor可以在分发任务组中读取未标有执行者的分发任务。
步骤503,任务管理器在任务执行器读取分发任务时,对所述分发任务标记执行者和超时时间;
为了提升系统的并发处理能力,系统中的Executor通常是有多个实例的,为了避免处理出错,一个Task一般只能被一个Executor执行,因此,在Task中可以提供互斥的语义,保证在同一时刻一个Task一般只能被一个Executor执行。
在具体实现中,Task通过分布式系统中的租约机制(如Lease)实现,如果一个Executor获取到相应的Task,TaskManager可以对Task标记该Executor为执行者(owner),可以理解为这个Task加了一把锁,在相应的Executor执行期间,别的Executor无法获取。
此外,为了避免在故障等情况下,Executor长时间在占用Task,使得该Task长时间没有执行,TaskManager可以对Task标记超时时间(eta),通过超时时间,别的Executor可以获取该Task执行。
对于标记owner和eta的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为分发任务。
步骤504,任务执行器按照所述分发任务,将所述字典分发至指定的设备;
在具体实现中,任务管理器TaskManager中具有字典源数据的元信息meta,Executor在对字典进行合法性校验时,步骤504可以包括如下子步骤:
子步骤S31,从任务管理器TaskManager存储的字典的元信息meta中读取字典地址信息(如data_path)和分发设备标识;
其中,分发设备标识为字典分发的目标,如dp_iplist;
子步骤S32,按照所述字典地址信息在存储器(如DFS)中读取所述字典;
子步骤S33,将字典分发至分发设备标识对应的设备。
例如,字典的data_path如下:
pangu://AY19D:10240/product/DMS/qp_data/sc_data/video/sc_video_web_clear_entity_dict/
该字典配置的dp_iplist是ip1、ip2、ip3,那么,这个字典会分发IP(InternetProtocol,网络之间互连的协议)地址为ip1、ip2、ip3的机器的某个目录中。
分发到相应的设备目录之后,该设备检测词典的更新,则可以加载最新的字典到内存中,应用在线上服务,如搜索。
步骤505,任务管理器在超过所述超时时间时,清除所述分发任务的执行者和超时时间;
在本申请实施例中,若Task执行超时(即超过超时时间),TaskManager可以清除Task的执行者(owner)和超时时间(eta),使得别的Executor可以获取该Task进行处理。
对于清除执行者(owner)和超时时间(eta)的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为分发任务。
步骤506,任务管理器在任务执行器执行完目标任务时,删除所述目标任务。
在具体实现中,若Executor执行完成Task,如字典构建完成,则TaskManager可以删除该Task。
对于删除的Task,可以称之为目标任务,在本申请实施例中,该目标任务可以为分发任务。
在本申请实施例中,TaskManager维护了整个系统中所有要被处理的Task,并提供了查询以及原子更新的操作。总的来说,TaskManager支持两类操作:
一、查询(query)
查询操作的参数包含一个TaskGroup名,以及需要返回的最大Task数目,TaskManager返回在该TaskGroup中的、在最大Task数目之内的Task。
另外,也可以通过一个标记来控制是否返回已经有owner的Task。
若返回有owner的Task,则查询有owner的Task,返回在最大Task数目内的Task的信息。
若不返回有owner的Task,则查询未有owner的Task,返回在最大Task数目内的Task的信息。
二、更新(update)
字典更新过程中,各个阶段状态都可以进行更新,如building阶段,字典building状态的更新,如果building成功,则更新building状态为成功,如果building失败,则更新building状态为失败。
这个状态的更新,可以由Executor触发,也可以由用户通过前端界面触发,本申请实施例对此不加以限制。
更新操作包括创建的task、删除的task和需要更新的task,这些操作是在同一个事务中被执行的。
如果任何一个操作失败,整个更新就是失败的,内存状态也不应该有任何修改,新的任务也是由TaskManager来分配的。
参照图6,示出了本申请的一种字典的更新方法实施例5的步骤流程图,具体可以包括如下步骤:
步骤601,任务管理器读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
步骤602,任务管理器在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
整个系统的信息通过Task进行保存,TaskManager在内存中维护整个系统的核心信息,Task的丢失导致流程构建的失败,因此,在本申请实施例中,对TaskManager配置了failover(故障恢复)机制,避免Task的元信息meta丢失,保证数据的完整性。
一方面,TaskManager可以定时或不定时地对维护的字典源数据和/或字典的元信息meta生成镜像文件,进行持久化,如记录在本地磁盘。
另一方面,TaskManager可以将Executor对字典源数据和/或字典的操作(如构建、校验、分发),记录在操作信息(如操作日志Log),进行持久化,如记录在本地磁盘。
在系统failover(故障恢复)时,镜像文件可以避免在重启的时候读取太多的操作信息,TaskManager可以加载最新的镜像文件并读取在该镜像文件之后记录的操作信息,在镜像文件的基础上按照时间更新该操作信息,构建出内存中故障发生时的HashMap(包括元信息meta),恢复整个系统的状态,恢复可以在分钟级别完成,整个系统的实现也可以容许在这个级别上的延时。
本申请实施例通过在镜像文件的的基础上更新所述操作信息,恢复故障发生时的元信息,恢复了系统的状态,保证系统在运行的过程中,数据不丢失,保证了系统的稳定性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图7,示出了本申请的一种字典的更新系统实施例的结构框图,该系统包括任务管理器710和任务执行器720,其中,
所述任务管理器710可以包括如下模块:
分发任务生成模块711,用于针对在存储器中的一字典生成分发任务;
所述任务执行器720包括:
分发任务读取模块721,用于读取所述分发任务;
字典分发模块722,用于按照所述分发任务,将所述字典分发至指定的设备。
在本申请的一个实施例中,所述分发任务存储在分发任务组中;
所述分发任务读取模块721可以包括如下子模块:
分发任务组读取子模块,用于在所述分发任务组中读取未标有执行者的分发任务。
在本申请的一个实施例中,所述任务管理器710中具有所述字典的元信息;
所述字典分发模块722可以包括如下子模块:
第一元信息读取子模块,用于从任务管理器710存储的所述字典的元信息中读取字典地址信息和分发设备标识;
第一字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
设备分发子模块,用于将所述字典分发至所述分发设备标识对应的设备。
在本申请的一个实施例中,所述任务管理器710还可以包括如下模块:
构建任务生成模块,用于在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
所述任务执行器720还可以包括如下模块:
构建任务读取模块,用于读取所述构建任务;
字典构建模块,用于按照所述构建任务,将所述字典源数据构建字典。
在本申请的一个实施例中,所述构建任务存储在构建任务组中;
所述构建任务读取模块可以包括如下子模块:
构建任务组读取子模块,用于在所述构建任务组中读取未标有执行者的构建任务。
在本申请的一个实施例中,所述任务管理器710中具有所述字典源数据的元信息;
所述字典构建模块可以包括如下子模块:
第二元信息读取子模块,用于从任务管理器710存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
字典源数据读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典源数据;
格式文件读取子模块,用于按照所述格式文件地址信息在所述存储器中读取格式文件;
格式转换子模块,用于按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
在本申请的一个实施例中,所述任务管理器710还可以包括如下模块:
校验任务生成模块,用于针对在存储器中的一字典生成校验任务;
所述任务执行器720还可以包括如下模块:
校验任务读取模块,用于读取所述校验任务;
字典校验模块,用于按照所述校验任务,对所述字典进行合法性校验。
在本申请的一个实施例中,所述校验任务存储在校验任务组中;
所述校验任务读取模块可以包括如下子模块:
校验任务组读取子模块,用于在所述校验任务组中读取未标有执行者的校验任务。
在本申请的一个实施例中,所述任务管理器710中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述字典校验模块可以包括如下子模块:
第三元信息读取子模块,用于从任务管理器710存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
第二字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
大小校验子模块,用于按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
格式校验子模块,用于按照所述格式校验信息对所述字典进行格式校验。
在本申请的一个实施例中,所述任务管理器710还可以包括如下模块:
标记模块,用于在任务执行器720读取目标任务时,对所述目标任务标记执行者和超时时间;
清除模块,用于在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
在本申请的一个实施例中,所述任务管理器710还可以包括如下模块:
任务删除模块,用于在任务执行器720执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
在本申请的一个实施例中,所述任务管理器710还可以包括如下模块:
历史数据读取模块,用于读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
恢复模块,用于在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
参照图8,示出了本申请的一种服务器的结构示意图图,所述服务器包括任务管理器801和任务执行器802;其中,
所述任务管理器801,用于针对在存储器中的一字典生成分发任务;
所述任务执行器802,用于读取所述分发任务;按照所述分发任务,将所述字典分发至指定的设备。
在本申请的一个实施例中,所述分发任务存储在分发任务组中;
所述任务执行器802还用于:
在所述分发任务组中读取未标有执行者的分发任务。
在本申请的一个实施例中,所述任务管理器中具有所述字典的元信息;
所述任务执行器802还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
按照所述字典地址信息在所述存储器中读取所述字典;
将所述字典分发至所述分发设备标识对应的设备。
在本申请的一个实施例中,所述任务管理器801还用于:
在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
所述任务执行器802还用于
读取所述构建任务;
按照所述构建任务,将所述字典源数据构建字典。
在本申请的一个实施例中,所述构建任务存储在构建任务组中;
所述任务执行器802还用于:
在所述构建任务组中读取未标有执行者的构建任务。
在本申请的一个实施例中,所述任务管理器中具有所述字典源数据的元信息;
所述任务执行器802还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
按照所述字典地址信息在所述存储器中读取所述字典源数据;
按照所述格式文件地址信息在所述存储器中读取格式文件;
按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
在本申请的一个实施例中,所述任务管理器801还用于:
针对在存储器中的一字典生成校验任务;
所述任务执行器802还用于:
读取所述校验任务;
按照所述校验任务,对所述字典进行合法性校验。
在本申请的一个实施例中,所述校验任务存储在校验任务组中;
所述任务执行器802还用于:
读取所述校验任务的步骤包括:
在所述校验任务组中读取未标有执行者的校验任务。
在本申请的一个实施例中,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述任务执行802还用于:
从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
按照所述字典地址信息在所述存储器中读取所述字典;
按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
按照所述格式校验信息对所述字典进行格式校验。
在本申请的一个实施例中,所述任务管理器801还用于:
在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
在本申请的一个实施例中,所述任务管理器801还用于:
在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
在本申请的一个实施例中,所述任务管理器801还用于:
读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
对于系统、服务器实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种字典的更新方法、一种字典的更新系统和一种服务器,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (25)
1.一种字典的更新方法,其特征在于,包括:
任务管理器针对在存储器中的一字典生成分发任务;
任务执行器读取所述分发任务;
任务执行器按照所述分发任务,将所述字典分发至指定的设备。
2.根据权利要求1所述的方法,其特征在于,所述分发任务存储在分发任务组中;
所述任务执行器读取所述分发任务的步骤包括:
在所述分发任务组中读取未标有执行者的分发任务。
3.根据权利要求1所述的方法,其特征在于,所述任务管理器中具有所述字典的元信息;
所述任务执行器按照所述分发任务,将所述字典分发至指定的设备的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
按照所述字典地址信息在所述存储器中读取所述字典;
将所述字典分发至所述分发设备标识对应的设备。
4.根据权利要求1所述的方法,其特征在于,在所述任务管理器针对一字典生成分发任务的步骤之前,所述方法还包括:
任务管理器在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
任务执行器读取所述构建任务;
任务执行器按照所述构建任务,将所述字典源数据构建字典。
5.根据权利要求4所述的方法,其特征在于,所述构建任务存储在构建任务组中;
所述任务执行器读取所述构建任务的步骤包括:
在所述构建任务组中读取未标有执行者的构建任务。
6.根据权利要求4所述的方法,其特征在于,所述任务管理器中具有所述字典源数据的元信息;
所述任务执行器按照所述构建任务,将所述字典源数据构建字典的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
按照所述字典地址信息在所述存储器中读取所述字典源数据;
按照所述格式文件地址信息在所述存储器中读取格式文件;
按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
7.根据权利要求1或4所述的方法,其特征在于,在所述任务管理器针对一字典生成分发任务的步骤之前,所述方法还包括:
任务管理器针对在存储器中的一字典生成校验任务;
任务执行器读取所述校验任务;
任务执行器按照所述校验任务,对所述字典进行合法性校验。
8.根据权利要求7所述的方法,其特征在于,所述校验任务存储在校验任务组中;
所述任务执行器读取所述校验任务的步骤包括:
在所述校验任务组中读取未标有执行者的校验任务。
9.根据权利要求7所述的方法,其特征在于,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述任务执行器按照所述校验任务,对所述字典进行合法性校验的步骤包括:
从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
按照所述字典地址信息在所述存储器中读取所述字典;
按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
按照所述格式校验信息对所述字典进行格式校验。
10.根据权利要求1或2或3或4或5或6或7或8或9所述的方法,其特征在于,还包括:
任务管理器在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
任务管理器在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
11.根据权利要求1或2或3或4或5或6或7或8或9所述的方法,其特征在于,还包括:
任务管理器在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
12.根据权利要求1或2或3或4或5或6或7或8或9所述的方法,其特征在于,还包括:
任务管理器读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
任务管理器在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
13.一种字典的更新系统,其特征在于,所述系统包括任务管理器和任务执行器;其中,
所述任务管理器包括:
分发任务生成模块,用于针对在存储器中的一字典生成分发任务;
所述任务执行器包括:
分发任务读取模块,用于读取所述分发任务;
字典分发模块,用于按照所述分发任务,将所述字典分发至指定的设备。
14.根据权利要求13所述的系统,其特征在于,所述分发任务存储在分发任务组中;
所述分发任务读取模块包括:
分发任务组读取子模块,用于在所述分发任务组中读取未标有执行者的分发任务。
15.根据权利要求13所述的系统,其特征在于,所述任务管理器中具有所述字典的元信息;
所述字典分发模块包括:
第一元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息和分发设备标识;
第一字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
设备分发子模块,用于将所述字典分发至所述分发设备标识对应的设备。
16.根据权利要求13所述的系统,其特征在于,
所述任务管理器还包括:
构建任务生成模块,用于在检测到存储器中存储新的字典源数据时,针对所述字典源数据生成构建任务;
所述任务执行器还包括:
构建任务读取模块,用于读取所述构建任务;
字典构建模块,用于按照所述构建任务,将所述字典源数据构建字典。
17.根据权利要求16所述的系统,其特征在于,所述构建任务存储在构建任务组中;
所述构建任务读取模块包括:
构建任务组读取子模块,用于在所述构建任务组中读取未标有执行者的构建任务。
18.根据权利要求16所述的系统,其特征在于,所述任务管理器中具有所述字典源数据的元信息;
所述字典构建模块包括:
第二元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息和格式文件地址信息;
字典源数据读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典源数据;
格式文件读取子模块,用于按照所述格式文件地址信息在所述存储器中读取格式文件;
格式转换子模块,用于按照所述格式文件对所述字典源数据进行格式转换,以构建字典。
19.根据权利要求13或16所述的系统,其特征在于,
所述任务管理器还包括:
校验任务生成模块,用于针对在存储器中的一字典生成校验任务;
所述任务执行器还包括:
校验任务读取模块,用于读取所述校验任务;
字典校验模块,用于按照所述校验任务,对所述字典进行合法性校验。
20.根据权利要求19所述的系统,其特征在于,所述校验任务存储在校验任务组中;
所述校验任务读取模块包括:
校验任务组读取子模块,用于在所述校验任务组中读取未标有执行者的校验任务。
21.根据权利要求19所述的系统,其特征在于,所述任务管理器中具有所述字典的元信息,所述合法性校验包括文件大小校验和/或格式校验;
所述字典校验模块包括:
第三元信息读取子模块,用于从任务管理器存储的所述字典的元信息中读取字典地址信息、文件大小信息和格式校验信息;
第二字典读取子模块,用于按照所述字典地址信息在所述存储器中读取所述字典;
大小校验子模块,用于按照所述文件大小信息对所述字典进行文件大小校验;
和/或,
格式校验子模块,用于按照所述格式校验信息对所述字典进行格式校验。
22.根据权利要求13或14或15或16或17或18或19或20或21所述的系统,其特征在于,所述任务管理器还包括:
标记模块,用于在任务执行器读取目标任务时,对所述目标任务标记执行者和超时时间;
清除模块,用于在超过所述超时时间时,清除所述目标任务的执行者和超时时间;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
23.根据权利要求13或14或15或16或17或18或19或20或21所述的系统,其特征在于,所述任务管理器还包括:
任务删除模块,用于在任务执行器执行完目标任务时,删除所述目标任务;
其中,所述目标任务包括构建任务、校验任务和分发任务中的至少一个任务。
24.根据权利要求13或14或15或16或17或18或19或20或21所述的系统,其特征在于,所述任务管理器还包括:
历史数据读取模块,用于读取在先对字典源数据和/或字典的元信息生成的镜像文件,以及,对所述字典源数据和/或所述字典进行操作记录的操作信息;
恢复模块,用于在所述镜像文件的基础上更新所述操作信息,以恢复所述字典源数据和/或所述字典最新的元信息。
25.一种服务器,其特征在于,所述服务器包括任务管理器和任务执行器;其中,
所述任务管理器,用于针对在存储器中的一字典生成分发任务;
所述任务执行器,用于读取所述分发任务;按照所述分发任务,将所述字典分发至指定的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610266395.9A CN105956046A (zh) | 2016-04-25 | 2016-04-25 | 一种字典的更新方法、系统和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610266395.9A CN105956046A (zh) | 2016-04-25 | 2016-04-25 | 一种字典的更新方法、系统和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105956046A true CN105956046A (zh) | 2016-09-21 |
Family
ID=56915326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610266395.9A Pending CN105956046A (zh) | 2016-04-25 | 2016-04-25 | 一种字典的更新方法、系统和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105956046A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645538A (zh) * | 2017-08-14 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 提供动态压缩字典的方法及装置和电子设备 |
CN109582318A (zh) * | 2018-12-20 | 2019-04-05 | 武汉斗鱼鱼乐网络科技有限公司 | Portobuf本地化的处理方法、装置、终端及存储介质 |
CN109684611A (zh) * | 2018-12-18 | 2019-04-26 | 北京城市网邻信息技术有限公司 | 一种字典转码方法、装置、存储介质及终端 |
CN115347902A (zh) * | 2022-10-17 | 2022-11-15 | 四川省华存智谷科技有限责任公司 | 存储系统镜像数据传输过程中自适应压缩方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593183A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 用于提供用户词典的方法和系统 |
CN102362277A (zh) * | 2009-03-25 | 2012-02-22 | 微软公司 | 用于应用的可共享的分发的词典 |
US20150032684A1 (en) * | 2013-07-29 | 2015-01-29 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
-
2016
- 2016-04-25 CN CN201610266395.9A patent/CN105956046A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593183A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 用于提供用户词典的方法和系统 |
CN102362277A (zh) * | 2009-03-25 | 2012-02-22 | 微软公司 | 用于应用的可共享的分发的词典 |
US20150032684A1 (en) * | 2013-07-29 | 2015-01-29 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645538A (zh) * | 2017-08-14 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 提供动态压缩字典的方法及装置和电子设备 |
CN109684611A (zh) * | 2018-12-18 | 2019-04-26 | 北京城市网邻信息技术有限公司 | 一种字典转码方法、装置、存储介质及终端 |
CN109684611B (zh) * | 2018-12-18 | 2024-02-20 | 北京城市网邻信息技术有限公司 | 一种字典转码方法、装置、存储介质及终端 |
CN109582318A (zh) * | 2018-12-20 | 2019-04-05 | 武汉斗鱼鱼乐网络科技有限公司 | Portobuf本地化的处理方法、装置、终端及存储介质 |
CN109582318B (zh) * | 2018-12-20 | 2022-05-10 | 武汉斗鱼鱼乐网络科技有限公司 | Portobuf本地化的处理方法、装置、终端及存储介质 |
CN115347902A (zh) * | 2022-10-17 | 2022-11-15 | 四川省华存智谷科技有限责任公司 | 存储系统镜像数据传输过程中自适应压缩方法及系统 |
CN115347902B (zh) * | 2022-10-17 | 2023-02-28 | 四川省华存智谷科技有限责任公司 | 存储系统镜像数据传输过程中自适应压缩方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8688625B1 (en) | Extract, transform, and load application complexity management framework | |
US8938421B2 (en) | Method and a system for synchronizing data | |
CN110825420A (zh) | 分布式集群的配置参数更新方法、装置、设备及存储介质 | |
CN106899654B (zh) | 一种序列值生成方法、装置及系统 | |
JP2017538200A (ja) | 分散環境におけるサービスアドレッシング | |
CN105956046A (zh) | 一种字典的更新方法、系统和服务器 | |
CN108256870B (zh) | 基于拓扑结构生成描述信息及更新、数据处理方法和装置 | |
CN107193827B (zh) | 分库分表的幂等控制方法和装置 | |
US9513997B2 (en) | Test data management | |
CN106547646B (zh) | 一种数据备份及恢复方法、数据备份及恢复装置 | |
US20100191555A1 (en) | Business service discovery | |
CN111538719A (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
CN107766354A (zh) | 一种用于保证数据正确性的方法与设备 | |
CN107612950A (zh) | 一种提供服务的方法、装置、系统、电子设备 | |
US11500812B2 (en) | Intermediate file processing method, client, server, and system | |
CN114860654A (zh) | 一种基于Flink数据流的Iceberg表Schema动态变更方法及系统 | |
US11809284B2 (en) | System and method of cloning a multi-tiered application | |
CN110298031B (zh) | 一种词典服务系统及模型版本一致性配送方法 | |
CN105653566B (zh) | 一种实现数据库写访问的方法及装置 | |
CN116414914A (zh) | 数据的同步方法、装置、处理器及电子设备 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN109389271B (zh) | 应用性能管理方法及系统 | |
KR101797482B1 (ko) | 데이터베이스 시스템에서 블록 복구 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램 | |
CN111240794A (zh) | 容器镜像提取方法、装置以及容器镜像测试方法、装置 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160921 |
|
RJ01 | Rejection of invention patent application after publication |