多进程环境中的索引管理制造技术

技术编号:26228103 阅读:23 留言:0更新日期:2020-11-04 11:10
用于管理由多个进程共享的索引的系统和方法。一种方法包括利用一个进程来读取处于第一状态下的索引,以及保持由所述进程对处于第一状态下的索引执行的操作的日志。所述日志中所包含的每个操作包括创建操作或删除操作。所述方法还包括:响应于预定事件,应用所述多个进程中的一个进程的日志以更新所述索引。应用所述日志包括:针对所述日志中所包含的指定包含在处于所述第二状态下的索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及忽略所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作。

【技术实现步骤摘要】
【国外来华专利技术】多进程环境中的索引管理
在本文中所描述的实施例涉及管理由多个进程共享的索引。
技术实现思路
软件进程访问被存储在存储介质中的数据,诸如文件系统中的文件。为了快速并且有效率地访问该数据,可以创建将独有的关键字映射至所存储的数据的全局索引。例如,在存在跨多个当前运行的进程的工作分割的系统中,常常创建索引来查找被分割的数据集。例如,在进程管理所存储的数据的系统中,可以创建全局索引,以保持什么数据在该系统上可用,从而实现对数据的恰当路由和一致管理。对这样的索引进行管理的一项挑战在于:如何在多个进程以最低延迟和锁定影响来访问全局索引的情况下保持全局索引,同时保持该全局索引的原子性、一致性、隔离性和持久性(ACID)保证。相应地,在本文中所描述的实施例使用多进程日志记录索引解决了该技术问题以及其他技术问题。例如,一个实施例提供了一种用于管理由多个进程共享的索引的系统。所述系统包括被配置为执行所述多个进程的至少一个电子处理器。所述至少一个电子处理器被配置为针对所述多个进程中的每个进程保持将由所述多个进程中的每个进程对处于第一状态下的索引执行的操作的日志。所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程中的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字。所述至少一个电子处理器还被配置为:响应于预定事件而应用所述多个进程中的一个进程的日志,以更新所述索引。应用所述日志包括:(a)利用所述多个进程中的一个进程来读取处于第二状态下的索引,(b)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,(c)针对所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个创建操作向所述索引添加新条目,(d)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及(e)忽略所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个删除操作。另一实施例提供了一种用于管理由至少一个电子处理器执行的多个进程所共享的索引的方法。所述方法包括:利用所述至少一个电子处理器针对所述多个进程中的一个进程来读取处于第一状态下的索引,其中,所述索引中的每个条目包括关键字和关联值;以及利用所述至少一个电子处理器保持将由所述多个进程中的一个进程对处于第一状态下的索引执行的操作的日志。所述日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字。所述方法还包括:利用所述至少一个电子处理器响应于预定事件而应用所述多个进程中的一个进程的日志,以更新所述索引。应用所述日志包括:(a)利用所述多个进程中的一个进程来读取处于第二状态下的索引,(b)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,(c)针对所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个创建操作向所述索引添加新条目,(d)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及(e)忽略所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个删除操作。又一实施例提供了一种存储有指令的非瞬态计算机可读介质,所述指令能由至少一个电子处理器运行以执行一组功能。所述一组功能包括:利用多个进程中的一个进程来读取处于第一状态下的索引,其中,所述索引中的每个条目包括关键字和关联值,并且所述索引在所述多个进程之间共享。所述一组功能还包括:利用所述多个进程中的一个进程来保持将由所述多个进程中的一个进程对处于第一状态下的索引执行的操作的日志,其中,所述日志中是包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;以及响应于预定事件而应用所述多个进程中的一个进程的日志,以更新所述索引。应用所述日志包括:(a)利用所述多个进程中的一个进程来读取处于第二状态下的索引,(b)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,(c)针对所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个创建操作向所述索引添加新条目,(d)针对所述日志中所包括的指定包含在处于第二状态下的索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及(e)忽略所述日志中所包括的指定未包含在处于第二状态下的索引的条目中的关键字的每个删除操作。附图说明图1示意性图示了根据一个实施例的包括多个当前运行的进程的系统。图2是图示了根据一个实施例的用于管理由图1的系统的多个进程共享的索引的方法的流程图。图3图示了根据一个实施例的多个进程使用图2的方法访问索引的示例。具体实施方式在下文的描述和附图中描述和例示了一个或多个实施例。这些实施例并不限于在本文中所提供的具体细节,而是可以按照各种方式对这些实施例进行修改。此外,可能存在本文中未描述的其他实施例。同样地,在本文中被描述为由一个部件执行的功能可以按照分布式方式由多个部件来执行。类似地,由多个部件执行的功能可以被合并并且由单个部件来执行。类似地,被描述为执行特定功能的部件也可以执行在本文中未描述的额外功能。例如,按照特定方式“配置”的设备或结构可以是至少按照该方式来配置的,但是也可以是按照未列举出的方式来配置的。此外,在本文中所描述的一些实施例可以包括被配置为通过运行被存储在非瞬态计算机可读介质上的指令来执行所描述的功能的一个或多个电子处理器。类似地,在本文中所描述的实施例可以被实施为存储指令的非瞬态计算机可读介质,所述指令能由一个或多个电子处理器运行,以执行所描述的功能。如在本申请中所使用的,“非瞬态计算机可读介质”包括所有计算机可读介质,但是不包含瞬态传播信号。相应地,非瞬态计算机可读介质可以包括例如:硬盘、CD-ROM、光学存储设备、磁存储设备、ROM(只读存储器)、RAM(随机存取存储器)、寄存器存储器、处理器高速缓存或者其任意组合。此外,在本文中所采用的措辞和术语是出于描述的目的,而不应当被认为构成限制。例如,本文中对“包括”、“包含”、“含有”、“具有”以及其变型的使用意在涵盖列举于其后的项目及其等价方案以及额外项目。术语“连接”和“耦接”是从广义上使用的,并且涵盖直接或间接地连接和耦接两者。此外,“连接”和“耦接”并不局限于物理和机械连接或耦接,而是能够包括电连接或耦接,不管其是直接的还是间接的。另外,可以使用有线连接、无线连接或者其组合来执行电子通信和通知,并且可以直接地或者通过一个或多个中间设备经由各种类型的网络、通信信道和连接来传输电子通信和通知。此外,诸如第一和第二、顶部和底部等的关系术语在本文当中可以唯独用于将一个实体或动作与另一实体或动作区分开,而不必要求或暗示在这样的实体或动作之间有任何实际的这样的关系或顺序。如上文所描述的本文档来自技高网...

