【技术实现步骤摘要】
【国外来华专利技术】多进程环境中的索引管理
在本文中所描述的实施例涉及管理由多个进程共享的索引。
技术实现思路
软件进程访问被存储在存储介质中的数据,诸如文件系统中的文件。为了快速并且有效率地访问该数据,可以创建将独有的关键字映射至所存储的数据的全局索引。例如,在存在跨多个当前运行的进程的工作分割的系统中,常常创建索引来查找被分割的数据集。例如,在进程管理所存储的数据的系统中,可以创建全局索引,以保持什么数据在该系统上可用,从而实现对数据的恰当路由和一致管理。对这样的索引进行管理的一项挑战在于:如何在多个进程以最低延迟和锁定影响来访问全局索引的情况下保持全局索引,同时保持该全局索引的原子性、一致性、隔离性和持久性(ACID)保证。相应地,在本文中所描述的实施例使用多进程日志记录索引解决了该技术问题以及其他技术问题。例如,一个实施例提供了一种用于管理由多个进程共享的索引的系统。所述系统包括被配置为执行所述多个进程的至少一个电子处理器。所述至少一个电子处理器被配置为针对所述多个进程中的每个进程保持将由所述多个进程中的每个进程对处于第一状态下的索引执行的操作的日志。所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程中的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字。所述至少一个电子处理器还被配置为:响应于预定事件而应用所述多个进程中的一个进程的日志,以更新所述索引。应用所述日志包括:(a)利用所述多个进程中的一个进程来读取处于第二状态下的索引,(b)针对所述日志中所包括的指定包含在处于 ...
【技术保护点】
1.一种用于管理由多个进程共享的索引的系统,所述系统包括:/n至少一个电子处理器,其被配置为执行所述多个进程,其中,所述至少一个电子处理器被配置为:/n针对所述多个进程中的每个进程,保持将由所述多个进程中的每个进程对处于第一状态下的所述索引执行的操作的日志,所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;/n响应于预定事件而应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:/n利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引,/n针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,/n针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目,/n针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及/n忽略所述日志中所包含的指定未包含在处于所 ...
【技术特征摘要】
【国外来华专利技术】20180316 US 15/923,1931.一种用于管理由多个进程共享的索引的系统,所述系统包括:
至少一个电子处理器,其被配置为执行所述多个进程,其中,所述至少一个电子处理器被配置为:
针对所述多个进程中的每个进程,保持将由所述多个进程中的每个进程对处于第一状态下的所述索引执行的操作的日志,所述索引中的每个条目包括关键字和关联值,并且针对所述多个进程的一个进程的日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;
响应于预定事件而应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:
利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引,
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目,
针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目,
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目,以及
忽略所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作。
2.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为:通过将对所述索引的任何更新操作表示为删除操作和随后的创建操作,而保持针对所述多个进程中的每个进程的操作的所述日志。
3.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为:经由互斥锁来读取处于所述第一状态下的所述索引。
4.根据权利要求1所述的系统,其中,所述至少一个电子处理器被配置为经由读互斥锁来读取处于所述第一状态下的所述索引,并且被配置为经由与所述读互斥锁分开的写互斥锁来读取处于所述第二状态下的所述索引。
5.一种管理由至少一个电子处理器执行的多个进程所共享的索引的方法,所述方法包括:
利用所述至少一个电子处理器针对所述多个进程中的一个进程来读取处于第一状态下的所述索引,所述索引中的每个条目包括关键字和关联值;
利用所述至少一个电子处理器来保持将由所述多个进程中的所述一个进程对处于所述第一状态下的所述索引执行的操作的日志,所述日志中所包含的每个操作包括创建操作或删除操作,并且每个操作指定关键字;以及
响应于预定事件而利用所述至少一个电子处理器应用所述多个进程中的所述一个进程的所述日志以更新所述索引,其中,应用所述日志包括:
利用所述多个进程中的所述一个进程来读取处于第二状态下的所述索引;
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个删除操作从所述索引中删除现有条目;
针对所述日志中所包含的指定未包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作向所述索引添加新条目;
针对所述日志中所包含的指定包含在处于所述第二状态下的所述索引的条目中的关键字的每个创建操作从所述索引中删除现有条目并且向所述索引添加新条目;以及
忽略所述日志中所包含的指定未包含在处于所述第二状态下...
【专利技术属性】
技术研发人员:M·E·马尔凯维奇,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。