CN104246728B - 用于数据库索引的多个可变覆盖率存储器 - Google Patents

用于数据库索引的多个可变覆盖率存储器 Download PDF

Info

Publication number
CN104246728B
CN104246728B CN201280072711.9A CN201280072711A CN104246728B CN 104246728 B CN104246728 B CN 104246728B CN 201280072711 A CN201280072711 A CN 201280072711A CN 104246728 B CN104246728 B CN 104246728B
Authority
CN
China
Prior art keywords
database
index
memory
performance
optimization
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.)
Expired - Fee Related
Application number
CN201280072711.9A
Other languages
English (en)
Other versions
CN104246728A (zh
Inventor
E·J·J·克鲁格里克
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.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of CN104246728A publication Critical patent/CN104246728A/zh
Application granted granted Critical
Publication of CN104246728B publication Critical patent/CN104246728B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Abstract

通常描述了涉及用于数据库索引的多个可变覆盖率存储器的技术。可以执行所述方法以当数字服务提供者构建了用于数据库的优化索引时实施对于数字服务提供者客户数据的高速数据库访问。初始地,数字服务提供者可以通过在相对高性能第一存储器中保持相对低性能基本索引而维持合适的服务水平。当数字服务提供者构建优化索引时,数字服务提供者可以通过从第一存储器的使用逐渐转移至相对低性能第二存储器的使用而维持合适的服务水平。

Description

用于数据库索引的多个可变覆盖率存储器
发明背景
除非在此另外指出,在该部分中所述的材料并非是对于本申请权利要求的现有技术,并且并非承认作为包含在该部分中的现有技术。
主流计算机使用由单独管理的独立计算装置演化至经由网络连接访问软件和/或数据的互连装置。“云计算”涉及其中计算可以经由网络连接访问并且从网络可获得的资源可以称作“在云端”的计算模型。
在网络连接背后,“云”可以通常包括在数据中心内专业管理的硬件和软件。在数据中心内提供硬件和/或软件以由其客户使用的公司在此称作“数字服务提供者”。
包括例如商业和/或个人的一个或多个客户可以在包括由一个或多个数字服务提供者所提供的硬件和/或软件的平台上存储软件和数据。示例性的客户可以包括例如从事于电子商务的商行。另一示例性客户可以包括例如“软件即服务”(SaaS)提供者。SaaS提供者可以供应用户可以在云端获取的应用软件。
访问“在云端”客户的软件/数据的用户可以称作“云客户端”或“用户”。因此,在示例性实施例中,数字服务提供者可以向客户售卖或者另外提供云基础结构,并且客户可以向访问云的用户售卖或者另外提供他们的商品/服务。
发明概要
本公开通常描述了包括关于用于数据库索引的多个可变覆盖率存储器的装置、方法和计算机可读媒介的技术。一些示例性方法可以包括由第二数字服务提供者从第一数字服务提供者接收客户数据。可以执行所述方法以当第二数字服务商为客户数据构建了优化的高速数据库索引、在此称作优化索引时实施对客户数据的高速数据库访问。开始,第二数字服务提供者可以通过将基本的相对低性能的索引、在此称作基本索引保持在相对高性能第一存储器中而维持合适的服务水平。当第二数字服务提供者构建了优化索引时,第二数字服务提供者可以通过从使用在第一存储器中的基本索引转换为使用在相对较低性能第二存储器中优化索引而维持合适的服务水平。在一些实施例中,当第二数字服务提供者构建了优化索引并且逐渐转移至使用第二存储器时,用于响应于接收到的查询而取回所请求的客户数据记录的响应时间可以维持近似恒定。在一些实施例中,方法可以包括最终中止使用第一存储器中的基本索引。
一些示例性方法可以包括例如由第二数字服务提供者存储数据库,并且进一步在与第一性能水平相关联的第一存储器中存储基本索引;接收数据库查询并且修改基本索引的部分以用于更快数据取回,例如使用数据库索引优化工具和技术;在与第二性能水平相关联的第二存储器中存储基本索引的已修改部分的一些或全部以作为优化索引;以及当修改了基本索引时,增大作为优化索引存储在第二存储器中的基本索引的部分。在基本索引的修改期间,可以使用基本和优化索引执行数据取回,并且数据取回可以增多使用优化索引。第一存储器可以包括例如具有相对高性能水平的高速缓存,而第二存储器可以包括例如较低成本的相对较低性能的存储器,诸如磁盘型存储器。
在一些实施例中,方法可以包括测量关于使用部分基本索引取回被请求数据记录的时间或者查表的数目;比较时间或者查表数目与性能需求;以及当时间或者查表数目满足性能需求时,将与取回被请求数据记录相关的基本索引的部分转移至第二存储器。存储在第二存储器中的优化索引的部分可以包括配置用于以比存储在第一存储器中基本索引的部分更少的查表或者更短时间而定位数据记录的基本索引的部分。在一些实施例中,优化索引的部分可以包括配置用于向所接收到的查询提供更快响应的基本索引的已修改部分。
一些示例性方法可以包括在第一存储器中存储第一(基本)数据库索引;接收查询并且构建第二(优化)数据库索引以比基本索引提供对于所接收到的查询更快的响应;在第二存储器中存储优化索引;以及在优化索引的构建期间,使用基本索引和优化索引对所接收到的查询进行响应,并且当优化索引尺寸增大时增多使用优化索引。
也公开了计算装置和具有实施了在此所述各个技术的指令的计算机可读媒介。示例性计算机可读媒介可以包括具有可由处理器执行的计算机可执行指令的非暂态计算机可读存储媒介,当由处理器执行时指令使得处理器执行在此提供的各种方法的任意组合。示例性计算装置可以包括服务器,包含处理器、存储器和配置用于执行在此所述方法的数据库性能平衡工具。
前述发明概要仅是示意性的并且并非意在以任何方式限定。除了如上所述的示意性特征方面、实施例和特征之外,通过参考附图和以下详细说明书将使得其他特征方面、实施例和特征变得明显。
附图简述
结合附图从以下说明书和附图将使得本公开的前述和其他特征变得更完全明显。应该理解的是这些附图仅示出了根据本公开的数个实施例并且因此并非视作限定其范围,将通过使用附图采用额外的具体和细节描述本公开,其中:
图1是示出了客户数据从第一数字服务提供者向第二数字服务提供者示例性传送的示意图;
图2A是示出了由第二数字服务提供者使用以在时间T2处服务来自云客户端的查询的数据库、第一存储器、第二存储器和基本索引的示意图;
图2B是示出了由第二数字服务提供者使用以在时间T3处服务来自云客户端查询的数据库、第一存储器、第二存储器和基本以及优化索引的示意图;
图2C是示出了由第二数字服务提供者使用以在时间T4处服务来自云客户端查询的数据库、第一存储器、第二存储器和基本以及优化索引的示意图;
图2D是示出了由第二数字服务提供者使用以用于在时间T5处服务来自云客户端查询的数据库、第一存储器、第二存储器和优化索引的示意图;
图3是示出了作为数字服务提供者服务器的一个示例的计算装置的示意图;
图4是示出了配置用于实施性能平衡的示例性方法的流程图;
图5是示出了配置用于在与性能平衡相关的第二存储器中存储基本索引的已修改部分和/或第二索引的示例性方法的流程图;
图6是示出了配置用于在数据库优化工具的操作期间实施性能平衡的示例性方法的流程图;
图7是示出了资源过度供应与随时间变化的索引性能的示意图;
图8是示出了用于从数据库取回数据记录的多个索引表的示意图,所有这些均根据本公开的至少一些实施例设置。
具体实施方式
在以下详细说明书中,参考了构成其一部分的附图。在附图中,类似的符号通常标识类似的部件,除非上下文明确给出相反指示。在详细说明书、附图和权利要求中所述的示意性实施例并非意味着限定。可以采用其他实施例,并且可以做出其他改变,而不脱离在此展示的主题的精神或范围。将易于理解的是,可以以大量不同配置结构管理、替换、组合和设计如通常在此所述并且示出在附图中的本公开的特征方面,所有这些明确地预期并且构成了本公开的一部分。
本公开通常与其他一起涉及包括了在此采用的关于用于数据库索引的多个可变覆盖率存储器的方法、装置、系统和/或计算机可读媒介的技术。当数字服务提供者构建了用于数据库的优化索引时,可以执行所述方法以实施对数字服务提供者客户数据的高速数据库访问。开始,数字服务提供者可以通过在相对高性能第一存储器中保存相对低性能的基本索引而维持合适的服务水平。当数字服务提供者构建了优化索引时,数字服务提供者可以通过从使用第一存储器逐渐转变至使用相对较低性能的第二存储器而维持合适的服务水平。
图1是示出了根据本公开至少一些实施例设置的、客户数据从第一数字服务提供者传送至第二数字服务提供者的示意图。图1包括配置用以在时间T1处与客户150和云客户端160交互的第一数字服务提供者101,以及配置用于在时间T2处与客户150和云客户端160交互的第二数字服务提供者102。第一数字服务提供者101在时间T1处包括数据库152和索引151。第二数字服务提供者102在时间T2包括数据库152和基本索引153。
在图1中,客户150可以开始在时间T1处维持在第一数字服务提供者101处的账户,并且客户150可以例如经由任意多种账户管理交互动作而与第一数字服务提供者101交互,包括例如为了使用云基础结构和服务而向第一数字服务提供者101付费。云客户端160可以包括例如存储在数据库152中的客户150的数据的使用者。云客户端160可以配置用以经由向第一数字服务提供者101查询而访问数据库152。在一些实施例中,客户150和云客户端160可以是相同实体,诸如相同的个人、商户或其他组织。
第一数字服务提供者101可以配置用以使用索引151,例如可以由数字服务提供者101拥有的索引,以响应于云客户端160查询而从数据库152取回数据。第一数字服务提供者101可以配置用以提供对云客户端160的响应,包括从数据库152取回到的数据记录。
为了任何原因,客户150可以最终决定切换或者添加数字服务提供者,例如通过开通在第二数字服务提供者102处的账户,实现客户数据传送以将数据库152迁移至第二数字服务提供者102,以及任选地关闭客户150的在第一数字服务提供者101处的账户。任意各种技术可以用于执行客户数据传送,例如可以配置第一数字服务提供者101以加密数据库152和第二数据库152经由网络连接至第二数字服务提供者102,并且可以配置第二数字服务提供者102以接收并且解密数据库152。客户数据传送可以有效的从第一数字服务提供者101传送或者复制数据库152至第二数字服务提供者102,然而,客户数据传送可以对于传送索引151是无效的。例如,索引151可以由第一数字服务提供者101所拥有,或者另外不可由第二数字服务提供者102操作。
在时间T2处,客户150可以维持在第二数字服务提供者102处的账户,其中客户150可以例如经由账户管理交互动作而与第二数字服务提供者102交互。云客户端160向数据库152的查询可以引导至第二数字服务提供者102。
可以配置第二数字服务提供者102以初始地使用基本索引153以响应于运客户端160查询而从数据库152取回数据。可以配置第二数字服务提供者102以向云客户端160提供包括从数据库152取回到的数据记录的响应。基本索引153可以例如包括可以由第二数字服务提供者102从数据库152构建的任何索引而不受到云客户端160查询历史的影响。因为查询数据可以用于优化索引以使其更快速响应于类似查询,以及因为初始地第二数字服务提供者102无法访问有效的查询历史以用于索引优化,与例如索引151和/或可以随时间变化由第二数字服务提供者102构建的索引相比,例如与参照图2所述的优化索引154相比,基本索引153可以是相对低性能的索引。
通常,数据库索引以增加存储空间和可能当更新索引时较慢的写入时间的代价而改进了数据取回速度。诸如数据中心的数字服务提供者无需招致较慢的写入时间,因为可以由专用服务执行索引更新,然而构建索引耗费时间以及需要做出查询的类型的知识。
有时数字服务提供者102可以不具有关于在数据库152中与迁移客户150一起交付的数据的海量信息。例如,之前的数字服务提供者101可以与客户数据传送不合作,或者可能之前的数字服务提供者101与客户数据传送合作但是与由第二数字服务提供者102所提供的系统不兼容。例如,当前数据中心倾向于拒绝复杂所有权的系统,即便是最兼容的关键数值前端访问应用程序编程接口(API),并且关注于仅对于面向接口的云客户端160兼容。通常使用这些复杂系统,因为它们允许数据中心使用可以优选用于历史或者合作原因的特定硬件配置结构。在任何情形下,有时优化的索引在用于诸如数据库152的传送数据的第二数字服务提供者102处不可用。
取决于特定索引的环境,形成并且优化索引可以不是琐碎的。可以需要信息以选择当形成索引基数时哪个对于混合可变,以及选择产生哪个索引。甚至在当今数据中心中使用的适度的“大数据”索引可以具有每个所有者约150-200吉字节(GB)的索引空间,而不采用多重交互。采用多重交互,这种索引可以填充太字节或者甚至拍字节的存储空间。为了增大索引的效率,熟知数据的支持员工可以参加手动索引选择,和/或可以使用数据库优化工具。手动索引设计方法不与数据中心操作成比例,尤其是当客户150不希望其数据由数据中心员工读取时。
数据库优化工具可以包括配置用于观察云客户端160查询并且基于观测到的查询构建索引的软件。例如,由IBM公司制造的DB2数据库管理系统(DBMS)包括称作“设计顾问”的数据库优化工具。配置设计顾问以基于对提交查询的贝叶斯学习法而自动索引。由微软公司制造的SQL服务器DBMS包括称作“索引微调向导”的数据库优化工具。TERADATA和NETEZZA DBMS具有类似功能。
然而在自动索引优化中,数据库优化工具的性能可以与可用的查询数据相关。例如,可以配置数据库优化工具以使用大比例查询以优化索引,以及减小索引尺寸。诸如153的基本索引的性能与诸如154的优化索引相比可以是差的,然而第二数字服务提供者102可以不具有对于基本索引153的备选直至发生索引优化。此外,第二数字服务提供者102可以希望一旦客户迁移则立即向客户150提供良好的第一印象,因此第二数字服务提供者102可以寻找以在当构建了更快速索引和/或索引优化时的过渡时间期间提供快速性能。
图2A、图2B、图2C和图2D是根据本公开至少一些实施例设置的、分别示出了由第二数字服务提供者102使用的用以在时间T2、T3。T4和T5处服务来自云客户端160查询的数据库152、第一存储器201、第二存储器202和索引153、154的示意图。图2A、图2B、图2C和图2D可以共同称作图2。
在图2A中,在对应于初始从数据库152传送至第二数字服务提供者102的时间T2处,可以配置第二数字服务提供者102以在第一存储器201中存储基本索引153。可以配置第二数字服务提供者102以通过使用基本索引153而向来自云客户端160的查询进行服务以在数据库152中找到所请求的数据记录,以及采用包括所请求数据记录的响应而向云客户端160做出响应。
在一些实施例中,可以配置第二数字服务提供者102以在时间T2处通过采用用于存储和/或计算的强大资源过度提供数据库152和/或基本索引153而在第二数字服务提供者102处从初始运行数据库152而提供优化的数据库性能。例如,基本索引153可以提供多级最初索引,并且第一存储器201可以包括快速但是昂贵的存储器缓存型存储器。在一些实施例中,存储器缓存型存储器可以提供150-180微秒(非毫秒)的响应时间。在存储器缓存中十级元数据索引取回可以耗费少至约1.7毫秒(ms)的时间。在一些实施例中,第一存储器201可以包括弹性缓存型存储器,当前可用于AMAZON网络服务。
本公开不限于用作第一存储器201的任何特定类型存储器,并且当前已知的或者可以未来开发的任何存储器类型可以用于第一存储器201,只要第一存储器201配置具有比第二存储器201相当更快的性能。例如,在一些实施例中,用作第一存储器201的第一性能水平、“高性能”或“快速”存储器可以包括配置用以工作在作为第二存储器202的平均查询响应时间的一半或更少的平均查询响应时间下的任何存储器。相反地,用作第二存储器202的第二性能水平、“低性能”或“缓慢”存储器可以包括配置用于工作在两倍于第一存储器201的平均查询响应时间或更多的平均查询响应时间下的任何存储器。在一些实施例中,当第二存储器202可以具有优化索引154时,用作第一存储器201的第一性能、“高性能”或“快速”存储器可以包括配置用于提供与基本索引153基本上相同或者更好的平均查询响应时间,反之亦然。
在一些实施例中,第二存储器202可以包括固态驱动器(SSD)或磁盘型存储器。第二存储器202不限于任何具体存储器类型,并且如上所述的提供慢于由第一存储器201提供的第一性能水平的第二性能水平的任何存储器类型对于在本公开实施例中使用而言是可接受的。
将要知晓的是在一些实施例中,第一存储器201可以补充或者与配置用以允许更快速索引操作的任何第一硬件交换,并且同样地,第二存储器202可以补充或者与配置用于允许相对较慢索引操作的任何第二硬件交换。例如,在一些实施例中,第一存储器201可以补充或者与相对强大的计算/处理资源交换,包括例如专用硬件,诸如一个或多个现场可编程门阵列(FPGA)或者配置用于访问基本索引153的其他专用硬件。第二存储器202可以补充或者与相对较低性能计算/处理资源交换,包括例如非专用硬件,诸如独立的中央处理单元(CPU),用于在配置用于访问优化索引154的第二服务提供者102内。此外,本公开使用第一存储器201和第二存储器202作为示例性实施例,然而需要知晓的是通过扩展,可以使用任意数目的不同存储器或者其他资源性能水平。例如,第三存储器、第四存储器等等可以包括在图2的第二服务提供者102中。
在图2B中,在对应于时间T2之后时间间隔的时间T3处,可以配置第二数字服务提供者102以在第二存储器202中存储优化索引154。可以配置第二数字服务提供者102以通过使用索引153和154以服务来自云客户端160的查询以在数据库152中找到所请求的数据记录,以及采用包括所请求数据记录的响应而对云客户端160做出响应。
在一些实施例中,数据库优化工具可以修改基本索引153以产生优化索引154。当优化了基本索引153的一部分时,那些部分可以移动或者复制至第二存储器202,并且可以用作优化索引154。在一些实施例中,移动至第二存储器202的基本索引153的一部分可以由它们的响应速度而标识,根据时间和/或查表数目,与这些部分是否由数据库优化工具修改相组合或者独立于该情形。在其他实施例中,数据库优化工具可以构建优化索引154作为第二索引,独立于基本索引153,以及当第二索引尺寸增大并且改进时可以配置第二数字服务提供者102以引导增多数目的查询至优化索引154。
在一些实施例中,可以配置第二数字服务提供者102以使用优化索引154以使得使用在第二存储器202中优化索引154的平均总体响应时间基本上等于使用在第一存储器201中基本索引153的平均总体响应时间。例如,在该上下文中,“基本上相等”的响应时间可以包括使用基本索引153的平均总体响应时间可以比使用优化索引154的平均总体响应时间更快或者更慢50%(或更少)。
在一些实施例中,第二数字服务提供者102无需采用基本索引153和优化索引154而提供基本上相同的总响应时间。使用比基本索引153更快或者更慢的优化索引154的响应时间是可以接受的。例如,在一些情形下,第一存储器201中基本索引153可以用于防止不可接收的缓慢初始性能,并且第二存储器202中的优化索引154可以大大慢于第一存储器201中的基本索引153,但是仍然是可接受的。在一些情形下,第一存储器201中的基本索引153可以用于提供缓慢但是可接受的初始性能,并且第二存储器202中的优化索引154可以远远快于第一存储器201中的基本索引153。
在图2C中,在对应于时间T3之后时间间隔的时间T4处,可以配置第二数字服务提供者102以存储基本索引153的额外部分,作为第二存储器202中的优化索引154。可以配置第二数字服务提供者102以通过使用索引153和154以对于来自云客户端160的查询进行服务,并且采用包括所请求数据记录的响应而对于云客户端160进行响应。
在一些实施例中,可以配置第二数字服务提供者102以逐渐的减小提供用于数据库152和/或基本索引153的第一存储器201的资源,例如在每个时间T3、T4和T5处减小由基本索引153使用的第一存储器201的资源。可以配置第二数字服务提供者102以使用前进查询数据构建优化索引154,以及在第二存储器202中存储优化索引154。第二存储器202可以包括可以以虽然比第一存储器201较低性能但是较低成本提供的存储器。在第二存储器202中存储优化索引154无需影响总性能,因为由优化索引154提供的性能增益可以补偿与转换至第二存储器202相关联的性能损耗。可以配置第二数字服务提供者102以逐渐增加提供用于数据库152和/或优化索引154的第二存储器202的资源,例如在时间T3、T4和T5处,当收集了允许构建优化索引154的查询数据时。
在图2D中,在对应于时间T4之后时间间隔的时间T5处,可以配置第二数字服务提供者102以在第二存储器202中存储完成的优化索引154。可以配置第二数字服务提供者102以通过使用优化索引154对于来自云客户端160的查询进行服务以在数据库152中找到所请求的数据记录,并且采用包括了所请求数据记录的响应而对于云客户端160做出响应。可以任选的配置第二数字服务提供者102以中止基本索引153,诸如通过删除或者另外废除基本索引153,或者从第一存储器201逐出基本索引153。在一些实施例中,可以配置第二数字服务提供者102以管理对使用优化索引154的转变以便于维持从时间T2至时间T5处完全优化的稳定状态操作的恒定性能,具有对于过度提供的最少代价。
在图2中,可以配置第二数字服务提供者102以采用诸如第一存储器201中提供的补充的高性能相对昂贵资源而临时加速对数据库152的访问,而同时构建了有效的数据库优化索引154,以使得当构造优化索引154时可以满足第二数字服务提供者102和/或客户150的性能需求。当构建了优化索引154时,可以逐渐增多的由使用优选索引154的第二存储器202的相对较便宜资源而服务来自云客户端160的查询。可以配置第二数字服务提供者102以连续地调整加速经由第一存储器201对于数据库152的访问,以从时间T2处的初始传送提供所需的数据库访问服务速度。
在一些实施例中,可以配置基本索引153以服务任何查询。然而,当对于数据库152中数据记录执行取回时,基本索引153的使用可以通过基本索引153而承担多达8-10次不同的索引查表,或者更多。基本索引153中这些高数目的索引查表在许多情形下可以视作不可接受的。例如,对于基于磁盘的查询的每个检查可以占用约10毫秒,对于8-10个索引检查加上对于数据记录的最终磁盘访问、加上通信和算法时间,导致100-200ms的总查询服务时间。这与从有效索引的预期作比较,对于1-2个索引检查加上最终磁盘访问、通信和算法时间,诸如约3-50ms的优化索引154。
为了避免与基本索引153中额外索引查表相关联的延迟,当减小操作成本时,可以配置第二数字服务提供者102以将基本索引153的使用与初始少量但是逐渐增多的优化索引154的使用相组合,而此时基本索引153运行在高性能第一存储器201中。
在一些实施例中,优化索引154尺寸可以增大,并且较低质量的基本索引153可以尺寸减小,例如通过将数据库152内的数据区域的覆盖率从基本索引153转移至优化索引154。因此在时间T2、T3、T4和T5处,当收集查询使用数据以优化基本索引153的一部分时,对于数据库152的索引覆盖率由T2处基本索引153所控制,转变至在T5处由优化索引154所控制。可以配置优化索引154以比基本索引153相比采用较少不同的索引表以返回数据库152中所请求数据记录的最终位置,因此优化索引154可以位于与第二存储器202相关联的较慢存储媒介上,诸如SSD或自旋磁盘,而不必减小对数据库152的访问速度。在一些实施例中,可以配置第二数字服务提供者102以当第二数字服务提供者102从昂贵的第一存储器201中基本索引153转变至较便宜第二存储器202中优化索引154时维持随时间而粗略恒定的数据库性能。
在一些实施例中,可以配置第二数字服务提供者102以根据第一存储器201与第二存储器202的相对成本而管理第一存储器201中基本索引153以及第二存储器202中优化索引154的使用。为了计算成本,可以配置第二数字服务提供者102以确定基本索引153的尺寸,以及将索引尺寸乘以单位时间单位存储器的成本,例如每小时每GB的成本。得到的成本数字可以应用于函数以确定例如对于优化索引154的性能需求。存储器201的高成本可以调整降低对于优化索引154的性能需求,以使得在较低成本存储器202中优化索引154的使用更快速增多。相反地,存储器201的低成本可以调整增大对于优化索引154的性能需求,以使得在较低成本存储器202中优化索引154的使用更慢地增多。
在示例性的存储器成本计算中,第二数字服务提供者102可以例如确定基本索引153的尺寸约为170GB。这是对于包含了约十亿数据记录的数据库的合理预期的索引尺寸,尽管索引尺寸可以随着所包括数据的变量和丰富度的数目而大范围改变。当前对于弹性型存储器的第一存储器201的每GB成本约为$0.03每小时。因此对于十亿记录数据库在高性能第一存储器201中放置基本索引153的成本可以估算为大致$5.00/小时或者$100/日。同时,当前典型的索引优化技术可以任意采取从日至月以产生优化索引154,取决于查询频率和查询同质性。因此与使用用于基本索引153的第一存储器201相关的成本可以对于十亿记录数据库大致为$100至$3000。可以通过如上所述调整性能需求而调整这些成本。
图3是根据本公开至少一些实施例设置的、作为数字服务提供者服务器的一个示例的计算装置300的结构图。在非常基本的配置结构301中,计算装置300可以包括一个或多个处理器310和系统存储器320。存储器总线330可以用于在处理器310与系统存储器320之间通信。
取决于所需配置结构,处理器310可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP),或者其任意组合。处理器310可以包括一级或多级高速缓存,诸如一级高速缓存311和可以例如实施了第一存储器201的二级高速缓存,处理器核心313,以及寄存器314。处理器核心313可以包括运算逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心),或者其任意组合。存储器控制器315也可以用于处理器310,或者在一些实施方式中存储器控制器315可以是处理器310的内部部件。
取决于所需配置结构,系统存储器310可以是任何类型,包括但不限于易失性存储器(诸如RAM),非易失性存储器(诸如ROM、闪存等等),或者其任意组合。系统存储器320通常包括操作系统321,一个或多个应用程序322,以及程序数据325。在一些实施例中,操作系统321可以包括由虚拟机管理器(VMM)管理的虚拟机。应用程序322-324可以包括例如性能平衡工具模块323和数据库优化工具模块324。程序数据325可以包括可以分别由应用程序323-324使用的数据326和数据327。
计算装置300可以具有额外的特征或功能,以及额外的接口以促进在基本配置结构301与任何所需装置和接口之间的通信。例如,总线/接口控制器340可以用于促进基本配置结构301与一个或多个数据存储装置350之间经由存储接口总线341的通信。数据存储装置350可以是可移除存储装置351,可以例如实施了第二存储器202的非可移除存储装置,或者其组合。仅列举少数,可移除存储和非可移除存储装置的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘装置,诸如小型盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器,固态驱动器(SSD),以及磁带驱动器。示例性的计算机存储媒介可以包括以用于存储信息的任何方法或技术而实施的易失性和非易失性、可移除和非可移除媒介,诸如计算机可读指令、数据结构、程序模块、或者其他数据。
一级高速缓存311、第一存储器201、系统存储器320、可移除存储装置351、以及第二存储器202是计算机存储媒介的所有示例。计算机存储媒介包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术,CD-ROM、数字通用盘(DVD)或其他光学存储,磁带盒、磁带、磁盘存储或其他磁性存储装置,或者可以用于存储所需信息并且可以由计算装置300访问的任何其他媒介。任何这些计算机存储媒介可以是装置300的一部分。
计算装置300也可以包括接口总线342以用于促进从各个接口装置(例如输出接口、外围接口和通信接口)经由总线/接口控制器340至基本配置结构301的通信。示例性的输出装置360包括图像处理单元361和音频处理单元362,其可以配置用以经由一个或多个A/V端口363而通信至诸如显示器或话筒的各种外部装置。示例性的外围接口370可以包括串行接口控制器371或并行接口控制器372,其可以配置用以通过有线或者无线连接经由一个或多个I/O端口373而与诸如输入装置(例如键盘、鼠标、手写笔、语音输入装置、触摸输入装置等)或其他外围装置(例如打印机、扫描仪等)的外部装置通信。其他传统的I/O装置也可以连接诸如鼠标、键盘等等。示例性通信装置380包括网络控制器381,其可以设置以促进经由一个或多个通信端口382而与在网络通信之上的一个或多个其他计算装置390通信。
计算机存储媒介可以是通信媒介的一个示例。通信媒介可以通常实现为计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的已调制数据信号中其他数据,并且包括任何信息传送媒介。“已调制数据信号”可以是具有以在信号中编码信息的方式设置或者改变其一个或多个特性的信号。借由示例但是并非限定的方式,通信媒介可以包括诸如有线网络或直接有线连接的有线媒介,以及诸如声、射频(RF)、红外(IR)的无线媒介以及其他无线媒介。
计算装置300可以实施作为由第二数字服务提供者102提供的数据中心中的服务器。计算装置300也可以实施作为在任何数目其他上下文中取代了数据库的任何服务器。计算装置300也可以实施作为包括膝上型计算机和非膝上型计算机配置结构的个人或者商用计算机。
图4是示出了根据本公开至少一些实施例设置的、配置用以实施性能平衡的示例性方法的流程图。示例性流程图可以包括由步骤323、400-402以及410-413所示的一个或多个操作/模块,其表示了可以在计算装置300中执行的方法、功能模块和/或可以记录在计算机可读媒介450上指令。所示步骤323、400-402以及410-413可以设置以提供性能平衡工具323的功能操作,包括在步骤400处“查询处理”以及在步骤410处的“索引管理”的一个或多个。步骤400可以包括在步骤401处的“接收查询”以及在步骤402处的“使用第一和第二存储器中索引取回所请求数据记录”。步骤410可以包括在步骤411处“在第一存储器中存储索引”,在步骤412处“激活数据库优化工具”,和/或在步骤413处“在第二存储器中存储索引的一部分/第二索引”。
在图4中,步骤323、400-402和410-413示出作为包括顺序执行的步骤,例如首先步骤400以及最后步骤410。然而应该知晓的是,这些步骤可以为了方便重新设置以适应特定实施例,并且这些步骤或其一部分可以在一些实施例中同时执行。也应该知晓的是在一些示例中,各个步骤可以消除、划分为额外步骤、和/或与其他步骤组合。
图4示出了示例性方法,由第二服务提供者102操作的计算装置300可以由此逐渐的产生优化索引154,而同时从使用第一存储器201中基本索引153转移至使用第二存储器202中优化索引。在一些实施例中,根据图4的方法除了其他之外可以包括由步骤411将配置用于定位数据库152中数据记录的基本索引153存储在与第一性能水平相关的第一存储器201中;由步骤401,接收包括了对于一个或多个数据库152中数据记录的请求的查询;由步骤412激活的数据优化工具324使用对应于接收到的查询修改了基本索引153以配置基本索引153以提供对于接收到查询更快的响应;由步骤413,在与第二性能水平相关的第二存储器202中存储基本索引153的一个或多个部分作为优化索引154,其中第二性能水平低于第一性能水平;由步骤413,当修改基本索引153时,增大了存储作为第二存储器202中优化索引154的基本索引153的一部分;以及由步骤402,响应于所接收的查询取回所请求的数据记录,其中在基本索引153的修改期间,分别使用第一和第二存储器201和202中的基本索引153、154而执行取回,以及其中当第二存储器202中优化索引的部分增大时取回逐渐增多使用第二存储器202中优化索引的部分。
在一些实施例中,根据图4的方法除了其他之外可以包括,由步骤411,在与第一性能水平相关联的第一存储器201中存储配置用于定位数据库152中数据记录的基本索引153;由步骤401,接收包括对于数据库152中一个或多个数据记录请求的查询;由步骤412激活的数据库优化工具构建配置用于定位数据库152中数据记录的第二优化索引154,其中构建优化索引154包括使用对应于已接收查询的查询数据以配置优化索引154以比基本索引153提供对于接收到查询的更快的响应,以及其中优化索引154依照构建而增大尺寸;由步骤413,在与第二性能水平相关联的第二存储器202中存储优化索引154,其中第二性能水平低于第一性能水平;以及由步骤402,响应于接收到的查询取回所请求的数据记录,其中在优化索引154的构建期间,使用基本索引153和优化索引154执行取回,以及其中当优化索引154尺寸增大时取回增多使用优化索引154。
在“性能平衡工具”步骤323中,计算装置300可以配置用以根据导引至数据库152的服务查询而执行所有操作,而此时产生了作为优化索引154的数据库152的性能平衡。步骤323可以包括步骤400和410。
在“查询处理”步骤400中,计算装置300可以配置用以从云客户端接收查询并且做出响应,而同时提供了用于索引优化的查询数据。步骤400可以包括步骤401和402。
在“接收查询”步骤401中,可以配置计算装置300以从云客户端接收查询。接收到的查询可以采取各种形式。在一些实施例中,接收到的查询可以是经由连接了第二服务提供者102与云客户端160的网络而接收的对于数据152的调用请求。在一些实施例中,数据库152可以支持网站,例如电子商务网站,并且查询可以产生作为网站上用户会话的一部分。包括在网站中的服务可以通常调用数据库152。在这些实施例中,步骤401可以包括接收在计算机300或者由第二服务提供者102所提供的另一计算机内产生的查询。步骤401之后可以是步骤402。
在“使用第一和第二存储器中索引取回请求的数据记录”步骤402中,可以配置计算装置300以分别使用第一存储器201和第二存储器202中的基本索引153和优化索引154以从步骤401中接收的查询中所请求的数据库取回数据记录。
在一些实施例中,可以配置步骤410以维持建立了哪个查询引导至基本索引153以及哪个查询引导至优化索引154的索引路由表,如下所述。可以配置步骤402以确定接受到查询的查询类型,以及涉及索引路由表以确定所使用的合适的索引。在一些实施例中,查询类型可以对应于由索引153和154所覆盖的数据库152的一部分。可以配置步骤402以使用合适的索引以从数据库152取回所请求的数据记录,以及响应于例如云客户端160或者另一请求进程,通过提供取回到的数据记录。当优化索引154尺寸增大时,可以更新索引路由表以引导更多查询至优化索引154。
在一些实施例中,可以配置步骤402以不论查询类型而引导所有查询的一些部分至基本索引153,以及不论查询类型而引导所有查询的一些部分至优化索引154。当优化索引154尺寸增大时,可以配置步骤402以引导所有查询的较大比例至优化索引154。
在一些实施例中,可以配置步骤400以测量在步骤401中接收查询与步骤402中取回所请求数据记录之间查询响应时间和/或索引查表的数目(也在此称作索引调用)。步骤400可以进一步配置以采用查询类型校正测得的查询响应时间/索引调用的数目。特别地,步骤400可以采用优化索引154或基本索引153是否用于服务查询而校正测得的查询响应时间/查询调用数目。查询处理性能数据可以提供由如下所述索引管理410使用。步骤410可以跟随步骤400。
在“索引管理”步骤410,可以配置计算装置300以管理分别存储在第一和第二存储器201、202中的索引153、154。步骤410可以包括步骤411-413。
在“在第一存储器中存储索引”步骤411中,一旦初始接收了数据库152,可以配置计算装置300以在第一存储器201中存储基本索引153。步骤412可以跟随步骤411。
在“激活数据库优化工具”步骤412中,可以配置计算装置300以激活数据库优化工具324以使用接收到的查询以优化查询响应时间而开始优化基本索引153和/或从零开始形成第二索引。在一些实施例中,可以配置步骤412以修改步骤402以向数据库优化工具324提供查询数据。步骤413可以跟随步骤412。
在“在第二存储器中存储索引的一部分/第二索引”步骤413中,在一些实施例中,可以配置计算装置300以在第二存储器202中存储基本索引153的一部分作为优化索引154。在一些实施例中,可以配置步骤413以例如通过数据库优化工具324的操作而确定基本索引153的哪个部分优化。可以配置步骤413以与数据库优化工具324通信以确定已经优化了基本索引153的哪些部分。可以配置步骤413以在第二存储器202中存储基本索引153的优化部分作为优化索引154,以使得优化索引154包括了配置用于提供对于接收到查询的更快速响应的基本索引153的修改部分。
在一些实施例中,可以配置步骤413以比基本索引153的剩余部分采用较少索引调用或者较短时间确定配置基本索引153的哪些部分以定位数据记录,以及移动那些部分至第二存储器202中的优化索引154。例如,在一些实施例中,可以配置步骤413以当配置基本索引153的这些部分以采用5个或更少索引调用而定位数据记录时、或者当这些部分另外满足包括索引调用的可允许数目的性能需求时在第二存储器202中存储了基本索引153的一部分作为优化索引154。在一些实施例中,可以配置步骤413以当基本索引153的这些部分配置用以在50毫秒或更短时间内定位数据记录时、或者当这些部分另外满足了包括可允许取回时间的性能需求时在第二存储器202中存储了基本索引153的一部分作为优化索引154。
在步骤413的一些实施例中,可以配置计算装置300以在第二存储器202中存储优化索引154作为独立的第二索引,而不是从基本索引153的一部分构建优化索引154。可以配置第二优化索引154以采用比第一基本索引153更少索引调用和/或更短时间而定位数据记录。例如,可以配置优化索引154以采用5或者更少查表以定位数据记录,或者另外以满足查表性能需求的查表数目。可以配置第二索引以在50毫秒或更短时间内在数据库152中定位数据记录,或者另外在满足速度性能需求的时间内。以下结合图5描述步骤413的其他特征方面。
图5是示出了根据本公开至少一些实施例设置的、在与性能平衡相关的第二存储器中存储了索引的一部分和/或第二索引的示例性方法的流程图。示例性流程图可以包括由步骤413和501-504所示的一个或多个操作/模块,其表示可以在计算装置300中执行的方法、功能模块的操作,和/或可以记录在计算机可读媒介450上的指令,如图4所示。可以设置所示步骤413和501-504以提供在第二存储器中存储索引的一部分和/或第二索引的功能性操作413,包括在步骤501处“收集查询处理性能数据”、在步骤502处“比较性能数据与性能需求”、在步骤503处“性能数据满足或者超出性能需求:移动索引一部分至第二存储器/引导额外查询至第二存储器”、以及在步骤504处“性能数据未满足性能需求:移动索引一部分至第一存储器/引导额外的查询至第一存储器”的一个或多个。
在图5中,步骤413和501-504示出为包括顺序执行的步骤,例如首先步骤501并且最后步骤503或504。然而需要知晓的是,这些步骤为了方便重新设置以适用于特定实施例,并且这些步骤或其一部分可以在一些实施例中同时执行。也应该知晓的是,在一些示例中,各个步骤可以消除、划分为额外步骤、和/或与其他步骤组合。
图5示出了示例性方法,由此可以配置计算装置300以实施根据图4步骤413的在第二存储器202中存储基本索引153的一部分和/或第二索引。
在“收集查询处理性能数据”步骤501中,可以配置计算装置300以收集查询处理性能数据,例如哪些数据可以由如上所述步骤400提供。查询处理性能数据可以包括查询响应时间,以及在查询响应时间与优化索引154或基本索引153的使用之间的相互关系。在一些实施例中,查询处理性能数据可以进一步包括识别了用于对查询响应的索引的特定部分的信息。步骤502可以跟随步骤501。
在“比较性能数据与性能需求”步骤502中,可以配置计算装置300以将步骤501中收集的数据与性能需求作比较。在一些实施例中,可以不论索引而对于所有查询建立例如50ms或更短的单个查询响应时间性能需求。在一些实施例中,可以对于不同索引建立不同新年功能需求,并且可以配置步骤502以将步骤501中收集的数据与用于服务对应查询的索引的性能需求作比较。步骤503或504可以跟随步骤502。
在“性能数据满足或超过性能需求:移动部分索引至第二存储器/引导额外查询至第二存储器”步骤503中,在一些实施例中,可以配置计算装置300以当在步骤502中确定了查询处理性能数据满足或者超过性能需求时将基本索引153的一部分移动至第二存储器202。例如,当查询处理性能数据指示在30ms内服务查询并且用于查询的性能需求为50ms或更短时,查询处理性能数据超过了性能需求而比性能需求更快,以及对应于查询的基本索引153的一部分可以移动至第二存储器202。在一些实施例中,可以配置计算装置300以当步骤502中确定了查询处理性能数据满足或者超过性能需求时引导额外的查询至第二存储器202。例如,当查询处理性能数据指示了用于优化索引154的平均总查询响应时间满足或者超过性能需求时,可以配置步骤503以引导额外的查询至第二存储器202中优化索引154。例如,如果用于优化索引154的平均总查询响应时间为49ms并且对于平均总查询响应时间的性能需求为50ms或更短,查询处理性能数据超过了性能需求而快于性能需求,并且可以配置步骤503以引导额外查询至第二存储器202中的优化索引154。
在“性能数据并未满足性能需求:移动一部分索引至第一存储器/引导额外查询至第一存储器”步骤504中,在一些实施例中,可以配置计算装置300以当在步骤502中确定了查询处理性能数据并未满足性能需求时将优化索引154的一部分移动返回至第一存储器201。例如,当查询处理性能数据指示了在60ms内服务查询并且对于查询的性能需求是50ms或更少时,查询处理性能数据并未满足性能需求而是慢于性能需求,并且对应于查询的优化索引154的一部分可以移动至第二存储器202。在一些实施例中,可以配置计算装置300以当在步骤502中确定了查询处理性能数据并未满足性能需求时引导额外的查询至第一存储器201。例如,当查询处理性能数据指示了对于优化索引154的平均总查询响应时间并未满足性能需求时,可以配置步骤503以引导额外的查询至第一存储器201中的基本索引153。例如,如果对于优化索引154的平均总查询响应时间为51ms,并且对于平均总查询响应时间的性能需求是50ms或更少,查询处理性能数据并未满足性能需求而是慢于性能需求,并且可以配置步骤503以引导额外的查询至第一存储器201中的基本索引153。
步骤501-504可以在任何时间间隔下执行。在一些实施例中,可以根据例如每隔10秒的时间间隔而执行步骤501-504。在一些实施例中,可以根据例如每个100,000个查询的查询间隔而执行步骤501-504。在一些实施例中,可以每次由数据库优化工具324修改优化索引154时执行步骤501-504。
在一些实施例中,可以配置步骤413以维持建立了哪些查询引导至基本索引153以及哪些查询引导至优化索引154的索引路由表,以由如上所述查询处理步骤400所使用。例如,可以配置步骤413以每次移动基本索引153的一部分至优化索引154时更新索引路由表。在一些实施例中,索引路由表可以使得查询类型与索引153或154相关。在一些实施例中,查询路由表可以使得数据库152的查询部分与索引153或154相关。
图6是示出了根据本公开的至少一些实施例设置的、配置用于在数据库优化工具324操作期间实施性能平衡的示例性方法的流程图。示例性流程图可以包括由步骤323、401、402、413和324所示的一个或多个操作/模块,其表示了如在计算装置300中方法、功能模块中执行的操作,和/或如可以记录在计算机可读媒介450上的指令,如图4所示。可以设置所示步骤323、401、402、413和324以在数据库优化工具324的操作期间根据步骤323提供性能平衡的功能操作。步骤323可以包括在步骤401处“接收查询”、在步骤402处“使用第一和第二存储器中索引接收所请求数据记录”、和/或在步骤413处“在第二存储器中存储索引的一部分/第二索引”的一个或多个。
在图6中,步骤401、402和413示出作为包括了顺序执行的步骤,例如具有开始的步骤401和最后的步骤413。然而应该知晓的是,这些步骤为了方便可以重新设置以适应于特定实施例,并且这些步骤或其一部分可以在一些实施例中同时执行。也应该知晓的是,在一些示例中,多个步骤可以消除、划分为额外步骤、和/或与其他步骤组合。
图6示出了示例性方法,由此可以配置计算装置300以在根据步骤411在第一存储器201中存储基本索引153之后、以及在根据步骤412激活了数据库优化工具324之后执行性能平衡。在一些实施例中,在数据库优化工具324的连续操作期间,步骤401、402和413可以重复在基本上连续循环中,例如步骤413可以评估性能并且确定是否移动基本索引153的一部分,或者在服务了每个查询之后更换查询路由。在一些实施例中,在数据库优化工具324的连续操作期间,步骤401和402可以操作以服务所有引入的查询,并且步骤413可以以如上所述间隔操作。图6中所示每个步骤如上所述。
图7是示出了根据本公开至少一些实施例设置的示例性的资源过度提供与时间性能随时间变化的示意图。图7示出了初始具有低索引性能的高过度供应。随着时间变化,随着使用优化索引154而改进了索引性能,并且因此可以减小过度供应。
图7中索引性能曲线也可以视作查询取样曲线,因为索引性能随着用于索引优化的查询取样的数目而改进。当第二数字服务提供者102构建了查询取样的历史时,可以配置第二数字服务提供者102以降低资源过度供应以提供基本上恒定的性能水平。可以使用如在此所述的拆分媒介索引存储方案实施过度供应,以使得使用了高性能存储器资源的相对低质量索引的性能基本上匹配了使用低性能存储器的相对高质量索引的性能,高质量、低成本索引作为更高质量索引在构建中,由此当发生图7中转变时归一化了性能随时间的变化。
图8是示出了根据本公开至少一些实施例设置的用于从数据库取回数据记录的多个索引查表/索引调用的示意图。图8示出了具有多个索引表的示例性关键数值存储。第三表803可以包括一个或多个关键数值的真实位置;然而可以访问形式为第二表802和第一表801的、在第三表803之上的多层元数据树以便于正确地访问第三表803。较低的优化索引通常表明了更大的元数据表具有树中的多层,导致更多的索引读取以找到数据库中目标数据记录的最后地址。例如,对于完全原始索引而言普通的是具有8-10个表深度,而良好设计的索引可以组织为首先具有最独特的关系式,并且采用聪明的多种覆盖率可以通常能够使用1-2个表格/索引调用而定位记录(至少在其中剩余的可以算法排列的组块级别下)。
在系统的特征方面的硬件和软件实施方式之间几乎没有差别;硬件或软件的使用通常(但并非总是,其中在某些上下文中硬件和软件之间的选择可以变得重要)是表示了成本与效率权衡的设计选择。有在此所述的处理器和/或系统和/或其他技术(例如硬件、软件和/或固件)可以影响的各种手段,以及优选的手段将随着其中配置了处理器和/或系统和/或其他技术的上下文而变化。例如,如果实施者确定速度和精度是极为重要的,实施者可以主要选取硬件和/或固件手段;如果灵活性是极为重要的,实施者可以主要选择软件实施方式;或者再次备选地,实施者可以选取硬件、软件和/或固件的一些组合。
之前详述说明书经由使用结构图、流程图和/或示例列举了装置和/或工序的各个实施例。在包含一个或多个功能和/或操作的这些结构图、流程图和/或示例的范围内,本领域技术人员应该理解的是这些结构图、流程图或示例内的每个功能和/或操作可以由大量硬件、软件、固件或其任何虚拟组合而单独地和/或共同地实施。在一些实施例中,在此所述的主题的多个部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其他集成形式来实施。然而,本领域技术人员将认识的是,在此所述实施例的一些特征方面全部或者部分地可以等价地实施在集成电路中,作为在一个或多个计算机上运行的一个或多个计算机程序(例如作为在一个或多个计算机系统上运行的一个或多个程序),作为在一个或多个处理器上运行的一个或多个程序(例如作为在一个或多个微处理器上运行的一个或多个程序),作为固件,或者作为其虚拟的任意组合,并且设计电路和/或对于软件和或固件编写代码将恰好在受到本公开教导的本领域技术人员的能力范围内。此外,本领域技术人员将知晓的是在此所述的主题的机制能够以大量各种形式发布作为程序产品,并且应用在此所述的主题的示例性实施例而不论用于实际执行发布的信号承载媒介的特定类型。信号承载媒介的示例包括但不限于以下:诸如软盘、硬盘驱动(HDD)、小型盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等等的可记录类型媒介;以及诸如数字和/或模拟通信媒介的传输类型媒介(例如光纤电缆、波导、有线通信链路、无线通信链路等等)。
本领域技术人员将知晓的是在本领域内通常以在此列出的方式描述装置和/或方法,并且此后使用工程设计实践以将这些所述装置和/或方法集成至数据处理系统中。也即,在此所述的装置和/或方法的至少一部分可以经由合理量的试验而集成至数据处理系统中。本领域技术人员将知晓的是典型的数据处理系统通常包括系统单元外壳、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统的计算实体、驱动器、图形用户界面、以及应用程序、诸如触摸垫或触摸屏的一个或多个交互装置、和/或包括反馈回路以及控制电动机的控制系统(例如用于感测位置和/或速率的反馈;用于移动和/或调整部件和/或数量的电动机)的一个或多个。典型的数据处理系统可以采用任何合适的商业可获得部件实施,诸如在数据计算/通信和/或网络计算/通信系统中找到的那些。在此所述主题有时示出了包含在不同其他部件内或者与其连接的不同部件。应该理解的是,这些所示体系架构仅仅是示例并且实际上可以实施实现了相同功能的许多其他体系架构。在概念意义上,用以实现相同功能任何部件设置是有效地“关联的”,以使得实现所需功能。因此,在此组合以实现特定功能的任何两个部件可以视作相互“关联”以使得实现所需功能,而不论体系架构或中间部件。同样地,如此关联的任何两个部件也可以视作相互“可操作地连接”或者“可操作地耦合”以实现所需功能,并且能够如此关联的任何两个部件也可以视作相互“可操作地可耦合”以实现所需功能。可操作地可耦合的具体示例包括但不限于物理配对和/或物理交互作用的部件,和/或无线可交互的和/或无线交互作用的部件,和/或逻辑交互和/或逻辑可交互的部件。
关于在此基本上任何复数和/或单数术语的使用,当对于语境和/或申请合适时,本领域技术人员可以从复数转换至单数和/或从单数转换至复数。为了简明起见在此仅仅列出了各个单数/复数的排列。
本领域技术人员应该理解的是通常在此、特别是在所附权利要求(例如所附权利要求的实体)中使用的术语通常意在作为“开放式”术语(例如术语“包括”应该解释为“包括但是不限于”,术语“具有”应该解释为“至少具有”,术语“包含”应该解释为“包含但是不限于”等等)。本领域技术人员应该进一步理解的是如果引入的权利要求陈述的具体数目是有意的,这种意图将明确地陈述在权利要求中,并且在没有这种陈述的情形下不存在这种意图。例如,作为对理解的帮助,以下所附权利要求可以包含引入性短语“至少一个”和“一个或多个”的使用以引入权利要求陈述。然而,这些短语的使用不应构造为暗示通过不定冠词“一”而对权利要求陈述的引入将包含这些引入的权利要求陈述的任何特定权利要求限定为仅包含一个这种陈述的实施例,即便当相同权利要求包括引入性短语“一个或多个”或“至少一个”以及诸如“一”的不定冠词时(例如“一”应该解释为意味着“至少一个”或“一个或多个”);同理适用于对用于引入权利要求陈述项的定冠词的使用。此外,即便明确地陈述了引入的权利要求陈述项的具体数目,本领域技术人员将认识到的是这些陈述应该解释为意味着至少具有所述数目(例如仅陈述了“两个陈述项”而没有其他修饰,意味着至少两个陈述项,或者两个或更多陈述项)。此外,在那些其中使用了惯用类比“A、B和C等等的至少一个”的情形中,通常这种构造意在使得本领域技术人员将理解这种习惯使用(例如“具有A、B和C的至少一个的系统”将包括但不限于具有单独A、单独B、单独C、A和B一起、A和C一起、B和C一起、和/或A、B和C一起等等的系统)。本领域技术人员将进一步理解的是不论在说明书、权利要求书或附图中,事实上表示两个或多个备选性项目的任何分离性词语和/或短语应该理解为预期了包括一个项目、任何项目、或者所有项目的可能性。例如,短语“A或B”应该理解为包括“A”或“B”或“A和B”的可能性。
尽管在此使用各个方法和系统已经描述并且示出了某些示例性技术,本领域技术人员应该理解的是可以不脱离请求保护的主题而可以做出多个其他修改例并且可以替换等价形式。此外,可以不脱离在此所述的中心概念而做出许多修改例以适用在请求保护主题教导下的特定情形。因此,请求保护的主题意在并非限定于所述特定示例,而是这些请求保护的主题也可以包括落入所附权利要求范围内的所有实施方式及其等价形式。

