CN108334514B - 数据的索引方法以及装置 - Google Patents

数据的索引方法以及装置 Download PDF

Info

Publication number
CN108334514B
CN108334514B CN201710041318.8A CN201710041318A CN108334514B CN 108334514 B CN108334514 B CN 108334514B CN 201710041318 A CN201710041318 A CN 201710041318A CN 108334514 B CN108334514 B CN 108334514B
Authority
CN
China
Prior art keywords
data
inverted
zipper
index
original
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.)
Active
Application number
CN201710041318.8A
Other languages
English (en)
Other versions
CN108334514A (zh
Inventor
肖智鹏
张磊
李学文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710041318.8A priority Critical patent/CN108334514B/zh
Publication of CN108334514A publication Critical patent/CN108334514A/zh
Application granted granted Critical
Publication of CN108334514B publication Critical patent/CN108334514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据的索引方法以及装置,涉及计算机技术领域。本发明的方法包括:实时获取增量数据,增量数据包括增加的数据或删除的数据;根据增量数据对应的key获取倒排索引中该key对应的原倒排拉链;根据增量数据以及原倒排拉链中的数据生成临时倒排拉链;利用临时倒排拉链替换原倒排拉链来更新所述倒排索引,利用更新后的倒排索引提供检索服务。本发明的方法能够实时获取增量数据,并针对增量数据涉及的倒排拉链实时进行更新来替换原倒排拉链,实现倒排索引的实时更新,使得新投放的数据能够得到及时的应用,提高了数据投放的实时性。

Description

数据的索引方法以及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种数据的索引方法以及装置。
背景技术
在线广告平台中,广告投放系统接收投放数据,广告索引系统建立倒排索引,为广告检索系统提供索引。广告投放系统的实时性直接影响广告用户实时感知投放广告或实时获取改变投放策略后带来的收益反馈。
现有的广告索引系统一般采取“班车机制”进行倒排索引的更新:定期对整个广告投放数据(以下统称“全量数据”)进行更新,建立全量数据对应的倒排索引,而广告用户新投放的广告数据(以下统称“增量数据”)只能等待下次全量数据更新时建立进入倒排索引中,直接影响了用户的体验。
发明内容
本发明所要实现的一个目的是:提出一种实时更新增量数据的倒排索引的方法。
根据本发明的一个方面,提供的一种数据的索引方法,包括:实时获取增量数据,增量数据包括增加的数据或删除的数据;根据增量数据对应的键key获取倒排索引中key对应的原倒排拉链;根据增量数据以及原倒排拉链中的数据生成临时倒排拉链;利用临时倒排拉链替换原倒排拉链来更新倒排索引,利用更新后的倒排索引提供检索服务。
在一个实施例中,将增量数据更新到原倒排拉链中生成临时倒排拉链包括:当增量数据为增加的数据时,复制原倒排拉链,并在复制的原倒排拉链中添加增加的数据,以生成临时倒排拉链;或者,当增量数据为删除的数据时,复制原倒排拉链,并在复制的原倒排拉链中删除该删除的数据,以生成临时倒排拉链。
在一个实施例中,该方法还包括:在利用临时倒排拉链替换原倒排拉链时,如果原倒排拉链正在被使用,则为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收。
在一个实施例中,为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收包括:检索线程在接收用户的检索请求后,在时间队列中生成第一时间戳,并在检索请求完成检索后,删除对应的第一时间戳;与检索线程并行执行的索引线程在为原倒排拉链的内存空间添加延迟回收标识的同时为原倒排拉链的内存空间打上第二时间戳;索引线程每隔预设时间从时间队列中获取最小的第一时间戳,并将最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对;如果带有延迟回收标识的内存空间的第二时间戳小于最小的第一时间戳,则将带有延迟回收标识的内存空间回收。
在一个实施例中,为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收还包括:如果原倒排拉链的带有延迟回收标识的内存空间的第二时间戳大于或等于最小的第一时间戳,则不回收带有延迟回收标识的内存空间,使得正在使用原倒排拉链进行检索的检索线程,在原倒排拉链被替换后,仍然到原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
在一个实施例中,该方法还包括:周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件;在内存中实时将更新后的倒排索引文件进行备份。
在一个实施例中,该方法还包括:从云存储系统中获取已存储的全量数据的文件;根据全量数据生成倒排索引文件;将倒排索引文件发送至云存储系统进行存储;启动时从云存储系统获取倒排索引文件保存至内存中。
根据本发明的第二个方面,提供的一种数据的索引装置,包括:增量数据获取模块,用于实时获取增量数据,增量数据包括增加的数据或删除的数据;原倒排拉链获取模块,用于根据增量数据对应的键key获取倒排索引中key对应的原倒排拉链;临时倒排拉链生成模块,用于根据增量数据以及原倒排拉链中的数据生成临时倒排拉链;倒排索引更新模块,用于利用临时倒排拉链替换原倒排拉链来更新倒排索引,利用更新后的倒排索引提供检索服务。
在一个实施例中,当增量数据为增加的数据时,临时倒排拉链生成模块,用于复制原倒排拉链,并在复制的原倒排拉链中添加增加的数据,以生成临时倒排拉链;或者,当增量数据为删除的数据时,临时倒排拉链生成模块,用于复制原倒排拉链,并在复制的原倒排拉链中删除该删除的数据,以生成临时倒排拉链。
在一个实施例中,数据的索引装置还包括:延迟回收模块,用于在倒排索引更新模块利用临时倒排拉链替换原倒排拉链时,如果原倒排拉链正在被使用,则为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收。
在一个实施例中,延迟回收模块包括:检索线程执行单元,用于接收用户的检索请求,查找对应的倒排拉链进行检索;时间队列单元,用于在检索线程执行单元接收用户的检索请求后,在时间队列中生成第一时间戳,并在检索请求完成检索后,删除对应的第一时间戳;索引线程执行单元,用于在为原倒排拉链的内存空间添加延迟回收标识的同时为原倒排拉链的内存空间打上第二时间戳,每隔预设时间从时间队列中获取最小的第一时间戳,并将最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对,如果带有延迟回收标识的内存空间的第二时间戳小于最小的第一时间戳,则将带有延迟回收标识的内存空间回收;其中,索引线程执行单元与检索线程执行单元并行执行。
在一个实施例中,索引线程执行单元,还用于如果原倒排拉链的带有延迟回收标识的内存空间的第二时间戳大于或等于最小的第一时间戳,则不回收带有延迟回收标识的内存空间,使得正在使用原倒排拉链进行检索的检索线程执行单元在原倒排拉链被替换后,仍然到原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
在一个实施例中,数据的索引装置还包括:倒排索引发送模块,用于周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件;倒排索引备份模块,用于在内存中实时将更新后的倒排索引文件进行备份。
在一个实施例中,数据的索引装置还包括:倒排索引生成模块,用于从云存储系统中获取已存储的全量数据的文件,根据所述全量数据生成倒排索引文件,将所述倒排索引文件发送至所述云存储系统进行存储;倒排索引获取模块,用于启动时从所述云存储系统获取所述倒排索引文件保存至内存中。
根据本发明的第三个方面,提供的一种数据的索引装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器设备中的指令,执行如前述任一个实施例中的数据的索引方法。
本发明的方法能够实时获取增量数据,并针对增量数据涉及的倒排拉链实时进行更新来替换原倒排拉链,实现倒排索引的实时更新,使得新投放的数据能够得到及时的应用,提高了数据投放的实时性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明的一个实施例的数据的索引装置的架构示意图。
图2示出本发明的一个实施例的数据的索引方法的流程示意图。
图3示出本发明的一个应用例的数据的索引方法的示意图。
图4示出本发明的另一个实施例的数据的索引方法的流程示意图。
图5示出本发明的又一个实施例的数据的索引方法的流程示意图。
图6示出本发明的一个实施例的数据的索引装置的结构示意图。
图7示出本发明的另一个实施例的数据的索引装置的结构示意图。
图8示出本发明的又一个实施例的数据的索引装置的结构示意图。
图9示出本发明的再一个实施例的数据的索引装置的结构示意图。
图10示出本发明的又一个实施例的数据的索引装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有的广告投放系统不对新投放的广告数据进行实时的更新影响用户感知的问题,提出本方案。
下面结合图1描述本发明的数据的索引装置的架构图。
图1为本发明数据的索引装置一个实施例的架构图。如图1所示,数据的索引装置10包括检索系统20、索引系统30以及云存储系统40。
检索系统20是服务节点,包括多个检索服务器对外提供检索服务例如广告检索服务,启动时会加载云存储系统40中存储的索引系统30提供的倒排索引文件到内存中,并且多个检索服务器同步实时加载增量数据更新本地的倒排索引和对外提供服务。
索引系统30的服务对象是检索系统20,包括多个索引服务器,负责解析加载全量数据完成后生成倒排索引文件,通过云存储系统40传输给检索系统20使用;同时多个索引服务器同步实时加载增量数据,更新本地的倒排索引,其中一个索引服务器定期向云存储系统40发送更新倒排索引文件。索引系统30为检索系统20的灾备系统,在检索系统20发生故障时能够提供实时的倒排索引。
云存储系统40例如为MFS(MooseFS)网盘,MFS网盘是具有容错性的网络分布式文件系统,把分散在多个物理机上的硬盘统一管理起来,呈现给外部是统一的存储资源;MFS网盘是挂载在索引系统和检索系统的服务器节点。增量数据、全量数据以及倒排索引以文件的形式存储于云存储系统40中,这种存储方式便于共享,便于各个检索或索引服务器同步文件,同时安全性更高。
如图1所示,三个系统以及数据的提供系统例如广告投放系统之间的数据传输以文件流的形式进行传输:
全量数据即已获得或已存储的数据,例如广告投放系统中完整的投放数据,全量数据被打包成文件的形式同步到云存储系统40,供索引系统20解析加载,构建倒排索引。
增量数据即新增加或删除的数据,例如广告投放系统中全量数据之后投放的增量广告数据,增量数据被打包成文件的形式,实时同步到云存储系统40,同时供索引系统30和检索系统20实时解析加载,用来更新倒排索引;增量数据为文件流形式,例如新投放、删除或更新的广告都会进入文件流。
倒排索引文件,索引系统30把用全量数据构建的倒排索引从内存中转储为文件的形式,同步到云存储系统40,供检索系统20启动时加载(索引系统30启动时可加载全量数据或倒排索引文件)。
索引内存,倒排索引在索引系统30和检索系统20中对应的内存块数据。
本发明的数据的索引系统相对于现有技术中常用于存储广告索引的系统例如Redis系统具有以下优点,Redis系统采用双buffer(缓冲器)的倒排索引更新方式,即利用其中一个buffer进行全量数据的索引更新,并且更新周期在30至40分钟,这种很长的更新周期造成无法使新投放的广告及时为用户提供服务,在数据量很大的情况下更新的时间也会很长,进一步造成新投放的广告无法得到及时的应用,并且,大量的更新后的全量数据或索引同步到大规模的各个服务节点时容易造成各个服务节点更新的数据不同步,影响使用,而本发明中,采用完全不同的系统架构,数据以文件的形式在云存储系统以及索引系统、检索系统等各个系统之间进行共享,并且检索系统和索引系统实时更新倒排索引,使得新投放的数据可以及时的得到应有,同时,更新数据在各个服务节点同时进行避免了数据的不同步,并且索引系统作为灾备系统使得数据更加安全。
下面结合图2描述本发明的数据的索引方法。
图2为本发明数据的索引方法一个实施例的流程图。如图2所示,该实施例的方法包括:
步骤S202,检索系统实时获取增量数据。
其中,增量数据包括增加的数据或删除的数据。增量数据例如为新投放或删除的广告数据,也可以为其他数据例如电商销售平台的新增加或删除的商品数据等。检索系统实时从云存储系统获取增量数据文件并解析出增量数据。
步骤S204,检索系统根据增量数据对应的键key获取倒排索引中key对应的原倒排拉链。
其中,增量数据例如为新投放的某条广告,根据该广告包含的关键词获取对应的key,再根据key获取对应的原倒排拉链。
步骤S206,检索系统根据增量数据以及原倒排拉链中的数据生成临时倒排拉链。
具体的,当增量数据为增加的数据时,检索系统复制原倒排拉链,并在复制的原倒排拉链中添加增加的数据,以生成临时倒排拉链;或者,当增量数据为删除的数据时,检索系统复制原倒排拉链,并在复制的原倒排拉链中删除该删除的数据,以生成临时倒排拉链。
步骤S208,检索系统利用临时倒排拉链替换原倒排拉链来更新倒排索引,利用更新后的倒排索引提供检索服务。
例如,将原倒排拉链复制到内存的其他位置,并根据增加或删除的数据修改复制的倒排拉链以生成临时倒排拉链,再将原倒排拉链与key的对应关系,修改为临时倒排拉链与该key的对应关系,例如修改key的指针指向临时倒排拉链。
下面结合图3描述上述实施例方法的一个应用例。
如图3所示,增量数据为删除广告1(ad1),增加广告2(ad2),根据广告1包含的关键词对应key1和key3,广告2包含的关键词对应key1和key2,获取检索系统内存中key1、key2和key3相关的原倒排索引为key1对应广告1和广告3(ad3),key2对应广告3和广告4(ad4),key3对应广告1。将原倒排索引进行复制,删除广告1则在复制的key1和key3对应的倒排拉链中删除广告1,添加广告2则在复制的key1和key2对应的倒排拉链中增加广告2,生成临时倒排拉链列表,再修改key1、key2和key3的指针指向临时倒排拉链。
上述实施例的方法,检索系统能够实时获取增量数据,并针对增量数据涉及的倒排拉链实时进行更新替换原倒排拉链,实现倒排索引的实时更新,使得新投放的数据能够得到及时的应用,提高了数据投放的实时性。提升了用户感知。此外,进行倒排索引的实时更新时并不直接在原倒排拉链中进行更新而是另外生成临时倒排拉链,在一定程度上使得正在被使用的原倒排拉链在更新过程中仍可使用,进一步提升用户感知,
现有技术中对广告的倒排索引进行定期的更新并且更新周期较长,是由于没有一套稳定、成熟且可用性高的方案来解决如何在更新倒排索引的同时为用户提供检索服务的问题,因此无法支持索引的高并发随机读和写,无法实现索引的实时更新。本发明还提出一种延迟回收机制,即检索系统在利用临时倒排拉链替换原倒排拉链时,如果原倒排拉链正在被使用,则检索系统为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收。
下面结合图4具体描述本发明的延迟回收机制。
图4为本发明数据的索引方法另一个实施例的流程图。如图4所示,检索系统中并行执行检索线程和索引线程,此外还包括时间队列用于生成事件的时间戳供检索线程和索引线程使用。
检索线程的执行步骤如下:
步骤S401,检索线程接收用户的检索请求,在时间队列中生成第一时间戳。
步骤S403,检索线程根据检索请求中包含的关键词查找当前倒排索引中的对应key和倒排拉链。
步骤S405,检索线程根据查找到的倒排拉链进行检索。
步骤S407,检索线程完成检索后,在时间队列删除对应的第一时间戳。
索引线程的执行步骤如下:
步骤S402,索引线程实时获取增量数据。
步骤S404,索引线程根据增量数据对应的key获取倒排索引中key对应的原倒排拉链。
步骤S406,索引线程复制原倒排拉链,并根据增量数据修改复制的原倒排拉链生成临时倒排拉链。
步骤S408,索引线程利用临时倒排拉链替换原倒排拉链来更新倒排索引,同时,为原倒排拉链的内存空间添加延迟回收标识并打上第二时间戳。
其中,也可以不添加延迟回收标识只是为打上原倒排拉链的内存空间第二时间戳。
步骤S410,索引线程每隔预设时间从时间队列中获取最小的第一时间戳,并将最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对,如果带有延迟回收标识的内存空间的第二时间戳小于该最小的第一时间戳,则执行步骤S412,否则执行步骤S414,。
步骤S412,将带有延迟回收标识的内存空间回收。
步骤S414,不回收带有延迟回收标识的内存空间。
这种情况下,如果检索线程正在使用原倒排拉链进行检索,则索引线程获取的最小的第一时间戳肯定小于第二时间戳,因为索引线程获取的是原倒排拉链对应的检索请求到来的时间戳或者比该时间戳更小的时间戳,因此,原倒排拉链不会被删除,检索线程在原倒排拉链被替换后,仍然到原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
下面结合表1描述上述方法的一个应用例。
如表1所示,t1时刻,检索线程接收用户的检索请求,获取对应的key1以及倒排拉链1的内存位置,在时间队列生成时间戳t1,同时索引线程,生成临时倒排拉链2准备替换倒排拉链1。
t2时刻,索引线程更新了key1与倒排拉链2的对应关系,例如修改key1的指针指向倒排拉链2的内存位置,同时检索线程仍在使用倒排拉链1进行检索即仍到倒排拉链1的内存位置读取数据,此时如果将倒排拉链1的内存位置中的数据删除,则检索线程无法继续进行检索。因此,将倒排拉链1放入延迟回收池,即为倒排拉链1的内存空间打上延迟回收标记以及时间戳t2,也可以只打时间戳。
t3时刻,检索线程完成当前的检索,开始下次检索,时间队列中删除对应的t1时间戳,生成t3时间戳,之后索引线程从时间队列获取最小的时间戳为t3,将t3与倒排拉链1的时间戳t2进行比对,t2<t3,则将倒排拉链1的内存空间释放。
表1
Figure BDA0001214735950000111
上述实施例的方法,使得检索系统在更新倒排索引的同时仍能为用户提供可靠的检索服务,此外,由于实时更新时间很短,用户很快就可以获得根据更新后的倒排索引提供的检索服务,进一步提升用户体验。
本发明中索引系统提供全量数据的倒排索引的建立,同时根据增量数据更新倒排索引,下面结合图5进行描述。
图5为本发明数据的索引方法又一个实施例的流程图。如图5所示,在步骤S202之前还包括:
步骤S502,索引系统从云存储系统中获取已存储的全量数据的文件。
其中,全量数据例如为已投放的广告数据。
步骤S504,索引系统根据全量数据生成倒排索引文件。
步骤S506,索引系统将倒排索引文件发送至云存储系统进行存储。
步骤S508,检索系统启动时从云存储系统获取倒排索引文件保存至内存中。
在步骤S202至步骤S208执行的同时索引系统同步执行以下步骤:
步骤S510,索引系统实时获取增量数据。
增量数据包括增加的数据或删除的数据。
步骤S512,索引系统根据增量数据对应的键key获取倒排索引中key对应的原倒排拉链。
步骤S514,索引系统根据增量数据以及原倒排拉链中的数据生成临时倒排拉链。
步骤S516,索引系统利用临时倒排拉链替换原倒排拉链更新倒排索引。
步骤S518,索引系统周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件。
步骤S520,索引系统在检索系统发生故障时提供实时的倒排索引。
本发明还提供一种数据的索引装置下面结合图6进行描述。
图6为本发明数据的索引装置60的一个实施例的结构图。如图6所示,数据的索引装置60包括:
增量数据获取模块602,用于实时获取增量数据,增量数据包括增加的数据或删除的数据。
原倒排拉链获取模块604,用于根据增量数据对应的键key获取倒排索引中key对应的原倒排拉链。
临时倒排拉链生成模块606,用于根据增量数据以及原倒排拉链中的数据生成临时倒排拉链。
其中,当增量数据为增加的数据时,临时倒排拉链生成模块606,用于复制原倒排拉链,并在复制的原倒排拉链中添加增加的数据,以生成临时倒排拉链;或者,当增量数据为删除的数据时,临时倒排拉链生成模块606,用于复制原倒排拉链,并在复制的原倒排拉链中删除该删除的数据,以生成临时倒排拉链。
倒排索引更新模块608,用于利用临时倒排拉链替换原倒排拉链来更新倒排索引,利用更新后的倒排索引提供检索服务。
下面结合图7描述数据的索引装置60的另一个实施例。
图7为本发明数据的索引装置60另一个实施例的结构图。如图7所示,数据的索引装置60还包括:
延迟回收模块710,用于在倒排索引更新模块利用临时倒排拉链替换原倒排拉链时,如果原倒排拉链正在被使用,则为原倒排拉链的内存空间添加延迟回收标识,等待原倒排拉链使用完毕后,将原倒排拉链的带有延迟回收标识的内存空间回收。
在一个实施例中,延迟回收模块710包括:
检索线程执行单元7101,用于接收用户的检索请求,查找对应的倒排拉链进行检索。
时间队列单元7102,用于在检索线程执行单元接收用户的检索请求后,在时间队列中生成第一时间戳,并在检索请求完成检索后,删除对应的第一时间戳。
索引线程执行单元7103,用于在为原倒排拉链的内存空间添加延迟回收标识的同时为原倒排拉链的内存空间打上第二时间戳,每隔预设时间从时间队列中获取最小的第一时间戳,并将最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对,如果带有延迟回收标识的内存空间的第二时间戳小于最小的第一时间戳,则将带有延迟回收标识的内存空间回收。
其中,索引线程执行单元7103,还用于如果原倒排拉链的带有延迟回收标识的内存空间的第二时间戳大于或等于最小的第一时间戳,则不回收带有延迟回收标识的内存空间,使得正在使用原倒排拉链进行检索的检索线程执行单元在原倒排拉链被替换后,仍然到原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
其中,索引线程执行单元7103与检索线程执行单元7102并行执行。
上述增量数据获取模块602、原倒排拉链获取模块604、临时倒排拉链生成模块606、倒排索引更新模块608以及延迟回收模块710可以同时设置于图1中所示的检索系统20和索引系统30中。
下面结合图8描述数据的索引装置60的又一个实施例。
图8为本发明数据的索引装置60另一个实施例的结构图。如图7所示,数据的索引装置60还包括:
倒排索引发送模块812,用于周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件。
倒排索引备份模块814,用于在内存中实时将更新后的倒排索引文件进行备份。
在一个实施例中,数据的索引装置60还包括:倒排索引生成模块816,用于从云存储系统中获取已存储的全量数据的文件,根据所述全量数据生成倒排索引文件,将所述倒排索引文件发送至所述云存储系统进行存储。
倒排索引获取模块818,用于启动时从所述云存储系统获取所述倒排索引文件保存至内存中。
上述倒排索引获取模块818可以设置于图1中所示的检索系统20中。上述倒排索引发送模块812、倒排索引生成模块816可以设置于图1中所示的索引系统30中。索引系统30可以作为检索系统20的灾备系统实现相当于对检索系统20中更新后的倒排索引进行备份的功能。
本发明的实施例中的数据的索引装置可各由各种计算设备或计算机系统来实现,下面结合图9以及图10进行描述。
图9为本发明数据的索引装置的再一个实施例的结构图。如图9所示,该实施例的装置90包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行本发明中任意一个实施例中的数据的索引方法。
其中,存储器910例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图10为本发明数据的索引装置的又一个实施例的结构图。如图10所示,该实施例的装置90包括:存储器910以及处理器920,还可以包括输入输出接口1030、网络接口1040、存储接口1050等。这些接口1030,1040,1050以及存储器910和处理器920之间例如可以通过总线1060连接。其中,输入输出接口1030为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口1040为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口1050为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种数据的索引方法,其特征在于,包括:
索引线程实时获取增量数据,所述增量数据包括增加的数据或删除的数据;
所述索引线程根据所述增量数据包含的关键词获取对应的key,根据对应的键key获取倒排索引中所述key对应的原倒排拉链;
所述索引线程根据所述增量数据以及所述原倒排拉链中的数据生成临时倒排拉链;
所述索引线程利用所述临时倒排拉链替换所述原倒排拉链来更新所述倒排索引,为原倒排拉链的内存空间添加延迟回收标识并打上第二时间戳,所述索引线程每隔预设时间从时间队列中获取最小的第一时间戳,并将所述最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对;其中,与所述索引线程并行执行的检索线程在接收用户的检索请求后,在时间队列中生成第一时间戳,并在所述检索请求完成检索后,删除对应的第一时间戳;
如果所述带有延迟回收标识的内存空间的第二时间戳小于所述最小的第一时间戳,所述索引线程则将所述带有延迟回收标识的内存空间回收;
所述索引线程利用更新后的倒排索引提供检索服务。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述增量数据以及所述原倒排拉链中的数据生成临时倒排拉链包括:
当所述增量数据为增加的数据时,复制所述原倒排拉链,并在所述复制的原倒排拉链中添加所述增加的数据,以生成临时倒排拉链;
或者,
当所述增量数据为删除的数据时,复制所述原倒排拉链,并在所述复制的原倒排拉链中删除所述删除的数据,以生成临时倒排拉链。
3.根据权利要求1所述的方法,其特征在于,还包括:
如果所述原倒排拉链的带有延迟回收标识的内存空间的第二时间戳大于或等于所述最小的第一时间戳,则不回收所述带有延迟回收标识的内存空间,使得正在使用所述原倒排拉链进行检索的所述检索线程,在所述原倒排拉链被替换后,仍然到所述原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件;
在内存中实时将更新后的倒排索引文件进行备份。
5.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
从云存储系统中获取已存储的全量数据的文件;
根据所述全量数据生成倒排索引文件;
将所述倒排索引文件发送至所述云存储系统进行存储;
启动时从所述云存储系统获取所述倒排索引文件保存至内存中。
6.一种数据的索引装置,其特征在于,包括:
增量数据获取模块,用于实时获取增量数据,所述增量数据包括增加的数据或删除的数据;
原倒排拉链获取模块,用于根据所述增量数据对应的键key获取倒排索引中所述key对应的原倒排拉链;
临时倒排拉链生成模块,用于根据所述增量数据以及所述原倒排拉链中的数据生成临时倒排拉链;
倒排索引更新模块,用于利用所述临时倒排拉链替换所述原倒排拉链来更新所述倒排索引,利用更新后的倒排索引提供检索服务;
延迟回收模块包括:检索线程执行单元,时间队列单元,索引线程执行单元;
索引线程执行单元用于在在所述倒排索引更新模块利用所述临时倒排拉链替换所述原倒排拉链时,为所述原倒排拉链的内存空间添加延迟回收标识的同时为所述原倒排拉链的内存空间打上第二时间戳,每隔预设时间从时间队列中获取最小的第一时间戳,并将所述最小的第一时间戳与带有延迟回收标识的内存空间的第二时间戳进行比对,如果所述带有延迟回收标识的内存空间的第二时间戳小于所述最小的第一时间戳,则将所述带有延迟回收标识的内存空间回收;
检索线程执行单元用于接收用户的检索请求,查找对应的倒排拉链进行检索;
时间队列单元用于在检索线程执行单元接收用户的检索请求后,在时间队列中生成第一时间戳,并在所述检索请求完成检索后,删除对应的第一时间戳;
其中,所述索引线程执行单元与所述检索线程执行单元并行执行。
7.根据权利要求6所述的装置,其特征在于,
当所述增量数据为增加的数据时,所述临时倒排拉链生成模块,用于复制所述原倒排拉链,并在所述复制的原倒排拉链中添加所述增加的数据,以生成临时倒排拉链;
或者,
当所述增量数据为删除的数据时,所述临时倒排拉链生成模块,用于复制所述原倒排拉链,并在所述复制的原倒排拉链中删除所述删除的数据,以生成临时倒排拉链。
8.根据权利要求6所述的装置,其特征在于,
所述索引线程执行单元,还用于如果所述原倒排拉链的带有延迟回收标识的内存空间的第二时间戳大于或等于所述最小的第一时间戳,则不回收所述带有延迟回收标识的内存空间,使得正在使用所述原倒排拉链进行检索的所述检索线程执行单元在所述原倒排拉链被替换后,仍然到所述原倒排拉链的带有延迟回收标识的内存空间中读取数据进行检索。
9.根据权利要求6-8任一项所述的装置,其特征在于,还包括:
倒排索引发送模块,用于周期性的将更新后的倒排索引文件发送至云存储系统更新已存储的倒排索引文件;
倒排索引备份模块,用于在内存中实时将更新后的倒排索引文件进行备份。
10.根据权利要求6-8任一项所述的装置,其特征在于,还包括:
倒排索引生成模块,用于从云存储系统中获取已存储的全量数据的文件,根据所述全量数据生成倒排索引文件,将所述倒排索引文件发送至所述云存储系统进行存储;
倒排索引获取模块,用于启动时从所述云存储系统获取所述倒排索引文件保存至内存中。
11.一种数据的索引装置,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器设备中的指令,执行如权利要求1-5任一项所述的数据的索引方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。
CN201710041318.8A 2017-01-20 2017-01-20 数据的索引方法以及装置 Active CN108334514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710041318.8A CN108334514B (zh) 2017-01-20 2017-01-20 数据的索引方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710041318.8A CN108334514B (zh) 2017-01-20 2017-01-20 数据的索引方法以及装置

Publications (2)

Publication Number Publication Date
CN108334514A CN108334514A (zh) 2018-07-27
CN108334514B true CN108334514B (zh) 2020-11-03

Family

ID=62923068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710041318.8A Active CN108334514B (zh) 2017-01-20 2017-01-20 数据的索引方法以及装置

Country Status (1)

Country Link
CN (1) CN108334514B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101599B (zh) * 2018-08-01 2021-02-23 北京奇艺世纪科技有限公司 一种增量索引更新方法及系统
CN109710698B (zh) * 2018-12-28 2020-02-21 北京明朝万达科技股份有限公司 一种数据汇聚方法、装置、电子设备及介质
CN112748866A (zh) * 2019-10-31 2021-05-04 北京沃东天骏信息技术有限公司 一种增量索引数据的处理方法和装置
CN110866158B (zh) * 2019-11-14 2021-01-26 北京沃东天骏信息技术有限公司 信息更新方法、装置、系统、存储介质及电子设备
CN112860649A (zh) * 2021-02-03 2021-05-28 深圳市木浪云数据有限公司 增量生成索引的方法、装置及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961313A (zh) * 2004-06-25 2007-05-09 苹果电脑有限公司 用于索引文件并将相关元数据添加到索引和元数据数据库的方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174692A1 (en) * 2007-03-15 2010-07-08 Scott Meyer Graph store
US20090193406A1 (en) * 2008-01-29 2009-07-30 James Charles Williams Bulk Search Index Updates
CN103473229A (zh) * 2012-06-06 2013-12-25 深圳市世纪光速信息技术有限公司 一种内存检索系统和方法、以及实时检索系统和方法
CN104102590A (zh) * 2014-07-22 2014-10-15 浪潮(北京)电子信息产业有限公司 一种异构内存管理方法及装置
CN104679847B (zh) * 2015-02-13 2019-03-15 高第网络技术(北京)有限公司 一种构建在线实时更新海量音频指纹库的方法和设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961313A (zh) * 2004-06-25 2007-05-09 苹果电脑有限公司 用于索引文件并将相关元数据添加到索引和元数据数据库的方法和系统

Also Published As

Publication number Publication date
CN108334514A (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
CN108334514B (zh) 数据的索引方法以及装置
CN109034993B (zh) 对账方法、设备、系统及计算机可读存储介质
US11455217B2 (en) Transaction consistency query support for replicated data from recovery log to external data stores
US9787706B1 (en) Modular architecture for analysis database
US9589041B2 (en) Client and server integration for replicating data
CN109739815B (zh) 文件处理方法、系统、装置、设备及存储介质
EP3508985B1 (en) Scalable synchronization with cache and index management
AU2014384636A1 (en) Systems and methods for ephemeral eventing
CN109901786B (zh) 数据迁移方法、系统、装置及计算机可读存储介质
CN111324610A (zh) 一种数据同步的方法及装置
Muniswamy-Reddy et al. Making a Cloud Provenance-Aware.
US10452487B2 (en) Data processing apparatus and method
CN105468720A (zh) 集成分布式数据处理系统的方法、相应系统及其数据处理方法
CN107330024B (zh) 标签系统数据的存储方法和装置
CN104598299A (zh) 用于对每条接收数据执行聚合处理的系统和方法
US20160210228A1 (en) Asynchronous garbage collection in a distributed database system
TW200821863A (en) Work item event procession
Salunkhe et al. In search of a scalable file system state-of-the-art file systems review and map view of new Scalable File system
US10838931B1 (en) Use of stream-oriented log data structure for full-text search oriented inverted index metadata
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
CN115543994A (zh) 元数据检索方法、服务器、检索方法及终端设备
JP6237633B2 (ja) 分散ストレージ装置、ストレージノード、データ提供方法およびプログラム
CN115098537A (zh) 事务执行方法、装置、计算设备及存储介质
CN108614838B (zh) 一种用户群索引处理方法、装置及系统
JP6680897B2 (ja) 計算機システム及び分析ソースデータ管理方法

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