云数据库的弹性列式缓存的制作方法

文档序号:33459179发布日期:2023-03-15 03:17阅读:29来源:国知局
云数据库的弹性列式缓存的制作方法

1.本公开涉及用于云数据库的弹性列式缓存。


背景技术:

2.云数据库的尺寸通常很大,并且以行为主的格式存储。也就是说,行的元素被连续地存储在存储器中(即,连续地)。然而,数据请求(例如,来自用户)通常是以列为中心的。例如,用户请求数据库中的每个雇员的雇员标识(即,数据列)。在这种情况下,以行为主的的格式的存储显着地影响响应速度,因为所需数据在存储器中的大量位置上被分开。为了解决这一问题,云数据库通常实现列式缓存。该缓存以列为主的格式存储数据库的一列或多列。列式缓存的尺寸以及哪些列被存储在缓存中通常是静态的,并且需要重新引导来改变。


技术实现要素:

3.本发明的一个方面提供一种用于提供弹性列式缓存的方法。所述方法包括在数据处理硬件处接收缓存配置信息,所述缓存配置信息指示与用户相关联的缓存的最大尺寸和递增尺寸。缓存被配置为存储被存储在与所述数据处理硬件通信的存储器硬件上的表的一部分。该表以行为主的格式存储在存储器硬件上,并包括多个列和多个行。该方法还包括由数据处理硬件以列为主的格式在与用户相关联的缓存中缓存表的多个列的子集。该方法包括在数据处理硬件处接收多个数据请求。每个数据请求请求访问存储在所述存储器硬件上的所述表,并且与要求访问所述表的所述多个列中的一个或多个列的对应访问模式相关联。
4.该方法包括,当在数据处理硬件上执行一个或多个工作负载时,并且对于表的多个列中的每一列,由数据处理硬件基于与多个数据请求中的每一个相关联的对应访问模式来确定指示在预定时间段访问对应列的次数的访问频率。该方法还包括由数据处理硬件基于访问模式、缓存的最大尺寸和缓存的递增尺寸,实时地动态调整以列为主的格式缓存的多个列的子集。
5.本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,动态地调整以列为主的格式缓存的多个列的子集包括从缓存中的多个列的子集移除一个或多个列。被移除的一个或多个列与满足收缩访问频率阈值的访问频率相关联。可选地,动态地调整以列为主的格式缓存的多个列的子集包括将一个或多个列添加到缓存中的多个列的子集。所添加的一个或多个列与满足扩展访问频率阈值的访问频率相关联。
6.在一些示例中,列为主的格式包括行为主的格式的虚拟水平分区。缓存所述多个列的子集可以包括生成一个或多个表片段,每个表片段包括所述表的所述多个列中的一个或多个的相应部分。在一些实现中,缓存包括可由在数据处理硬件上执行的一个或多个工作负载访问的共享存储器。
7.动态调整以列为主的格式缓存的多个列的子集可以包括动态调整以列为主的格式缓存的多个列的子集,而不重新启动一个或多个工作负载中的任何一个。在一些实例中,
动态地调整以列为主的格式缓存的多个列的子集包括以下之一:将缓存的尺寸增加等于递增尺寸的量,或将缓存的尺寸减小等于递增尺寸的量。
8.可选地,该方法还包括,在通过将缓存的尺寸增加等于递增尺寸的量来动态地调整多个列的子集之前,由数据处理硬件确定将缓存增加等于递增尺寸的量是否超过最大尺寸。当将缓存增加等于递增尺寸的量将超过最大尺寸时,该方法包括通过数据处理硬件拒绝增加缓存的尺寸。在一些实现中,缓存包括多个段,并且动态地调整以列为主的格式缓存的多个列的子集包括基于访问模式将列一起分组在段中。基于访问模式将列分组在段中可以包括将不经常访问的列分组在一起。
9.本发明的另一方面提供一种用于弹性列式缓存的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当指令在数据处理硬件上执行时使数据处理硬件执行操作。所述操作包括接收缓存配置信息,所述缓存配置信息指示与用户相关联的缓存的最大尺寸和递增尺寸。缓存被配置为存储被存储在与数据处理硬件通信的存储器硬件上的表的一部分。该表以行为主的格式存储在存储器硬件上,并包括多个列和多个行。所述操作还包括以列为主的格式在与所述用户相关联的缓存中缓存所述表的所述多个列的子集。所述操作包括接收多个数据请求。每个数据请求请求访问存储在所述存储器硬件上的所述表,并且与要求访问所述表的所述多个列中的一个或多个列的对应访问模式相关联。
10.所述操作包括,当在数据处理硬件上执行一个或多个工作负载时,并且对于表的多个列中的每一列,基于与多个数据请求中的每一个相关联的对应访问模式,确定指示在预定时间段访问对应列的次数的访问频率。所述操作还包括基于访问模式、缓存的最大尺寸和缓存的递增尺寸来实时地动态调整以列为主的格式缓存的多个列的子集。
11.该方面可以包括一个或多个以下可选特征。在一些实现中,动态地调整以列为主的格式缓存的多个列的子集包括从缓存中的多个列的子集移除一个或多个列。被移除的一个或多个列与满足收缩访问频率阈值的访问频率相关联。可选地,动态地调整以列为主的格式缓存的多个列的子集包括将一个或多个列添加到缓存中的多个列的子集。所添加的一个或多个列与满足扩展访问频率阈值的访问频率相关联。
12.在一些示例中,列为主的格式包括行为主的格式的虚拟水平分区。缓存所述多个列的子集可以包括生成一个或多个表片段,每个表片段包括所述表的所述多个列中的一个或多个的相应部分。在一些实现中,缓存包括可由在数据处理硬件上执行的一个或多个工作负载访问的共享存储器。
13.动态调整以列为主的格式缓存的多个列的子集可以包括动态调整以列为主的格式缓存的多个列的子集,而不重新启动一个或多个工作负载中的任何一个。在一些实例中,动态地调整以列为主的格式缓存的多个列的子集包括以下之一:将缓存的尺寸增加等于递增尺寸的量,或将缓存的尺寸减小等于递增尺寸的量。
14.可选地,所述操作还包括,在通过将缓存的尺寸增加等于递增尺寸的量来动态地调整多个列的子集之前,确定将缓存增加等于递增尺寸的量是否超过最大尺寸。当将缓存增加等于递增尺寸的量将超过最大尺寸时,操作包括拒绝增加缓存的尺寸。在一些实现中,缓存包括多个段,并且动态地调整以列为主的格式缓存的多个列的子集包括基于访问模式将列一起分组在段中。基于访问模式将列分组在段中可以包括将不经常访问的列分组在一
起。
15.本公开的一个或多个实现的细节在附图和以下描述中阐述。从说明书和附图以及从权利要求书中,其它方面,特征和优点将是显而易见的。
附图说明
16.图1是用于弹性列式缓存的示例系统的示意图。
17.图2是弹性列式缓存的示例性组件的示意图。
18.图3a-3c是动态扩展和收缩弹性列式缓存的存储器段的示意图。
19.图4是用于提供弹性列式缓存的方法的操作的示例性布置的流程图。
20.图5是可用于实现本文所述的系统和方法的示例性计算设备的示意图。
21.在各个附图中相同的附图标记表示相同的元件。
具体实施方式
22.数据库系统(例如,云数据库系统)通常包括一定量的共享存储器以充当缓存,从而以列为主的格式存储经常访问的数据。该缓存用于相对于以行为主的格式存储的数据(例如,存储在硬盘上的数据)大大提高对经常访问的数据的访问速度。这种“存储器内缓存”特征通过以列为主的格式在存储器内缓存数据库的表/列的子集来有效地提供分析查询。列式缓存通过只读取具有更好压缩支持和矢量化执行的相关列(基于查询)来提高性能。
23.通常,这些云数据库系统静态地分配共享存储器,并在系统或实例启动时锁定列式缓存的尺寸(以及存储在其中的列)。因为列式缓存尺寸是在服务器启动时确定的,并且是静态的,所以用户不能在不重新启动服务器的情况下增加或减小缓存的尺寸。
24.当运行分析工作负载时,查询模式(例如,来自请求访问存储在数据库中的数据的用户的查询模式)经常揭示查询比其他表/列更经常地访问一组表/列。此外,可以在缓存中存储永远不被访问或很少被访问的列(即,在启动时选择的列)。因为列式缓存尺寸是静态的,所以数据库服务器不能为工作负载不经常访问的表/列释放共享的列式缓存存储器,以用更经常访问的列/表替换它们(因此增加了缓存的有效性)。此外,数据库服务器通常不能增加共享列式缓存的尺寸,以将更多的表/列添加到缓存中而超出静态限定的容量(即,在启动时限定的)。
25.本文的实现针对用于云数据库的弹性列式缓存系统。该系统实现列式缓存,该列式缓存根据包括行为主的数据的虚拟水平分区的表片段来存储数据。也就是说,几个连续块的行(来自以行为主的格式存储的数据)被转换成列为主的格式,从而产生独立的和自描述的表片段。在表片段内,列的所有值可以按排序顺序物理地一起存储,以实现更快的聚合和谓词过滤。
26.弹性列式缓存系统自动确定和指定用于列式缓存的经常访问的表和/或列。系统动态地分配所需的共享存储器(在数据库运行时)以将指定的表/列存储在共享存储器中。当不再需要缓存的列或表(即,很少被访问)时,系统还回收共享存储器。因此,弹性列式缓存系统通过对用户透明地扩展和收缩/缩减用于列式缓存的共享存储器来提供运行时间弹性。因为用户经常基于专用于或分配给用户的存储器的量而被记帐,所以弹性列式缓存系
统不仅提供共享存储器的更高效和有效的使用,而且还可以降低成本。
27.现在参考图1,在一些实现中,示例性列式缓存系统100包括经由网络与一个或多个用户设备10通信的远程系统140。远程系统140可以是单个计算机,多个计算机或具有可伸缩/弹性资源142的分布式系统(例如,云环境),可伸缩/弹性资源142包括计算资源144(例如,数据处理硬件)和/或存储资源146(例如,存储器硬件)。数据块数据存储器150(即,远程存储设备)可以覆盖在存储资源146上,以允许一个或多个客户机(例如,用户设备10)或计算资源144可缩放地使用存储资源146。数据存储器150被配置为在一个或多个表158,158a-n(即,云数据库)内存储多个数据块152,152a-n,表158,158a-n各自包括多个行和列310,310aa-nn(图3)。数据存储器150可以在任何时间点存储任何数量的表158。在一些示例中,使用以行为主的格式来存储表158。也就是说,存储每个数据块152,使得一行的连续元素在存储器中是连续的。
28.远程系统140还包括弹性列式缓存160,其被配置为以列为主的格式存储一个或多个表158的一个或多个列。也就是说,弹性列式缓存160以列310的连续元素是邻接的方式存储被存储在数据块数据存储器150中的一个或多个表158的一部分。弹性列式缓存160可以包括共享存储器,其可由在远程系统140上执行的任何数量的进程(例如,工作负载或应用)访问。可选地,弹性列式缓存包括具有比数据块数据存储器150更快的访问时间的存储器。例如,数据块数据存储器150是硬盘或其它非易失性存储器,而弹性列式缓存160是随机存取存储器。
29.现在参考图2,在一些实例中,弹性列式缓存160包含用于每一个表158的一个或多个表片段200,200aa-nn,其中每一表片段200包含一个或多个表158的一个或多个列310的相应部分。表片段200表示对行为主的格式的数据块(即,存储在数据块数据存储器150处的数据块152)的虚拟水平分区。每个表片段200可以包括固定数量的数据块152(例如,4096个数据块152),其表示按排序顺序存储的列310的值。也就是说,每个表片段200包括表158的一个或多个列310的排序数据块152。在所示的示例中,弹性列式缓存160包括用于表a 158a的n个表片段200,并且每个表片段200包括表示表158a的一个或多个列310的4096个数据块152。弹性列式缓存160可包括任何数目的表片段200,且每个表片段200可包括任何数目的数据块152。虽然在一些实现中,每个表片段200具有相同的尺寸(即,包括相同数量的数据块152),但是在其它实现中,表片段200具有不同的尺寸。
30.在一些示例中,列310的整体在一个或多个表片段200中是邻接的。在其它示例中,列310可以被分成两个或更多个表片段200。这允许系统100在数据请求20的执行期间跳过和/或过滤不满足数据请求中指定的谓词的表片段200。例如,控制器170为每个表片段200中的每个列310维持最小和最大列值。每个表片段200的最小和最大列值可以仅表示存在于相应表片段200中的数据,这提供了更快的谓词剪裁。例如,通过在处理数据请求20时简单地对最小值和最大值应用谓词,可以快速地消除几个表片段200。
31.回到图1,远程系统140被配置成从与相应用户12相关联的用户设备10接收数据请求20(即,查询)。用户设备10可以对应于任何计算设备,诸如台式工作站,膝上型工作站或移动设备(即,智能电话)。用户设备10包括计算资源18(例如,数据处理硬件)和/或存储资源16(例如,存储器硬件)。每个数据请求20请求远程系统140读取和/或写入存储在数据块数据存储器150上的表158内的一个或多个数据块152。
32.远程系统140执行弹性列式缓存控制器170。控制器170直接或间接地从用户设备10接收缓存配置信息22。在一些实现中,缓存配置信息22指示列式缓存160的最大尺寸24和递增尺寸26。可选地,缓存配置信息22包括列式缓存160的初始尺寸28。最大尺寸24向控制器170指示可由远程系统140分配以供与缓存配置信息22相关联的用户12使用的最大缓存(即,存储器)量。递增尺寸26指示控制器170可通过在动态地调整缓存160的尺寸时增加或减小弹性列式缓存160的尺寸的存储器的量。也就是说,递增尺寸26限定了控制器170在动态调整缓存160的尺寸时可分配给弹性列式缓存160或从弹性列式缓存160解除分配的存储器的量。
33.例如,缓存配置信息22指示最大尺寸24是4千兆字节,而递增尺寸26是1千兆字节。在该示例中,控制器170可以在任何一个时间向用户12分配最多4千兆字节的弹性列式缓存160,并且可以在一个时间将分配给用户12的当前量增加或减少1千兆字节(直到4千兆字节的最大尺寸24)。例如,当有两千兆字节分配给用户12时,控制器170可以将分配给用户12的总量扩展到三千兆字节,或者将分配给用户12的总量缩小到两千兆字节。在一些实例中,初始尺寸28向控制器170指示弹性列式缓存160的初始尺寸。初始尺寸28也可以表示弹性列式缓存160的最小尺寸。例如,当初始尺寸28是一千兆字节时,控制器170可以将弹性列式缓存160初始化为一千兆字节,并且可以不将分配给用户12的总尺寸减小到小于一千兆字节。
34.基于缓存配置信息22,控制器170使用列为主的格式将与用户12相关联的一个或多个表158的多个列310的子集缓存到弹性列式缓存160中。用户12可以选择缓存在弹性列式缓存160中的初始列310。或者,控制器170可选择列310(例如,随机地或基于与用户12,其它用户或表158相关联的数据)。控制器170可缓存足够数量的列310以将弹性列式缓存160填充到初始尺寸28。由控制器170缓存的列310的数量取决于列310的尺寸(即,表158中的行数)和缓存配置信息22(例如,初始尺寸28)。
35.继续参考图1,控制器170从用户设备10接收一个或多个数据请求20(即,查询),每个数据请求20请求访问存储在数据块数据存储器150上的一个或多个表158。弹性列式缓存控制器170确定在每个接收数据请求20中请求的数据是否存在于弹性列式缓存160内(即,“缓存命中”)。当所请求的数据在缓存160中可用时,控制器170从缓存160取出数据152,并经由用户设备10向用户12发送包含所请求的数据152的查询响应172。当所请求的数据在弹性列式缓存160中不可用或仅部分可用时(即,“缓存未命中”),控制器170从数据块数据存储器150检索所请求的数据152,并经由用户设备10将包含所请求的数据152的查询响应172发送到用户12。
36.当在远程系统140上执行一个或多个工作负载(例如,具有或请求访问弹性列式缓存160和/或数据块数据存储器150的进程)时,弹性列式缓存控制器170存储或另外保留与每个数据请求20相关联的访问模式180。访问模式180包括控制器170访问哪些列310以便响应数据请求20。当控制器170存储用于每个数据请求20的访问模式180时,控制器170可以确定用于每个列310的访问频率182,该访问频率182指示数据请求20基于对应的访问模式180在预定时间段访问相应表158的相应列310的频率。例如,访问频率182指示某些列310从未被数据请求20访问,或者很少被数据请求20访问(例如,每周或每月),而其他列310被数据请求(例如,每小时或每天)经常访问。
37.弹性列式缓存控制器170在仍然执行一个或多个工作负载的同时,基于访问模式
180和访问频率182以及缓存配置信息22(例如,最大尺寸24和递增尺寸26),实时地动态调整以列为主的格式缓存在弹性列式缓存160中的列310的子集。也就是说,弹性列式缓存控制器170基于访问频率182确定经常访问哪些列310和不经常访问哪些列310,并动态地调整弹性列式缓存160,使得经常访问的列310存在于缓存160中,而不经常访问的列310不存在于缓存160中。允许控制器170动态地调整弹性列式缓存160导致更多的“缓存命中”,同时将分配给用户12的缓存160的总尺寸保持在由缓存配置信息22指示的最大尺寸24内。在一些实例中,控制器170通过将尺寸增加等于递增尺寸26的量或将缓存160的尺寸减小等于递增尺寸26的量来调整缓存160的尺寸。因此,控制器170动态地调整以列为主的格式缓存的列310的子集,而不重新启动对缓存160(即,共享存储器)的访问的任何工作负载。
38.现在参考图3a-3c,在一些实现中,弹性列式缓存160包括一个或存储器段300,300a-n。每个存储器段300可以是等于在缓存配置信息22中限定的递增尺寸26的固定尺寸。例如,当递增尺寸26为一千兆字节时,每一存储器段300为一千兆字节的尺寸。因此,当动态地调整缓存在弹性列式缓存160中的列310时,控制器170可以一次将缓存160的尺寸(根据需要)增加或减小一个存储器段300。在图3a所示的示例中,存储器段300a包括表a 158a和表b 158b的部分。表a 158a的部分包括两个表片段200aa,200ab。片段200aa,200ab包括表a 158a的列a 310aa和列b 310ab。表b 158b的部分也包括两个表片段200ba,200bb,但是在这种情况下,表片段200ba,200bb包括三列310ba,310bb,310bc。
39.在一些示例中,动态地调整在弹性列式缓存160中以列为主的格式缓存的列310的子集包括向与满足扩展访问频率阈值的访问频率182相关联的子集添加一个或多个列310。如图3b所示,添加列310可以包括添加额外存储器段300。这里,控制器170动态地将弹性列式缓存160从一个存储器段300(即,存储器段a 300a)扩展到两个存储器段300a,300b。第二存储器段300b包含表a 158a的额外列310和来自新表c 158c的列310。也就是说,在这种情况下,访问模式180和访问频率182指示表a 158a的列c 31aac和列d 310ad以及表c 158c的列a 310aa,列b 310cb和列c 310cc被足够经常地访问以满足扩展访问频率阈值,并因此保证包含在弹性列式缓存160内。在此实例中,控制器170通过添加第二存储器段300b将尺寸加倍来动态地调整(即,不重新启动任何工作负载,进程或应用)弹性列式缓存160。
40.控制器170还可将列310添加到弹性列式缓存160而不添加额外存储器段300。举例来说,控制器170可通过利用存储器段300的先前未使用的部分或通过替换存储器段300中不太被经常访问的列310来将列添加到现有存储器段。
41.在一些实现中,控制器170通过从与访问频率182相关联的子集中移除一个或多个列310来动态地调整以列为主的格式缓存的列310的子集,该访问频率182不满足收缩访问频率阈值。收缩访问频率可以与扩展访问频率相同或是完全不同的阈值。在图3c所示的实例中,控制器170通过释放与存储器段a 300a相关联的共享存储器且仅留下分配给用户12的存储器段b 300b来动态地收缩分配给用户12的缓存的量。也就是说,在这种情况下,缓存在存储器段a 300a中的列310(即,列310aa,310ab,310ba,310bb,310bc)的访问频率182满足收缩访问频率阈值。例如,与列310aa,310ab,310ba,310bb,310bc相关联的访问频率182指示这些列不被经常地访问,且因此控制器170可安全地恢复与存储器区段a 300a相关联的存储器。
42.在一些示例中,控制器170基于访问模式180和/或访问频率182将列310分组或组
装或以其它方式将列310聚集在一起形成段300。例如,控制器170将最经常访问的列310分组到相同的存储器段300中,并将最不经常访问的列310分组到相同的存储器段300中。回到图3b的实例,可基于指示这些列比存储器段b 300b的列310ac,310ad,310ca,310cb,310cc被更经常地访问的对应访问模式180,将列310aa,310ab,310ba,310bb,310bc分组到存储器段a300a中。这使得控制器170能够更容易且有效地扩展和收缩弹性列式缓存170的尺寸,因为控制器170通常必须在调整(例如,移除)存储器段300之前等待对存储器段300的所有当前访问完成。因此,通过减少对存储器段300的访问(即,通过对不经常访问的列310进行分组),当动态地收缩或缩减弹性列式缓存160的尺寸时,控制器170将更容易地恢复存储器段300。
43.在一些实例中,在通过将缓存160的尺寸增加等于递增尺寸26的量来动态调整所缓存的列310的子集之前,控制器170确定增加缓存是否超过缓存160的最大尺寸24。当增加缓存160将超过最大尺寸24时,控制器170可拒绝增加缓存160的尺寸。相反,控制器170可以调整分组在一个或多个现有存储器段300中的列310。
44.例如,继续参考图3b,当每个存储器段300的尺寸是一千兆字节并且当缓存160的最大尺寸是两千兆字节时,两个存储器段300a,300b将最大量的缓存160分配给相关联的用户12。在此情况下,当访问模式180指示应将额外列310添加到缓存160时,控制器170可代替在存储器段300a,300b中的一者中不太被经常访问模式的一个或多个列310,而不是增加缓存160的尺寸。当当前缓存的列310中没有一个被访问的频率低于要被缓存的新列310的频率时,控制器170可以代之以拒绝任何动作,并且代之以等待访问模式改变。例如,在一段时间之后,可以不太经常地访问一个或多个列310,并且在那时,控制器170可以基于对应的访问模式180来调整缓存的列310。或者,控制器170可从用户12接收新的最大尺寸24,其允许控制器170进一步增加缓存160的尺寸。在一些示例中,远程系统140可以在缓存160达到最大尺寸时和/或在控制器170不能基于最大尺寸24增加缓存160的尺寸时通知用户12。
45.图4是用于弹性列式缓存的方法400的操作的示范性布置的流程图。在操作402处,方法400包括在数据处理硬件144处接收缓存配置信息22,缓存配置信息22指示与用户12相关联的缓存160的最大尺寸24和递增尺寸26。缓存160被配置为存储被存储在与数据处理硬件144通信的存储器硬件146上的表158的一部分。表158以行为主的格式存储在存储器硬件146上,并包括多个列310和多个行。
46.在操作404,方法400包括由数据处理硬件144以列为主的格式将表158的多个列310的子集缓存在与用户12相关联的缓存160中。在操作406,方法400包括在数据处理硬件144处接收多个数据请求20。每个数据请求20请求访问存储在存储器硬件146上的表158,并且与要求访问表158的多个列310中的一个或多个列的对应访问模式180相关联。
47.当在数据处理硬件144上执行一个或多个工作负载时,方法400包括,在操作408,对于表158的多个列310中的每一列310,由数据处理硬件144基于与多个数据请求20中的每一个相关联的对应访问模式180来确定指示在预定时间段访问对应列310的次数的访问频率182。在操作410处,方法400包括由数据处理硬件144基于访问模式180、缓存160的最大尺寸24和缓存160的递增尺寸26来动态地实时地调整以列为主的格式缓存的多个列310的子集。
48.图5是可用于实现本文档中描述的系统和方法的示例性计算设备500的示意图。计
算设备500用于表示各种形式的数字计算机,例如膝上型计算机,台式计算机,工作站,个人数字助理,服务器,刀片服务器,大型机和其它适当的计算机。这里所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,而不是要限制在本文件中描述和/或要求保护的本发明的实现。
49.计算设备500包括处理器510,存储器520,存储设备530,连接到存储器520和高速扩展端口550的高速接口/控制器540,以及连接到低速总线570和存储设备530的低速接口/控制器560。部件510,520,530,540,550和560中的每一个使用各种总线互连,并且可以适当地安装在公共母板上或以其它方式安装。处理器510可以处理用于在计算设备500内执行的指令,包括存储在存储器520中或存储设备530上的指令,以在外部输入/输出设备(例如耦合到高速接口540的显示器580)上显示图形用户界面(gui)的图形信息。在其它实现中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备500,其中每个设备提供必要操作的部分(例如,作为服务器库,一组刀片服务器,或多处理器系统)。
50.存储器520在计算设备500内非暂时性地存储信息。存储器520可以是计算机可读介质,易失性存储器单元或非易失性存储器单元。非暂时性存储器520可以是用于临时或永久地存储由计算设备500使用的程序(例如,指令序列)或数据(例如,程序状态信息)的物理设备。非易失性存储器的实例包括(但不限于)快闪存储器和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如,通常用于固件,例如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram),动态随机存取存储器(dram),静态随机存取存储器(sram),相变存储器(pcm)以及磁盘或磁带。
51.存储设备530能够为计算设备500提供大容量存储。在一些实现中,存储设备530是计算机可读介质。在各种不同的实现中,存储设备530可以是软盘设备,硬盘设备,光盘设备,或磁带设备,闪存或其它类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其它配置。在另外的实现中,计算机程序产品被有形地包含在信息载体中。所述计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,例如存储器520,存储设备530或处理器510上的存储器。
52.高速控制器540管理计算设备500的带宽密集操作,而低速控制器560管理较低的带宽密集操作。这种职责的分配仅是示例性的。在一些实现中,高速控制器540耦合到存储器520,显示器580(例如,通过图形处理器或加速器)以及高速扩展端口550,高速扩展端口550可以接受各种扩展卡(未示出)。在一些实现中,低速控制器560耦合到存储设备530和低速扩展端口590。可以包括各种通信端口(例如,usb,蓝牙,以太网,无线以太网)的低速扩展端口590可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘,定点设备,扫描仪,或联网设备,例如交换机或路由器。
53.计算设备500可以以多种不同的形式来实现,如图所示。例如,它可以被实现为标准服务器500a或者在一组这样的服务器500a中多次实现为膝上型计算机500b,或者实现为机架服务器系统500c的一部分。
54.在此描述的系统和技术的各种实现可以在数字电子和/或光学电路,集成电路,专门设计的asic(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实现
可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,被耦合以从存储系统,至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统,至少一个输入设备和至少一个输出设备发送数据和指令。
55.软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些实例中,软件应用程序可被称为“应用”,“应用程序”或“程序”。示例应用包括但不限于系统诊断应用,系统管理应用,系统维护应用,字处理应用,电子表格应用,消息传递应用,媒体流应用,社交网络应用和游戏应用。
56.这些计算机程序(也称为程序,软件,软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品,非暂时性计算机可读介质,设备和/或设备(例如,磁盘,光盘,存储器,可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
57.本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)执行,执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如fpga(现场可编程门阵列)或asic(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被可操作地耦合以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,所述大容量存储设备用于存储数据,例如磁盘,磁光盘或光盘。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备,例如eprom,eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
58.为了提供与用户的交互,本公开的一个或多个方面可以在具有显示设备的计算机上实现,所述显示设备例如crt(阴极射线管),lcd(液晶显示器)监视器,或者用于向用户显示信息的触摸屏,并且可选地还具有键盘和定点设备,例如鼠标或轨迹球,通过所述定点设备用户可以向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网页浏览器接收的请求向用户的客户端设备上的网页浏览器发送网页。
59.已经描述了多种实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施方式也在所附权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1