用于多核系统的内存同步的系统和方法技术方案

技术编号:15919285 阅读:45 留言:0更新日期:2017-08-02 04:30
提供了一种用于多核系统(1000)的内存同步的系统(100),所述系统(100)包括:分配模块(10),用于向所述多核系统(1000)中的至少一个核心(1010‑1,...,1010‑n)分配至少一个内存分区(200‑1,...,200‑n);映射模块(20),用于:如果与分配给至少一个核心(1010‑1,...,1010‑n)的内存分区(200‑1,...,200‑n)相关联的页表项被修改,通过向所述多核系统(1000)中的至少一个核心(1010‑1,...,1010‑n)发送中断,向所利用的多核系统(1000)提供转换后备缓冲器终止的信息;接口模块(30),用于从用户空间提供访问分配模块(10)的接口。

【技术实现步骤摘要】
【国外来华专利技术】用于多核系统的内存同步的系统和方法
本申请涉及通过将分区绑定到核心从而在内存数据库中扩展混合联机事务处理/联机分析处理的领域。本申请尤其涉及一种用于多核系统的内存同步的系统。
技术介绍
传统上,需要同时服务于联机事务处理(Online-Transaction-Processing,简称OLTP)和联机分析处理(OnlineAnalyticalProcessing,简称OLAP)工作负载的数据库系统是分离的,其中一个系统实时服务于OLTP事务负载,另一个单独的系统服务于在预先导入的数据集上运行的OLAP分析工作负载。这种设置有许多缺点:需要更多的物理资源,维护开销,最重要的是妨碍了在OLTP数据库之上近实时地进行OLAP分析,因为必须要将数据从OLTP批量导出并导入到OLAP系统。利用内存管理单元(MemoryManagementUnit,简称MMU)提供分析查询的内存快照的想法是,通过使单个数据库同时服务于OLTP和OLAP工作负载来部分解决该问题,但是这样做严重受制于与操作系统内核与底层硬件平台之间的必要交互相关的,具体地,尤其是在呈现了大量计算单元(CPU核心)的多核平台的情况下,与操作系统保持TLB缓存表项一致性的责任相关的可扩展性瓶颈。US2013/0073513A1描述了用于维护混合OLTP和OLAP数据库的方法,该方法包括:执行一个或多个OLTP事务;创建虚拟内存快照;通过该虚拟内存快照执行一个或多个OLAP查询。本文所描述的方法进一步包括:复制为响应对数据对象的更新而存储该数据对象所在的虚拟内存页面,由此,更新后的数据对象可以由OLTP事务访问,而未更新的数据对象仍可由OLAP查询访问。相应地,本文描述的混合系统可通过硬件辅助的复制机制来同时处理OLTP和OLAP,以保持事务数据的快照的一致性。
技术实现思路
本专利技术的目的是提高多核系统的内存同步,特别是提供一种用于内存数据库中扩展混合OLTP/OLAP的改进技术,该内存数据库利用MMU给硬件辅助的虚拟内存拍摄快照,即制作快照或控制数据版本。该目的通过独立权利要求的特征实现。结合从属权利要求、说明书和附图,具体实现形式显而易见。本专利技术直接解决了内存数据库中的混合OLTP/OLAP的可扩展性问题,该内存数据库利用MMU给硬件辅助的虚拟内存拍摄快照或控制数据版本。根据第一方面,提供了一种用于多核系统的内存同步的系统,所述系统包括:分配模块,用于向所述多核系统中的至少一个核心分配至少一个内存分区;映射模块,用于:如果与分配给至少一个核心的内存分区相关联的页表项被修改,通过向所述多核系统中的至少一个核心发送中断,向所利用的多核系统提供转换后备缓冲器终止的信息;接口模块,用于从用户空间提供访问分配模块的接口。换言之,本专利技术通过呈现从操作系统内核到数据库的接口解决可扩展性的问题,通过该接口数据库可以通知内核关于内存区域或内存分区到特定的中央处理器(centralprocessingunit,简称CPU)核心的“绑定”。操作系统内核基于数据库中预先提供的信息有选择性地废止特定的转换后备缓冲器(translationlookasidebuffer,简称TLB)和特定核心的表项(TLB终止),而不是向通过线程方式共享数据库地址空间的所有核心“广播”TLB终止。本专利技术的另一优点是,本专利技术有利地提供了通过向数据库系统呈现TLB终止过程的隐式控制使任何基于MMU的快照方案在现代多核机器上进行扩展的方式。例如,数据库系统,通过控制其事务(OLTP)线程的放置,意识到哪些CPU核心/线程在哪部分的内存(数据库分区)上运行。通过将此信息传递给内核,数据库隐式控制TLB终止过程,通过限制TLB终止,对于每个分区,处理器之间的中断IPI受限于一组选定的核心。这减轻了系统对在缺页异常处理期间共享地址空间的所有可用内核进行非常昂贵的基于IPI的TLB终止相关的过度开销,并使用基于MMU的快照方案实现了系统的高度可扩展性。本专利技术利用如下事实:为了具有更多选择性的和定向性的TLB终止应对写时复制缺页异常,作为内存数据库系统中的混合OLTP/OLAP的一致快照机制,应用或数据库能够维持OLTP线程到内存分区的绑定,并且将此信息提供给内核。在没有从数据库向操作系统内核提供的此信息的情况下,内核必须向共享地址空间的所有核心广播TLB终止IPI,这会产生非常高的成本;或者可替代性地,操作系统内核需要重新设计,以便跟踪所有可用系统核心的页面使用情况,这会产生很高的实施成本和运行成本。本专利技术在内存数据库系统的上下文中有利地提供了基于MMU的快照的可扩展性。本专利技术的基本构思是实现采用基于MMU的快照机制的混合OLTP/OLAP数据库系统的高度可扩展性。这通过从操作系统内核向用户空间呈现TLB终止控制的方式实现,这可能受数据库系统的影响。在基于MMU的快照方案(进行迟缓的写时复制页面共享)下,大批开销来自于在写时复制(copy-on-write,简称CoW)缺页异常处理期间进行的TLB终止IPI。特别地,通过使数据库控制哪些核心应该接收地址空间的不同部分的TLB终止IPI,本专利技术有利地提供了作为内存混合OLTP/OLAP数据库系统的快照机制实现的基于MMU的方法的可扩展性。特别地,本专利技术有利地利用了该数据库系统具有的可以由操作系统利用的知识或信息,以便大幅减少基于MMU的快照机制的本质固有的TLB终止成本。特别地,本专利技术有利地提供了一种为了在CoW期间的TLB终止目的,数据库系统分配内存和/或分区到硬件核心的绑定,并确保进行事务(OLTP)的线程在其分配的分区上运行的方法。特别地,本专利技术有利地提供了一种为了在CoW期间的TLB终止目的,通过新系统调用的方式将硬件核心到数据分区的绑定从数据库传递到操作系统内核的方式。特别地,本专利技术有利地提供了一种操作系统内核机制,在该机制中,对于CoW缺页异常处理期间所需的TLB终止,查询数据库预先提供的绑定,因此以选择性方式仅针对绑定到故障页面所属的特定内存的特定核心发出TLB终止IPI。作为一个优点,通过减少进行事务的线程的处理时间,提高OLTP性能(就较低时延的响应时间和吞吐量两者而言)。作为另一个优点,当CoW缺页异常发生时,系统在内核中花费的时间显著较少。此外,MMU/硬件辅助的快照机制(CoW)会随着不断增加的处理核心数目进行扩展。本专利技术所用的术语“写时复制”可描述计算机编程中使用的优化策略。写时复制源于对以下内容的理解:当多个单独的任务使用一些信息的最初相同的副本(即计算机内存中存储的数据)时,将其视为它们可能偶尔需要修改的本地数据,则没有必要立即为每个任务创建该信息的单独副本。本专利技术使用的术语“内存同步”可描述进行用于多核系统的内存同步的同步机制的多核系统计算机中使用的过程。本专利技术使用的术语“内存管理单元(memorymanagementunit,简称MMU)”,有时称为页式内存管理单元(pagedmemorymanagementunit,简称PMMU),可描述具有通过自身传递的所有内存参考,主要执行将虚拟内存地址转换为物理地址的计算机硬件单元。本专利技术使用的术语“快照”或“拍摄快照”可描述快照,这是系统在特定时间点的状态。该术语可以用作摄本文档来自技高网
...
用于多核系统的内存同步的系统和方法

