CN107247624B - 一种面向Key-Value系统的协同优化方法及系统 - Google Patents

一种面向Key-Value系统的协同优化方法及系统 Download PDF

Info

Publication number
CN107247624B
CN107247624B CN201710413186.7A CN201710413186A CN107247624B CN 107247624 B CN107247624 B CN 107247624B CN 201710413186 A CN201710413186 A CN 201710413186A CN 107247624 B CN107247624 B CN 107247624B
Authority
CN
China
Prior art keywords
compact
key
sstable
task
file
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
CN201710413186.7A
Other languages
English (en)
Other versions
CN107247624A (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.)
Anhui University
Original Assignee
Anhui University
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 Anhui University filed Critical Anhui University
Priority to CN201710413186.7A priority Critical patent/CN107247624B/zh
Publication of CN107247624A publication Critical patent/CN107247624A/zh
Application granted granted Critical
Publication of CN107247624B publication Critical patent/CN107247624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向Key‑Value系统的协同优化方法及系统,所述方法包括:当主机端接收的读写请求需要调度compaction线程时,主机端向存储端发送compaction调度请求;存储端将compaction调度请求分割为主机端子任务和存储端子任务;主机端和存储端分别对主机端子任务和存储端子任务信息进行合并排序操作,得出第一结果和第二结果;存储端对第一结果和第二结果进行合并优化操作。本发明在靠近数据源的存储设备端进行计算操作,充分利用了主机端和存储设备端的计算能力,同时上述操作方法实现了compaction任务的动态分割并与主机端CPU协同的计算模式,对compaction任务的系统级并行性进行了挖掘并充分利用了存储设备端的计算能力、降低了compaction操作的延时,增加写入吞吐量,提高了系统性能。

Description