Claims (18)

1.一种方法,其包括:
在与第一性能水平相关联的第一存储器中存储配置用于在数据库中定位数据记录的基础数据库索引,其中所述基础数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
建立优化数据库索引,所述优化数据库索引配置为在所述数据库中定位数据记录,其中所述优化数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
将所述优化数据库索引存储在与第二性能水平相关的第二存储器中,其中所述第二性能水平低于所述第一性能水平,并且所述第一性能水平比所述第二性能水平更高;
在建立所述优化数据库索引的过程中,逐渐从采用所述第一存储器中的基础数据库索引来在所述数据库中定位数据记录转移为采用所述第二存储器中的所述优化数据库索引来在所述数据库中定位数据记录,由此对于数据库的索引覆盖率由所述第一存储器中的所述基础数据库索引所控制,逐渐转变至对于数据库的索引覆盖率由在所述第二存储器中的所述优化数据库索引控制;
其中,建立所述优化数据库索引包括:
接收包括对于所述数据库中一个或多个所述数据记录的请求的查询,以及使用对应于所接收到的查询的查询数据修改所述基础数据库索引,以配置所述优化数据库索引从而提供对于所接收到的查询更快的响应。
2.根据权利要求1所述的方法,其中,所述优化数据库索引配置为以比所述基础数据库索引采用更少的查表或者更短时间定位数据记录。
3.根据权利要求2所述的方法,其中,所述优化数据库索引配置为以5次或更少次数查表定位数据记录。
4.根据权利要求2所述的方法,其中所述优化数据库索引配置为以50毫秒或者更短时间定位数据记录。
5.根据权利要求1所述的方法,进一步包括:
测量涉及使用所述基础数据库索引的部分取回所请求的数据记录的时间或者查表的数目;
将所述时间或者查表的数目与性能需求作比较;以及
当所述时间或者查表的数目满足所述性能需求时,将所述基础数据库索引的部分移动至所述优化数据库索引。
6.根据权利要求1所述的方法,其中,所述数据记录与数字服务提供者的客户相关联,并且其中所述方法进一步包括,由所述数字服务提供者从之前的数字服务提供者接收所述数据记录,而未伴随有查询历史数据。
7.根据权利要求1所述的方法,进一步包括,停止在所述第一存储器中的所述基础数据库索引,以及随后使用在所述第二存储器中的所述优化数据库索引取回所请求的数据记录,以停止与响应对于所述数据库中数据记录的查询有关的对所述第一存储器的使用。
8.根据权利要求1所述的方法,其中,所述第一存储器包括缓存型存储器。
9.根据权利要求1所述的方法,其中,所述第二存储器包括盘型存储器。
10.根据权利要求1所述的方法,其中,在逐渐从使用所述基础数据库索引转移为使用所述优化数据库索引的同时,响应于所接收到的查询而取回所请求的数据记录的响应时间维持大致恒定。
11.根据权利要求1所述的方法,其中,由数据库索引优化工具执行所述使用对应于接收到的查询的查询数据而修改所述基础数据库索引以配置所述优化数据库索引从而提供对于所接收到的查询更快的响应。
12.一种装置,其包括:
第一存储单元,用于在与第一性能水平相关联的第一存储器中存储配置用以在数据库中定位数据记录的基础数据库索引,其中所述基础数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
建立单元,用于建立优化数据库索引,所述优化数据库索引配置为在所述数据库中定位数据记录,其中所述优化数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
第二存储单元,将所述优化数据库索引存储在与第二性能水平相关的第二存储器中,其中所述第二性能水平低于所述第一性能水平,并且所述第一性能水平比所述第二性能水平更高;
转移单元,用于在建立所述优化数据库索引的过程中,逐渐从采用所述第一存储器中的基础数据库索引来在所述数据库中定位数据记录转移为采用所述第二存储器中的所述优化数据库索引来在所述数据库中定位数据记录,由此对于数据库的索引覆盖率由所述第一存储器中的所述基础数据库索引所控制,逐渐转变至对于数据库的索引覆盖率由在所述第二存储器中的所述优化数据库索引控制;
其中所述建立单元被配置为:
接收包括对于所述数据库中一个或多个所述数据记录的请求的查询,并且通过使用对应于所接收到的查询的查询数据修改所述基础数据库索引以配置所述优化数据库索引从而提供对于接收到的查询更快的响应。
13.一种服务器计算机,包括:
处理器;
存储器;以及
数据库性能平衡工具,其存储在所述存储器中并且可由所述处理器执行,其中配置所述数据库性能平衡工具以:
在与第一性能水平相关联的第一存储器中存储配置用于在数据库中定位数据记录的基础数据库索引,其中所述基础数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
建立优化数据库索引,所述优化数据库索引配置为在所述数据库中定位数据记录,其中所述优化数据库索引包括用于在所述数据库中定位所述数据记录的关键数值;
将所述优化数据库索引存储在与第二性能水平相关的第二存储器中,其中所述第二性能水平低于所述第一性能水平,并且所述第一性能水平比所述第二性能水平更高;
在建立所述优化数据库索引的过程中,逐渐从采用所述第一存储器中的基础数据库索引来在所述数据库中定位数据记录转移为采用所述第二存储器中的所述优化数据库索引来在所述数据库中定位数据记录,由此对于数据库的索引覆盖率由所述第一存储器中的所述基础数据库索引所控制,逐渐转变至对于数据库的索引覆盖率由在所述第二存储器中的所述优化数据库索引控制;
其中所述数据库性能平衡工具配置为接收包括对于所述数据库中一个或多个数据记录的请求的查询,以及通过使用对应于所接收到的查询的查询数据修改所述基础数据库索引以配置所述优化数据库索引从而提供对于接收到的查询更快的响应。
14.根据权利要求13所述的服务器计算机,所述优化数据库索引配置为以比所述基础数据库索引采用更少的查表或者更短时间定位数据记录。
15.根据权利要求13所述的服务器计算机,其中,配置所述数据库性能平衡工具以:
测量涉及通过使用所述基础数据库索引的部分取回所请求的数据记录的时间或者查表的数目;
将所述时间或查表的数目与性能需求作比较;以及
当所述时间或查表的数目满足所述性能需求时,将所述基础数据库索引的部分移动至所述优化数据库索引。
16.根据权利要求13所述的服务器计算机,其中,所述数据记录与数字服务提供者的客户相关联,以及其中配置所述数据库性能平衡工具以由所述数字服务提供者从之前的数字服务提供者接收所述数据记录,而未伴随有查询历史数据。
17.根据权利要求13所述的服务器计算机,其中,配置所述数据库性能平衡工具以停止在所述第一存储器中的所述基础数据库索引,以及随后通过使用在所述第二存储器中的所述优化数据库索引取回所请求的数据记录,以停止与响应对于所述数据库中数据记录的查询有关的对所述第一存储器的使用。
18.根据权利要求13所述的服务器计算机,其中,所述第一存储器包括缓存型存储器以及所述第二存储器包括盘式存储器。
CN201280072711.9A 2012-04-27 2012-04-27 用于数据库索引的多个可变覆盖率存储器 Expired - Fee Related CN104246728B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/035559 WO2013162607A1 (en) 2012-04-27 2012-04-27 Multiple variable coverage memory for database indexing