【技术保护点】
一种用于多核系统(1000)的内存同步的系统(100),其特征在于,所述系统(100)包括:‑分配模块(10),用于向所述多核系统(1000)中的至少一个核心(1010‑1,...,1010‑n)分配至少一个内存分区(200‑1,...,200‑n);‑映射模块(20),用于:如果与分配给至少一个核心(1010‑1,...,1010‑n)的内存分区(200‑1,...,200‑n)相关联的页表项被修改,通过向所述多核系统(1000)中的至少一个核心(1010‑1,...,1010‑n)发送中断,向所利用的多核系统(1000)提供转换后备缓冲器终止的信息;‑接口模块(30),用于从用户空间提供访问分配模块(10)的接口。

【技术特征摘要】
【国外来华专利技术】2015.02.04 EP EP15153769.31.一种用于多核系统(1000)的内存同步的系统(100),其特征在于,所述系统(100)包括:-分配模块(10),用于向所述多核系统(1000)中的至少一个核心(1010-1,...,1010-n)分配至少一个内存分区(200-1,...,200-n);-映射模块(20),用于:如果与分配给至少一个核心(1010-1,...,1010-n)的内存分区(200-1,...,200-n)相关联的页表项被修改,通过向所述多核系统(1000)中的至少一个核心(1010-1,...,1010-n)发送中断,向所利用的多核系统(1000)提供转换后备缓冲器终止的信息;-接口模块(30),用于从用户空间提供访问分配模块(10)的接口。2.根据权利要求1所述的系统(100),其特征在于,所述映射模块(20)用于在至少一个内存分区(200-1,...,200-n)的写时复制页面共享期间提供所述转换后备缓冲器终止的信息。3.根据权利要求1和2任一项所述的系统(100),其特征在于,所述接口模块(30)用于通过用于对所述至少一个内存分区(200-1,...,200-n)到所述至少一个核心(1010-1,...,1010-n)的绑定进行控制的一组系统调用来向用户空间提供访问分配模块的接口。4.根据权利要求3所述的系统(100),其特征在于,所述接口模块(30)用于通过该组系统调用所接收的信息来适应转换后备缓冲器终止。5.一种数据库(2000),其特征在于,包括:-具有至少一个核心(1010-1,...,1010-N)的多核系统(1000);-具有至少一个内存分区(200-1,...,200-n)的内存系统(200);-用于多核系统(1000)的内存同步的系统(100),其中所述系统(100)包括:-分配模块(10),用于向所述多核系统(1000)中的至少一个核心(1010-1,...,1010-n)分配至少一个内存分区(200-1,...,200-n);-映射模块(20),用于:如果与分配给至少一个核心(1010-1,...,1010-n)的内存分区(200-1,...,200-n)相关联的页表项被修改,通过向所述多核系统(1000)中的至少一个核心(1010-1,...,1010-n)发送中断,向所述多核系统(1000)提供转换后备缓冲器终止的信息;-接口模块(30),用于从用户空间提供访问分配模块(10)的接口。6.根据权利要求5所述的数据库(200...

【专利技术属性】
技术研发人员:安东尼尔斯·利奥普洛斯谢伊·高克曼埃利泽·利维
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1