一种面向Key-Value系统的协同优化方法及系统
技术领域
本发明涉及数据存储技术领域,尤其涉及一种面向Key-Value系统的协同优化方法及系统。
背景技术
大数据环境下,高性能、大容量的存储系统的需求日益突出。大规模数据存储系统中,传统关系型数据库检索性能较慢,检索语句较复杂,已无法满足大数据处理对高性能数据检索的要求。为此,键值对(Key-Value,简称KV)数据检索技术以其高扩展、低延时及高性能等优点,被广泛应用到大数据应用中,存储系统的高速数据检索,应用较为广泛的Key-Value存储系统包括BigTable、RocksDB、LevelDB等。KV存储系统大多采用基于LSM-Tree数据结构。尽管基于LSM-Tree的存储引擎具有延迟更新和成批顺序写入磁盘的优点,但是需要在后台进行频繁的触发compaction线程来对KV项执行合并排序,同时将SSTable(有序数据表)不断的迁移到下层具有更多SSTable的层次。因此后台compaction操作会引起较大的写放大,这对整个KV存储系统的性能影响较大,尤其对于写性能。。
现有针对compaction操作的研究主要含主机端软件层优化及存储设备端内优化两个方面:一方面,针对于主机端应用层的优化。现有的研究主要集中于减少存储设备端的IO访问次数或提高主机端进行compaction操作的并行性。这些研究均可以较好的改善compaction的性能,减小写放大同时降低了延时,但是却没有充分利用存储设备端的计算能力。虽减少了存储设备端的IO访问次数或提高了任务的并行性,但是对于主机端CPU资源的消耗并没有减少,在一定程度上反而增加;另一方面,基于近数据处理(Near-DataProcessing,NDP)技术的存储设备端内优化,直接在存储设备端进行compaction操作。在主机端compaction优化工作只是部分减少IO的操作,但是,IO访问总数依然很高。利用存储设备端的计算力,直接在其内部进行compaction操作。这种方法避免了频繁的IO操作。但是,若将原有主机端任务的所有操作全部迁移到在存储设备端内进行compaction操作,这对存储设备端CPU的计算能力依赖较大,无法发挥整个系统的最大性能。
由此可见,现有的研究方法均未综合考虑KV存储系统中主机端和存储设备端的性能,未能发挥出系统最大整体性能。
发明内容
基于背景技术存在的技术问题,本发明提出了一种面向Key-Value系统的协同优化方法及系统,主机端CPU依然发挥较高的计算能力,进行大部分合并排序操作,存储设备端CPU充分利用计算能力分析元数据信息,计算出需要合并的SSTable,并根据本发明中的任务分割算法实现任务的动态分割。
本发明提出的面向Key-Value系统的协同优化方法,Key-Value系统包括主机端与存储端,所述方法包括以下步骤:
S1、主机端接收到读写请求后判断是否需要调度compaction线程,当判断结果为是时,主机端向存储端发送compaction调度请求;
S2、存储端分析compaction调度请求中的任务信息,将compaction任务分割为主机端子任务信息和存储端子任务信息;
S3、主机端对主机端子任务信息进行合并排序操作,得出第一结果并将第一结果传输至存储端,存储端对存储端子任务信息进行合并排序操作,并得出第二结果;
S4、存储端对第一结果和第二结果进行合并优化操作。
优选地,步骤S1具体包括:
主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求;
优选地,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空;
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求;
优选地,判断是否需要调度compaction线程具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空。
优选地,步骤S2具体包括:
存储端根据compaction调度请求信息中的compaction层号和指向该层需要compaction的目标SSTable文件分析出compaction的层数和该SSTable文件元数据,存储端根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,当上述两层之间Key范围上有重叠时,将下一层中Key范围与目标SSTable文件重叠的SSTable文件加入compaction调度请求任务中,存储端根据任务分割算法将compaction任务分割为主机端子任务和存储端子任务;
优选地,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
存储端将SSTable文件
Figure BDA0001312778010000041
分割为主机端子任务,将SSTable文件
Figure BDA0001312778010000042
分割为存储端子任务;
存储端根据SSTable文件
Figure BDA0001312778010000043
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主机端子任务,将SSTka文件的剩余部分分割为存储端子任务;
其中,1≤a≤n,v=k+1。
优选地,步骤S3具体包括:
主机端对主机端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对对应的SSTable文件进行多路合并排序操作,得出第一结果,且将第一结果传输至存储端;
存储端对存储端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
优选地,在对compaction层号以及对应的SSTable文件号进行分析时,根据compaction层号不同进行相应操作,具体包括:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
优选地,步骤S4具体包括:
存储端对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。
本发明提出的面向Key-Value系统的协同优化系统,包括:
请求判断模块,用于判断主机端接收的读写请求是否需要调度compaction线程,且当判断结果为是时,向任务分割模块发送compaction调度请求;
任务分割模块,用于分析请求判断模块发送的compaction调度请求的任务信息,并将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
第一操作模块,用于在接收到任务分割模块发送的第一子任务后对其进行合并排序操作,并得出第一结果;
第二操作模块,用于在接收到任务分割模块发送的第二子任务后对其进行合并排序操作,并得出第二结果;
优化操作模块,用于对第一结果和第二结果进行合并优化操作。
优选地,请求判断模块具体用于:
主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求;
优选地,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空;
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求;
优选地,判断是否需要调度compaction线程具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空。
优选地,任务分割模块具体用于:
任务分割模块根据compaction调度请求信息中的compaction层号和指向该层需要compaction的目标SSTable文件分析出compaction的层数和该SSTable文件元数据,再根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,当上述两层之间Key范围上有重叠时,将下一层中Key范围与目标SSTable文件重叠的SSTable文件加入compaction调度请求任务中,任务分割模块根据任务分割算法将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
优选地,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
存储端将SSTable文件
Figure BDA0001312778010000081
分割为主机端子任务,将SSTable文件
Figure BDA0001312778010000082
分割为存储端子任务;
存储端根据SSTable文件
Figure BDA0001312778010000083
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主机端子任务,将SSTka文件的剩余部分分割为存储端子任务;
其中,1≤a≤n,v=k+1。
优选地,第一操作模块具体用于:
第一操作模块在接收到任务分割模块发送的第一子任务后,对第一子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对对应的SSTable文件进行多路合并排序操作,得出第一结果;
优选地,第二操作模块具体用于:
第二操作模块在接收到任务分割模块发送的第二子任务后,对第二子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
优选地,在对compaction层号以及对应的SSTable文件号进行分析时,根据compaction层号不同进行相应操作,具体包括:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
优选地,优化操作模块具体用于:
优化操作模块对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。
本发明基于近数据处理的Key-Value存储技术,在靠近数据源的存储设备端进行计算操作,充分利用了主机端和存储设备端的计算能力,同时上述操作方法实现了compaction任务的动态分割并与主机端CPU协同的计算模式;对compaction任务的系统级并行性进行了挖掘并充分利用了存储设备端的计算能力、降低了compaction的延时,增加写入吞吐量,提高了系统性能。
本发明通过主机端与存储设备端的协同优化,实现了存储上设备端与主机端之间的数据传递和语义交互;进一步地,本发明提出的主机端与存储设备端协同优化方法中,对compaction任务的分割操作将读写IO访问次数减少为原来的一半,大大地降低了读写的总延时;更进一步地,对compaction任务的分割操作减少了CPU资源的占用率,分担了CPU的计算时间,极大的减少了compaction的所需时间,有利于提高compaction任务处理的效率。
附图说明
图1为一种面向Key-Value系统的协同优化方法的步骤示意图;
图2为一种面向Key-Value系统的协同优化方法中主机端流程示意图;
图3为一种面向Key-Value系统的协同优化方法中存储端流程示意图;
图4为一种面向Key-Value系统的协同优化系统的结构示意图。
具体实施方式
如图1-图4所示,图1-图4为本发明提出的一种面向Key-Value系统的协同优化方法及系统。
参照图1-图3,本发明提出的面向Key-Value系统的协同优化方法,Key-Value系统包括主机端与存储端,所述包括以下步骤:
S1、主机端接收到读写请求后判断是否需要调度compaction线程,当判断结果为是时,主机端向存储端发送compaction调度请求;
在本实施例中,主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求,之后阻塞,等待存储端进程的唤醒;
优选地,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空。
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求;
优选地,判断是否需要调度compaction线程具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空。
具体地,主机端对上层应用的读写请求提供统一的Put、Get接口,保证读写请求读取的便利性和准确性。
S2、存储端分析compaction调度请求中的任务信息,将compaction调度请求分割为主机端子任务信息和存储端子任务信息;
具体地:存储端进程进入等待状态,等待主机端进程发送compaction调度请求唤醒存储端进程,当存储端接收到主机端发送的compaction调度请求后,存储端首先分析此次compaction层号和指向该层需要compaction的目标SSTable文件,分析出compaction的层数和该SSTable文件元数据,存储端根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,查找下一层SSTable文件中有Key范围重合的SSTable文件,当上述两层之间Key范围上有重叠时,将下一层的SSTable文件加入compaction调度请求任务中,存储端根据任务分割算法将compaction调度请求分割为主机端子任务和存储端子任务;
优选地,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka;上述文件SSTk1、SSTk2、SSTk3……SSTkn为所述Lk层中的的SSTable文件;
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
存储端将SSTable文件
Figure BDA0001312778010000121
分割为主机端子任务,将SSTable文件
Figure BDA0001312778010000122
分割为存储端子任务;
存储端根据SSTable文件
Figure BDA0001312778010000123
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主机端子任务,将SSTka文件的剩余部分分割为存储端子任务;
其中,1≤a≤n,v=k+1。
通过对任务分割算法进行详细分析可知,该算法对LK+1层中与LK层的SSTable文件的Key范围有重叠的所有SSTable文件进行分割,只对LK层的SST0a文件进行分割;主机端和存储端同时对compaction调度请求进行处理,不仅充分利用了主机端和存储端的计算力,提高了任务处理的效率,而且实现了主机端与存储端之间的数据传递和语义交互,同时,存储端动态地分割compaction调度任务,实现了compaction任务的并行性。
S3、主机端对主机端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对对应的SSTable文件进行多路合并排序操作,得出第一结果,且将第一结果传输至存储端,存储端对存储端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
在步骤S3中,主机端和存储端分别对主机端子任务和存储端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,在上述操作过程中,需要根据compaction层号的不同采取不同的处理方法,因为LevelDB等KV存储系统的底层SSTable文件内部有序、之间有序(除Level0),Level0层的SSTable文件内部同样有序,但出于对写性能的考虑,之间可能无序存在重写,因此需要根据compaction层号的不同采取不同的处理方法,具体分为两类:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
S4、存储端对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。同时,存储端进行此次compaction的后续操作,包括:元数据更新、过期文件删除、清单文件及日志文件的更新操作,进一步优化系统的性能。
本实施方式基于近数据处理的Key-Value存储技术,在靠近数据源的存储设备端进行计算操作,充分利用了主机端和存储设备端的计算能力,同时上述操作方法实现了compaction任务的动态分割并与主机端CPU协同的计算模式;对compaction任务的系统级并行性进行了挖掘并充分利用了存储设备端的计算能力、降低了compaction的延时,增加写入吞吐量,提高了系统性能。
参照图4,图4为本发明提出的面向Key-Value系统的协同优化系统,包括:
请求判断模块,用于判断主机端接收的读写请求是否需要调度compaction线程,且当判断结果为是时,向任务分割模块发送compaction调度请求;
在本实施方式中,主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求;
优选地,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空;
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求;
优选地,判断是否需要调度compaction线程具体包括:检测当前Key-Value系统是否同时满足以下条件:无compaction任务调度或正在执行、无等待的compaction任务、无错误状态返回、无Immutable MemTable、无手动compaction、上次compaction返回状态正确、当前版本的compact_score大于等于1或需要compaction的文件不为空。
任务分割模块,用于分析请求判断模块发送的compaction调度请求信息,并将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
任务分割模块根据compaction调度请求信息中的compaction层号和指向该层需要compaction的SSTable文件分析出compaction的层数和该SSTable文件元数据,再根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,当上述两层之间Key范围上有重叠时,将下一层的SSTable文件加入compaction调度请求任务中,任务分割模块根据任务分割算法将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
优选地,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
任务分割模块将SSTable文件
Figure BDA0001312778010000161
分割为第一子任务,将SSTable文件
Figure BDA0001312778010000162
分割为第二子任务;
任务分割模块根据SSTable文件
Figure BDA0001312778010000163
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为第一子任务,将SSTka文件的剩余部分分割为第二子任务;
其中,1≤a≤n,v=k+1。
第一操作模块在接收到任务分割模块发送的第一子任务后,对第一子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对其进行多路合并排序操作,得出第一结果;
第二操作模块在接收到任务分割模块发送的第二子任务后,对第二子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
第一操作模块和第二操作模块在接收到第一子任务和第二子任务后,对子任务信息中的compaction层号以及对应的SSTable文件号进行分析,在此分析过程中,需要根据compaction层号的不同采取不同的分析方法,因为LevelDB等KV存储系统的底层SSTable文件内部有序、之间有序(除Level0),Level0层的SSTable文件内部同样有序,但出于对写性能的考虑,之间可能无序存在重写,因此需要根据compaction层号的不同采取不同的处理方法,具体包括两种模式:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
优化操作模块对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。
需要说明的是,本实施方式还包括语义交互模块,语义交互模块的作用为在第一操作模块与第二操作模块之间传输语义信息,保证二者之间协同工作;语义交互模块具体用于:
第一操作模块在触发compaction线程之后,会循环的接收语义信息,判断任务分割模块是否将主机端子任务信息返回;如果返回,则主机端开始完成第一子任务。存储端在发送主机端子任务信息之后,立即开始任务分割模块产生的第二子任务;
第二操作模块如果完成操作,置完成标志位,然后进入等待状态。
若第一操作模块完成,需要循环判断第二操作模块是否完成。如果是,唤醒正在等待中的第二操作模块进程。然后将新产生的子任务结果及新产生的SSTable的相关元数据信息发送到存储端。
当语义交互模块工作进程完成后,系统自动进入优化操作模块启动工作。
本实施方式通过主机端与存储设备端的协同优化,实现了存储上设备端与主机端之间的数据传递和语义交互;进一步地,本发明提出的主机端与存储设备端协同优化方法中,对compaction任务的分割操作将读写IO访问次数减少为原来的一半,大大地降低了读写的总延时;更进一步地,对compaction任务的分割操作减少了CPU资源的占用率,分担了CPU的计算时间,极大的减少了compaction的所需时间,有利于提高compaction任务处理的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种面向Key-Value系统的协同优化方法,Key-Value系统包括主机端与存储端,其特征在于,所述方法包括以下步骤:
S1、主机端接收到读写请求后判断是否需要调度compaction线程,当判断结果为是时,主机端向存储端发送compaction调度请求;
S2、存储端分析compaction调度请求中的任务信息,将compaction任务分割为主机端子任务信息和存储端子任务信息;
S3、主机端对主机端子任务信息进行合并排序操作,得出第一结果并将第一结果传输至存储端,存储端对存储端子任务信息进行合并排序操作,并得出第二结果;
S4、存储端对第一结果和第二结果进行合并优化操作;
步骤S1具体包括:
主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求;
步骤S2具体包括:
存储端根据compaction调度请求信息中的compaction层号和指向该层需要compaction的目标SSTable文件分析出compaction的层数和该SSTable文件元数据,存储端根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,当上述两层之间Key范围上有重叠时,将下一层中Key范围与目标SSTable文件重叠的SSTable文件加入compaction调度请求任务中,存储端根据任务分割算法将compaction任务分割为主机端子任务和存储端子任务;
步骤S3具体包括:
主机端对主机端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对对应的SSTable文件进行多路合并排序操作,得出第一结果,且将第一结果传输至存储端;
存储端对存储端子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
步骤S4具体包括:
存储端对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。
2.根据权利要求1所述的面向Key-Value系统的协同优化方法,其特征在于,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下7个条件:1、无compaction任务调度或正在执行,2、无等待的compaction任务,3、无错误状态返回,4、无Immutable MemTable,5、无手动compaction,6、上次compaction返回状态正确,7、当前版本的compact_score大于等于1或需要compaction的文件不为空;
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求。
3.根据权利要求1所述的面向Key-Value系统的协同优化方法,其特征在于,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
存储端将SSTable文件SSTv1、SSTv2、SSTv3……
Figure FDA0002627857650000031
分割为主机端子任务,将SSTable文件
Figure FDA0002627857650000032
……SSTvm分割为存储端子任务;
存储端根据SSTable文件
Figure FDA0002627857650000033
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主机端子任务,将SSTka文件的剩余部分分割为存储端子任务;
其中,1≤a≤n,v=k+1。
4.根据权利要求1所述的面向Key-Value系统的协同优化方法,其特征在于,在对compaction层号以及对应的SSTable文件号进行分析时,根据compaction层号不同进行相应操作,具体包括:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
5.一种面向Key-Value系统的协同优化系统,其特征在于,包括:
请求判断模块,用于判断主机端接收的读写请求是否需要调度compaction线程,且当判断结果为是时,向任务分割模块发送compaction调度请求;
任务分割模块,用于分析请求判断模块发送的compaction调度请求的任务信息,并将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
第一操作模块,用于在接收到任务分割模块发送的第一子任务后对其进行合并排序操作,并得出第一结果;
第二操作模块,用于在接收到任务分割模块发送的第二子任务后对其进行合并排序操作,并得出第二结果;
优化操作模块,用于对第一结果和第二结果进行合并优化操作;
请求判断模块具体用于:
主机端接收读请求后,根据读取功能函数找到Key对应的Value,判断该Key-Value项所在SSTable文件的元数据信息中的allowed_seeks属性,当allowed_seeks属性<=0时,将该SSTable文件标记为待执行compaction的文件,且标记该SSTable文件所在的层待执行compaction,并判断是否需要调用compaction,若是,调度compaction线程并向存储端发送compaction调度请求;
任务分割模块具体用于:
任务分割模块根据compaction调度请求信息中的compaction层号和指向该层需要compaction的目标SSTable文件分析出compaction的层数和该SSTable文件元数据,再根据该层的SSTable文件元数据信息指示的SmallestKey和LargestKey与下一层所有SSTable文件元数据信息指示的SmallestKey和LargestKey进行比较,当上述两层之间Key范围上有重叠时,将下一层中Key范围与目标SSTable文件重叠的SSTable文件加入compaction调度请求任务中,任务分割模块根据任务分割算法将compaction任务分割为第一子任务和第二子任务,且将第一子任务发送至第一操作模块、第二子任务发送至第二操作模块;
第一操作模块具体用于:
第一操作模块在接收到任务分割模块发送的第一子任务后,对第一子任务信息中的compaction层号以及对应的SSTable文件号进行分析,并对对应的SSTable文件进行多路合并排序操作,得出第一结果;
第二操作模块具体用于:
第二操作模块在接收到任务分割模块发送的第二子任务后,对第二子任务信息中的compaction层号以及对应的SSTable文件号进行分析,遍历对应的SSTable文件,并进行合并排序操作得出第二结果;
优化操作模块具体用于:
优化操作模块对第一结果和第二结果中最小Key值的目标结果的Key-Value项迭代加入对应的SSTable文件中,并更新上述SSTable文件的元数据信息及日志,若SSTable满,将上述Key-Value项写入存储端并记录满的SSTable文件的元数据信息,再新建SSTable表,继续迭代加入Key-Value项,直至上述目标结果的Key-Value项迭代完成,再对第一结果和第二结果中的另一个结果的Key-Value项进行迭代,直至该结果的Key-Value项迭代完成,完成对第一结果和第二结果的合并优化操作。
6.根据权利要求5所述的面向Key-Value系统的协同优化系统,其特征在于,所述判断是否需要调用compaction具体包括:检测当前Key-Value系统是否同时满足以下7个条件:1、无compaction任务调度或正在执行,2、无等待的compaction任务,3、无错误状态返回,4、无Immutable MemTable,5、无手动compaction,6、上次compaction返回状态正确,7、当前版本的compact_score大于等于1或需要compaction的文件不为空;
主机端接收写请求时,Key-Value项写入内存后,根据空间判断函数判断此时写请求在MemTable中是否有空间满足,若MemTable已满或第0层文件个数大于阈值,判断是否需要调度compaction线程,若是,主机端向存储端发送compaction调度请求。
7.根据权利要求6所述的面向Key-Value系统的协同优化系统,其特征在于,所述任务分割算法具体包括:
compaction调度请求到达存储端后,存储端确定此次compaction选定的Lk层的SSTable文件SSTk1、SSTk2、SSTk3……SSTkn中的一个文件SSTka
确定Lk+1层中的SSTable文件的Key范围与Lk层的SSTable文件的Key范围有重叠的所有SSTable文件,记为SSTv1、SSTv2、SSTv3……SSTvm
存储端将SSTable文件SSTv1、SSTv2、SSTv3……
Figure FDA0002627857650000071
分割为主机端子任务,将SSTable文件
Figure FDA0002627857650000072
……SSTvm分割为存储端子任务;
存储端根据SSTable文件
Figure FDA0002627857650000073
的元数据信息中指示的Smallest的值Y以及SSTka文件中的SSTka的Key范围[SSTka_smallest,SSTka_largest]将SSTka文件中的[SSTka_smallest,Y]文件分割为主机端子任务,将SSTka文件的剩余部分分割为存储端子任务;
其中,1≤a≤n,v=k+1。
8.根据权利要求7所述的面向Key-Value系统的协同优化系统,其特征在于,在对compaction层号以及对应的SSTable文件号进行分析时,根据compaction层号不同进行相应操作,具体包括:
当compaction层号=0时,根据目标compaction的SSTable文件在Level0层与剩余所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,并从上述Key范围有重叠的SSTable文件的Key范围中整合出目标Key范围,并在下一层寻找与目标Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项;
当compaction层号!=0时,将根据目标compaction的SSTable文件的key范围与下一层所有的SSTable文件的Key范围进行比较,寻找与目标compaction的SSTable文件的Key范围有重叠的SSTable文件,对上述Key范围有重叠的SSTable文件迭代的进行合并排序操作生成新的有序的SSTable文件并将其写入下一层,并删除具有删除标志的Key-Value项,且更新Key值相同且序列号较新Key值小的Key-Value项。
CN201710413186.7A 2017-06-05 2017-06-05 一种面向Key-Value系统的协同优化方法及系统 Active CN107247624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710413186.7A CN107247624B (zh) 2017-06-05 2017-06-05 一种面向Key-Value系统的协同优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710413186.7A CN107247624B (zh) 2017-06-05 2017-06-05 一种面向Key-Value系统的协同优化方法及系统