Publications (2)

Publication Number Publication Date
CN104246728A CN104246728A (zh) 2014-12-24
CN104246728B true CN104246728B (zh) 2018-04-17

Family

ID=49478263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280072711.9A Expired - Fee Related CN104246728B (zh) 2012-04-27 2012-04-27 用于数据库索引的多个可变覆盖率存储器

Country Status (3)

Country Link
US (1) US10467212B2 (zh)
CN (1) CN104246728B (zh)
WO (1) WO2013162607A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140046653A1 (en) * 2012-08-10 2014-02-13 Xurmo Technologies Pvt. Ltd. Method and system for building entity hierarchy from big data
US9141665B1 (en) * 2012-08-13 2015-09-22 A9.Com, Inc. Optimizing search system resource usage and performance using multiple query processing systems
KR102310246B1 (ko) * 2014-04-23 2021-10-08 삼성전자주식회사 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
CN107408060B (zh) 2015-03-17 2020-10-16 华为技术有限公司 一种数据处理的方法及装置
US20160378822A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Automated recommendation and creation of database index
CN106547805A (zh) * 2015-09-23 2017-03-29 北京奇虎科技有限公司 优化数据库索引的方法和装置
US20180364937A1 (en) * 2017-06-20 2018-12-20 Samsung Electronics Co., Ltd. System and method for managing memory device
CN111444184A (zh) * 2020-03-25 2020-07-24 北京奇艺世纪科技有限公司 数据存储方法、存储调度服务器、电子设备及存储介质
US20240012761A1 (en) * 2022-07-08 2024-01-11 Realtek Semiconductor Corp. Data Accessing Method and Data Accessing System Capable of Providing High Data Accessing Performance and Low Memory Utilization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1216841A (zh) * 1997-10-31 1999-05-19 国际商业机器公司 用于索引和检索的多维数据聚类和降维
CN1708757A (zh) * 2002-12-23 2005-12-14 国际商业机器公司 透明网络边缘数据高速缓存
CN101218557A (zh) * 2005-07-05 2008-07-09 国际商业机器公司 用于存储器迁移的系统和方法
CN101828182A (zh) * 2007-09-21 2010-09-08 哈索-普拉特纳-研究所软件系统有限责任公司 报告oltp数据的无etl零冗余系统和方法
CN101990666A (zh) * 2008-04-08 2011-03-23 泊斯达尔有限责任公司 数据文件转发存储和搜索

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028506A1 (en) 2001-06-29 2003-02-06 Lin Yu Deferred index building systems, methods and computer program products for storing temporally spaced apart bursts of data records in a database
DE10308851A1 (de) * 2003-02-27 2004-09-30 Software Engineering Gmbh Echtzeitwartung einer relationalen Datenbank
US7380039B2 (en) 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US20050198062A1 (en) * 2004-03-05 2005-09-08 Shapiro Richard B. Method and apparatus for accelerating data access operations in a database system
US7685109B1 (en) * 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
US8732139B2 (en) * 2008-12-18 2014-05-20 Sap Ag Method and system for dynamically partitioning very large database indices on write-once tables
US9201882B2 (en) 2009-08-17 2015-12-01 Verizon Patent And Licensing Inc. Provisioning configuration changes to a content player device
US20110264668A1 (en) 2010-04-27 2011-10-27 Salesforce.Com, Inc. Methods and Systems for Providing Secondary Indexing in a Multi-Tenant Database Environment
US8984269B2 (en) * 2011-02-28 2015-03-17 Red Hat, Inc. Migrating data among cloud-based storage networks via a data distribution service

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1216841A (zh) * 1997-10-31 1999-05-19 国际商业机器公司 用于索引和检索的多维数据聚类和降维
CN1708757A (zh) * 2002-12-23 2005-12-14 国际商业机器公司 透明网络边缘数据高速缓存
CN101218557A (zh) * 2005-07-05 2008-07-09 国际商业机器公司 用于存储器迁移的系统和方法
US7669026B2 (en) * 2005-07-05 2010-02-23 International Business Machines Corporation Systems and methods for memory migration
CN101828182A (zh) * 2007-09-21 2010-09-08 哈索-普拉特纳-研究所软件系统有限责任公司 报告oltp数据的无etl零冗余系统和方法
CN101990666A (zh) * 2008-04-08 2011-03-23 泊斯达尔有限责任公司 数据文件转发存储和搜索