【技术保护点】
1.一种用于管理由多个进程共享的索引的系统,所述系统包括:/n至少一个电子处理器,其被配置为执行所述多个进程,其中,所述至少一个电子处理器被配置为:/n针对所述多个进程中的每个进程,保持将由所述多个进程中的每个进程对处于第一状态下的所述索引执行的操作的日志,所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;/n响应于预定事件而应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:/n利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引,/n针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,/n针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目,/n针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及/n忽略所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作。/n...

【技术特征摘要】
【国外来华专利技术】20180316 US 15/923,1931.一种用于管理由多个进程共享的索引的系统,所述系统包括:
至少一个电子处理器,其被配置为执行所述多个进程,其中,所述至少一个电子处理器被配置为:
针对所述多个进程中的每个进程,保持将由所述多个进程中的每个进程对处于第一状态下的所述索引执行的操作的日志,所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;
响应于预定事件而应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:
利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引,
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,
针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目,
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及
忽略所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作。


2.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为:通过将对所述索引的任何更新操作表示为删除操作和随后的创建操作,而保持针对所述多个进程中的每个进程的操作的所述日志。


3.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为:经由互斥锁来读取处于所述第一状态下的所述索引。


4.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为经由读互斥锁来读取处于所述第一状态下的所述索引,并且被配置为经由与所述读互斥锁分开的写互斥锁来读取处于所述第二状态下的所述索引。


5.一种管理由至少一个电子处理器执行的多个进程所共享的索引的方法,所述方法包括:
利用所述至少一个电子处理器针对所述多个进程中的一个进程来读取处于第一状态下的所述索引,所述索引中的每个条目包括关键字和关联值;
利用所述至少一个电子处理器来保持将由所述多个进程中的所述一个进程对处于所述第一状态下的所述索引执行的操作的日志,所述日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;以及
响应于预定事件而利用所述至少一个电子处理器应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:
利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引;
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目;
针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目;
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目;以及
忽略所述日志中所包含的指定未包含在处于所述第二状态下...

【专利技术属性】
技术研发人员:M·E·马尔凯维奇
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利