Publications (2)

Publication Number Publication Date
CN107247624A CN107247624A (zh) 2017-10-13
CN107247624B true CN107247624B (zh) 2020-10-13

Family

ID=60017705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710413186.7A Active CN107247624B (zh) 2017-06-05 2017-06-05 一种面向Key-Value系统的协同优化方法及系统

Country Status (1)

Country Link
CN (1) CN107247624B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825706B (zh) * 2018-08-07 2022-09-16 华为云计算技术有限公司 一种数据压缩的方法和相关设备
CN111897783B (zh) * 2020-06-24 2023-05-02 安徽大学 基于多ndp协同主机端执行并行任务的kv存储系统优化方法
CN113177045A (zh) * 2021-04-12 2021-07-27 锐掣(杭州)科技有限公司 数据提取方法、装置、可计算存储设备及数据请求设备
CN113297136B (zh) * 2021-05-25 2023-11-03 南京大学 一种面向lsm树的键值存储方法和存储系统
CN113342274B (zh) * 2021-06-10 2024-01-30 北京火山引擎科技有限公司 一种数据处理方法及装置
CN113779024B (zh) * 2021-08-05 2024-02-09 安徽大学 一种面向近数据处理架构下键值存储系统的异步并行优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567107A (zh) * 2011-10-31 2012-07-11 广东电网公司电力科学研究院 高并行的实时内存资源管理调度方法
CN103812877A (zh) * 2014-03-12 2014-05-21 西安电子科技大学 基于Bigtable分布式存储系统的数据压缩方法
CN106708442A (zh) * 2016-12-30 2017-05-24 武汉安嘉颐科技有限公司 同时适应磁盘与固态硬盘读写特性的海量数据存储方法
CN106790706A (zh) * 2017-02-27 2017-05-31 深圳先进技术研究院 一种数据资源优化的方法、平台及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9832068B2 (en) * 2012-12-17 2017-11-28 Microsoft Technology Licensing, Llc Reachability-based coordination for cyclic dataflow

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567107A (zh) * 2011-10-31 2012-07-11 广东电网公司电力科学研究院 高并行的实时内存资源管理调度方法
CN103812877A (zh) * 2014-03-12 2014-05-21 西安电子科技大学 基于Bigtable分布式存储系统的数据压缩方法
CN106708442A (zh) * 2016-12-30 2017-05-24 武汉安嘉颐科技有限公司 同时适应磁盘与固态硬盘读写特性的海量数据存储方法
CN106790706A (zh) * 2017-02-27 2017-05-31 深圳先进技术研究院 一种数据资源优化的方法、平台及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SSD的Key-Value系统优化设计与实现;刘峪竹 等;《计算机研究与发展》;20141231;全文 *

