【技术实现步骤摘要】
【国外来华专利技术】Select*查询的零拷贝优化
[0001]本公开涉及用于数据库操作的零拷贝优化的技术。
技术介绍
[0002]随着分布式存储(即,云存储)变得日益普及并且存储成本降低,云数据库的大小已经急剧增加。例如,如果规模不大,则表通常是太字节(terabyte)。在这些表上的操作(例如,复制表)在系统资源和时间上通常相当昂贵。结构化查询语言(SQL)是关系数据库管理系统的标准语言。用户经常制作SQL查询以与云数据库交互。
技术实现思路
[0003]本公开的一个方面提供了一种方法。该方法包括在数据处理硬件处接收查询,所述查询指定对存储在存储器硬件上的多个数据块的第一表执行的操作,所述存储器硬件与所述数据处理硬件通信,所述第一表中的每个数据块包括相应的引用计数,所述引用计数指示引用所述数据块的表的数量。该方法还包括由数据处理硬件确定所述查询指定的所述操作包括将所述第一表中的所述多个数据块复制到第二表中。该方法还包括,响应于确定所述查询指定的所述操作包括将所述第一表中的所述多个数据块复制到所述第二表中,对于复制到所述第二表中的所述第一表中的所述多个数据块的每个数据块,由数据处理硬件递增与所述第一表中的所述数据块相关联的所述相应的引用计数;以及在所述第二表的元数据中添加被复制到所述第二表中的相应的所述数据块的引用。
[0004]本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,将所述第一表中的所述多个数据块复制到第二表中包括,将所述第一表中的每个数据块复制到所述第二表中,而不重复所述多个数 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的方法(500),其特征在于,当在数据处理硬件(144)上执行时,使所述数据处理硬件(144)执行以下操作:接收查询(20),所述查询(20)指定对存储在存储器硬件(146)上的多个数据块(152)的第一表(158a)执行的操作,所述存储器硬件(146)与所述数据处理硬件(144)通信,所述第一表(158a)中的每个数据块(152)包括相应的引用计数(154),所述引用计数(154)指示引用所述数据块(152)的表(158)的数量;确定所述查询(20)指定的所述操作包括将所述第一表(158a)中的所述多个数据块(152)复制到第二表(158b)中;以及响应于确定所述查询(20)指定的所述操作包括将所述第一表(158a)中的所述多个数据块(152)复制到所述第二表(158b)中,对于复制到所述第二表(158b)中的所述第一表(158a)中的所述多个数据块(152)的每个数据块(152):递增与所述第一表(158a)中的所述数据块(152)相关联的所述相应的引用计数(154);以及在所述第二表(158b)的元数据(159)中添加被复制到所述第二表(158b)中的相应的所述数据块(152)的引用(160)。2.如权利要求1所述的方法(500),其特征在于,其中将所述第一表(158a)中的所述多个数据块(152)复制到第二表(158b)中包括,将所述第一表(158a)中的每个数据块(152)复制到所述第二表(158b)中,而不重复所述多个数据块(152)中的任何一个。3.如权利要求1或2所述的方法(500),其特征在于,所述查询(20)包括SELECT*结构化查询语言(SQL)语句。4.如权利要求1
‑
3中任一项所述的方法(500),其特征在于,其中确定所述查询(20)指定的所述操作包括将所述第一表(158a)中的所述多个数据块(152)复制到所述第二表(158b)中包括,在所述查询(20)的整合期间:确定所述查询(20)的子操作;以及确定经确定的所述查询(20)的子操作包括,将至少一个数据块(152)写入所述存储器硬件(146)的子操作和从所述存储器硬件(146)读取至少一个数据块(152)的子操作。5.如权利要求4所述的方法(500),其特征在于,将所述至少一个数据块(152)写入所述存储器硬件(146)的子操作包括物化子操作。6.如权利要求4或5所述的方法(500),其特征在于,其中从所述存储器硬件(146)读取至少一个数据块(152)的子操作包括扫描子操作。7.如权利要求6所述的方法(500),其特征在于,确定经确定的所述查询(20)的子操作包括读取所述至少一个数据块(152)的所述扫描子操作包括,确定所述经确定的所述查询(20)的子操作仅包括用于读取所述至少一个数据块(152)的单个扫描子操作。8.如权利要求1
‑
7中任一项所述的方法(500),其特征在于,其中确定所述查询(20)包括将所述第一表(158a)中的所述多个数据块(152)复制到所述第二表(158b)中包括:确定与所述查询(20)相关联的列(420)的列表的顺序;确定所述第一表(158a)的列(430)的顺序;以及确定与所述查询(20)相关联的所述列(420)的列表的顺序所述与所述第一表(158a)的所述列(430)的顺序相同。
9.如权利要求1
‑
8中任一项所述的方法(500),其特征在于,其中所述操作还包括,在确定所述查询(20)包括将所述第一表(158a)中的所述多个数据块(152)复制到所述第二表(158b)中的同时,发起由所述查询(20)指定的所述操作在所述第一表(158a)上的执行。10.如权利要求9所述的方法(500),其特征在于,所述操作还包括,响应于确定所述查询(20)包括将所述第一表(158a)中的所述多个数据块(152)复制到所述第二表(158b)中,停止所述查询(20)在所述第一表(158a)上的执行。11.如权利要求1
‑
10中任一项所述的方法(500),其特征在于,其中所述操作还包括,在将所述多个数据块(152)中的每个数据块(152)的所述引用(160)附加到所述第二表(158b)的所述元数据(159)中之后:接收删除所述第一表的请求(158a);以及递减所述第一表(158a)的每个数据块(152)的所述引用计数(154)。12.一种系统(100),其特征在于,包括:数据处理硬件(144);和与所述数据处理硬件(...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。