Also Published As

Publication number Publication date
CN104246728A (zh) 2014-12-24
WO2013162607A1 (en) 2013-10-31
US10467212B2 (en) 2019-11-05
US20130290343A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN104246728B (zh) 用于数据库索引的多个可变覆盖率存储器
US10983994B2 (en) Partition access method for query optimization
US9330141B2 (en) Federated query engine for federation of data queries across structure and unstructured data
CN108363746B (zh) 一种支持多源异构数据的统一sql查询系统
CN1705945B (zh) 提供查询的属性的方法和系统
US8380738B2 (en) System and methods for database distribution and querying over key-based scalable storage
EP3901781A1 (en) Background format optimization for enhanced sql-like queries in hadoop
CN100465953C (zh) 用逻辑模型查询物理字段或处理抽象查询的方法及系统
US11157466B2 (en) Data templates associated with non-relational database systems
US20110238709A1 (en) Extending database tables in a multi-tenant environment
CN109074384A (zh) 对上下文元数据排名以生成相关数据见解
US11379523B2 (en) Method and apparatus for implementing a search index generator
KR20150010655A (ko) 데이터를 모델링하기 위한 시스템 및 방법
WO2008068114A1 (en) Workflow processing system and method with federated database system support
US20220365933A1 (en) Database processing method and apparatus
CN110309171A (zh) 数据库查询方法、服务器和系统
CN103678425B (zh) 多系统的集成分析
US9342545B2 (en) Using a partially built index in a computer database system
US9292572B2 (en) Database index profile based weights for cost computation
CN109783498A (zh) 数据处理方法及装置、电子设备、存储介质
US20230153300A1 (en) Building cross table index in relational database
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
CN105518672A (zh) 跨多个模型的数据检索
US20210311942A1 (en) Dynamically altering a query access plan
JP2023535608A (ja) ミドルウェアによって生成されたレコードの直接的なデータローディング

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180417

Termination date: 20200427

CF01 Termination of patent right due to non-payment of annual fee