Also Published As

Publication number Publication date
CN107247624A (zh) 2017-10-13

Similar Documents

Publication Publication Date Title
CN107247624B (zh) 一种面向Key-Value系统的协同优化方法及系统
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
US11182404B2 (en) Data replication technique in database management system
Marcu et al. Spark versus flink: Understanding performance in big data analytics frameworks
US9672235B2 (en) Method and system for dynamically partitioning very large database indices on write-once tables
JP6639420B2 (ja) フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム
US20160267100A1 (en) Data Deduplication in a Virtualization Environment
US9712646B2 (en) Automated client/server operation partitioning
US20140359244A1 (en) De-duplication with partitioning advice and automation
US8868576B1 (en) Storing files in a parallel computing system based on user-specified parser function
US11314719B2 (en) Method for implementing change data capture in database management system
US8850148B2 (en) Data copy management for faster reads
CN102880671A (zh) 一种面向分布式文件系统的主动重复数据删除方法
WO2022206398A1 (en) Method and apparatus for reading data maintained in tree data structures
US20170269974A1 (en) Speculative execution of a stream of changes
CN105426119A (zh) 一种存储设备及数据处理方法
CN107291541B (zh) 面向Key-Value系统的compaction粗粒度进程级并行优化方法及系统
US10387283B2 (en) Dynamically adjusting statistics collection time in a database management system
Tulkinbekov et al. CLeveldb: Coalesced leveldb for small data
CN116226497A (zh) 检索方法、介质、装置和计算设备
US20230244664A1 (en) Hybrid database scan acceleration system
US12013833B2 (en) Blockchain-based high-speed data processing device and method thereof
US20240152516A1 (en) Method and apparatus for executing structural query language instruction in solid-state storage device
US20240095248A1 (en) Data transfer in a computer-implemented database from a database extension layer
TW201828164A (zh) 資料庫操作方法及裝置

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