掌桥专利:专业的专利平台
掌桥专利
首页

一种数据库的优化方法及优化装置

文献发布时间:2023-06-19 16:09:34



技术领域

本说明书涉及数据库领域,尤其涉及一种数据库的优化方法及优化装置。

背景技术

在实际应用中,数据库中包含有大量的数据库参数,对数据库参数进行合理的配置与调整,是维护好一个数据库的必要基础。

当前,在数据库出现问题时,可以由数据库管理员手动对数据库参数进行调整,但是通过人为的方式调整数据库参数,很难将所有的数据库参数合理地进行调整。

所以,如何对数据库参数进行合理的调整,以维护好数据库的正常运行,则是一个亟待解决的问题。

发明内容

本说明书提供一种数据库的优化方法及优化装置,以对数据库参数进行调整,保证数据库的良好运行。

本说明书采用下述技术方案:

本说明书提供了一种数据库的优化方法,包括:

若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化;

若监测到数据库的全局性能不满足预设条件,则根据所述数据库对应数据涉及的各数据操作环节,对所述各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化。

可选地,若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,具体包括:

若所述指定功能区为所述数据库的数据缓冲区,将所述数据缓冲区的容量数值增大。

可选地,若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,具体包括:

若所述指定功能区为所述数据库的日志缓冲区,将所述日志缓冲区的容量数值增大。

可选地,根据所述数据库对应数据涉及的各数据操作环节,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,具体包括:

根据所述各数据操作环节针对所述数据库对应数据进行操作时的顺序,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,所述各数据操作环节包括:CPU调用环节、锁环节、内存环节以及磁盘环节。

可选地,根据所述数据库对应数据涉及的各数据操作环节的顺序,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,具体包括:

将各数据操作环节按照将数据写入数据库的相反顺序进行排序,得到排序结果;

将所述排序结果中第N个数据操作环节对应的数据库参数进行调整后,并监测所述数据库的全局性能,若监测到所述数据库的全局性能依然不满足所述预设条件,将所述排序结果中第N+1个数据操作环节对应的数据库参数进行调整,其中,N为正整数。

可选地,根据所述数据库对应数据涉及的各数据操作环节,对所述各数据操作环节的至少一个数据库参数进行调整,具体包括:

根据所述数据库的系统状态数据,确定所述数据库存在的系统瓶颈的瓶颈类别,并将所述瓶颈类别对应的数据操作环节,作为目标环节;

对所述目标环节的数据库参数进行调整。

可选地,所述方法还包括:

对所述目标环节的数据库参数进行调整后,若监测到所述数据库的全局性能依然不满足所述预设条件,则将除所述目标环节外其他数据操作环节对应的数据库参数,进行调整。

可选地,所述方法还包括:

若根据所述调整后的参数,对所述数据库进行优化后,监测到所述数据库全局性能依然不满足预设条件,将所述数据库当前的系统状态数据输入到预设的参数优化模型中,得到调整后的参数,并对所述数据库进行优化。

本说明书提供了一种数据库的优化装置,包括:

第一调整模块,用于若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化;

第二调整模块,用于若监测到数据库的全局性能不满足预设条件,则根据所述数据库对应数据涉及的各数据操作环节,对所述各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化。

可选地,所述第一调整模块具体用于,若所述指定功能区为所述数据库的数据缓冲区,将所述数据缓冲区的容量数值增大。

可选地,所述第一调整模块具体用于,若所述指定功能区为所述数据库的日志缓冲区,将所述日志缓冲区的容量数值增大。

可选地,所述第二调整模块具体用于,根据所述各数据操作环节针对所述数据库对应数据进行操作时的顺序,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,所述各数据操作环节包括:CPU调用环节、锁环节、内存环节以及磁盘环节。

可选地,所述第二调整模块具体用于,将各数据操作环节按照将数据写入数据库的相反顺序进行排序,得到排序结果;将所述排序结果中第N个数据操作环节对应的数据库参数进行调整后,并监测所述数据库的全局性能,若监测到所述数据库的全局性能依然不满足所述预设条件,将所述排序结果中第N+1个数据操作环节对应的数据库参数进行调整,其中,N为正整数。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据库的优化方法。

本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据库的优化方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

从上述数据库的优化方法中可以看出,若监测到数据库的指定功能区处于异常状态,则可以对指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对数据库进行优化,若监测到数据库的全局性能不满足预设条件,则可以根据数据库对应数据涉及的各数据操作环节,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对数据库进行优化。

从上述内容中可以看出,本说明书中提供的数据库的优化方法可以通过多种方式,在数据库出现一定问题时,对数据库参数进行调整,既可以通过监测数据库的指定功能区是否出现异常的方式,来调整指定功能区相关的数据库参数,还可以通过监测数据库的全局性能是否较好的方式,来调整数据库涉及的数据操作环节的数据库参数,从而在一定程度上保证了数据库的运行安全。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书中一种数据库的优化方法的流程示意图;

图2为本说明书中提供的一种对数据库参数进行调整的整体流程的示意图;

图3为本说明书中提供的一种通过规则对数据库参数进行调整的详细方式的示意图;

图4为本说明书提供的一种数据库的优化装置示意图;

图5为本说明书提供的一种对应于图1的电子设备示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图1为本说明书中一种数据库的优化方法的流程示意图,具体包括以下步骤:

S100:初始化数据库参数。

当前,数字化已渗透在各行各业,随之,数据库也可以应用在各行各业中,方便了各种厂商、业务方的数据存储、查找与修改。

在数据库被构建出,并开始应用时,需要对数据库的各项参数进行初始化,具体进行初始化的方式,可以由人工进行配置,或按照数据库的服务器资源,进行参数的配置,但由于数据库在运行过程中,实际情况的不同,可能需要参数依照实际情况进行一定变化,那么为了保证数据库的良好运行,则可以自动地对数据库的参数进行调整。

基于此,下面将介绍几种,对数据库中参数进行调整的方式。

S102:若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化。

若服务器监测到数据库的指定功能区处于异常状态,则可以对指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对数据库进行优化。

这里提到的监测到数据库的指定功能区处于异常状态,可以是指服务器直接监测到数据库中的某部分出了问题,例如,数据库的系统日志中直接给出了数据库中的某部分出了问题的指标信号,如,“innodb_buffer_pool_wait_free”(表示数据库的数据缓冲区(buffer pool)出现了拥堵)、“innodb_log_waits”(表示数据库的日志缓冲区(log bufferpool)出现了拥堵)等。这里提到的指定功能区可以是指数据库中在软件层面上用于辅助数据库进行数据库事务处理的功能区。

监测到了上述问题时,可以直接对与出现了问题的指定功能区相关的数据库参数进行调整,例如,若指定功能区为数据库的数据缓冲区(监测到出现了“innodb_buffer_pool_wait_free”这个数据库的内部指标时,则说明是数据缓冲区出现了问题),则可以将数据缓冲区的容量数值增大,当然,也可以对与数据缓冲区之间相关的其他数据库参数进行修改。例如,将数据缓冲区的数量参数增大等。

若指定功能区为数据库的日志缓冲区(监测到出现了“innodb_log_waits”这个数据库的内部指标时,则说明是日志缓冲区出现了问题),则可以将日志缓冲区的容量数值增大,当然,也可以对与日志缓冲区之间相关的其他数据库参数进行修改,例如,增大日志缓冲区的数量参数等。

S104:若监测到数据库的全局性能不满足预设条件,则根据所述数据库对应数据涉及的各数据操作环节,对所述各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化。

若监测到数据库的全局性能不满足预设条件,则可以根据数据库对应数据涉及的各数据操作环节,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对数据库进行优化。

也就是说,这种方式是不明确数据库具体哪里出现了问题,仅是确定出了数据库的全局性能未符合预设条件,则可以通过数据库所涉及的各数据操作环节,对每个数据操作环节的数据库参数进行调整,而具体调整各数据操作环节的数据库参数的方式可以存在多种。

方式1:服务器可以根据各数据操作环节针对数据库对应数据进行操作时的顺序,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,各数据操作环节可以包括:CPU调用环节、锁环节、内存环节以及磁盘环节。也就是说,服务器可以根据各数据操作环节的一定顺序,来调整各数据操作环节的数据库参数。

具体按照各数据操作环节什么样的顺序来对数据库参数进行调整,也可以存在多种方式,例如,可以按照将数据写入数据库的相反顺序,来调整各数据操作环节的数据库参数。

具体的,可以将各数据操作环节按照将数据写入数据库的相反顺序进行排序,得到排序结果,在将排序结果中第N个数据操作环节对应的数据库参数进行调整后,并监测数据库的全局性能,若确定数据库的全局性能依然不满足上述预设条件,则可以将排序结果中第N+1个写入环节对应的数据库参数进行调整,其中,N为正整数。

也就是说,可以按照将数据写入数据库的相反顺序,依次对每个数据操作环节的数据库参数进行调整,例如,将数据写入数据库的顺序为:CPU调用环节->锁环节->内存环节->磁盘环节,那么在调整数据库参数时,可以先调整磁盘环节相关的数据库参数,并监测数据库的全局性能是否变好,达到了上述预设条件,若是达到了,则可以停止调整参数,若是未达到,则可以继续调整下一环节的数据库参数,即,内存环节相关的数据库参数,以此类推,若还需要继续调整数据库参数,则可以调整锁环节相关的数据库参数,而后是CPU调用环节的数据库参数。

通过上述方式调整数据库参数的好处是:数据库写数据的顺序即优先通过CPU,之后加锁,再后通过内存写入磁盘。如果上述顺序中下游的参数配置造成瓶颈,则无论如何调整上游参数都无法使性能提升,并且浪费了大量的调优时间。

当然,也可以通过其他顺序对数据库参数进行调整,例如,可以按照针对上述数据库进行读数据的顺序,对各数据操作环节的数据库参数进行调整。

需要说明的是,每个数据操作环节的数据库参数是与该数据操作环节紧密关联的,例如,CPU调用环节的数据库参数为控制CPU如何调用和分配的数据库参数,比如控制读写线程个数的参数,控制多少个线程能同时进入数据库内核的参数。锁环节的数据库参数可以为专门用来处理与数据库锁资源相关的参数(用于减少锁冲突的参数),比如设置数据缓冲区个数的参数,增加数据缓冲区的个数可以减少锁资源的竞争,还可以包括哈希索引的个数。

内存参数可以是指控制数据库内存大小的相关参数,比如控制缓冲区容量的参数,控制日志缓存区容量的参数。磁盘参数可以是指控制数据库各种文件大小的相关参数,比如用于设置redo日志文件大小的参数和用于设置undo日志大小的参数。

并且,针对每个数据操作环节的数据库参数的调整策略也可以预先进行设定。针对数据库参数的调整策略也不只一种,例如,对于某些数据库参数来说,主要是需要增大的,如,在调整用于设置redo日志文件大小的参数和用于设置undo日志大小的参数时,主要是增大的,则在针对这样的数据库参数进行调整时,可以按照针对需要调整的参数设定的增量值,将参数增大,而对于某些数据库参数可能在调整时,不能直接增大或者减小,那么此时,可以根据针对该参数预设的参数值范围,先按照一个方向(如,减小或增大)调整参数,若监测到数据库的全局性能升高,则可以继续调整直到数据库的全局性能满足预设条件,若监测到数据库的全局性能未升高,则可以朝另一方向调整参数,并通过同样的方式,若监测到数据库的全局性能升高,则可以继续调整直到数据库的全局性能满足预设条件,具体,不同数据库参数的调整策略可以进行预先的配置。

需要说明的是,上述方式主要是按照一定顺序,对各数据操作环节的数据库参数进行调整,在实际应用中,也可以先根据数据库的系统状态数据,确定数据库存在的系统瓶颈的瓶颈类别,并将该瓶颈类别对应的数据操作环节,作为目标环节,进而对该目标环节的数据库参数进行调整(方式2)。这里提到的系统状态数据可以用于表示数据库的运行状态,系统状态数据具体可以存在多种,例如,平均IO等待时长、CPU运行负载、每秒读取的扇区数以及每秒写入的扇区数等。

具体可以通过sar、iostat、vmstat等工具来获取到数据库的系统状态数据,并根据系统状态数据确定数据库存在的系统瓶颈的瓶颈类别,这里提到的系统瓶颈可以是指判断出的数据库可能是在哪一部分出现了问题(出现了瓶颈),是CPU、锁、内存还是磁盘。因此,瓶颈类别与上述各数据操作环节有关,即,瓶颈类别可以包括:CPU调用瓶颈、锁瓶颈、内存瓶颈以及磁盘瓶颈,进而,确定出数据库的瓶颈类别后,可以确定出该瓶颈类别对应的数据操作环节,并调整该数据操作环节相关的数据库参数。

对目标环节的数据库参数进行调整后,若监测到数据库的全局性能依然不满足上述预设条件,则可以根据数据库对应数据涉及的各数据操作环节的顺序,则可以将除目标环节外其他数据操作环节对应的数据库参数,进行调整。具体在调整其他数据操作环节对应的数据库参数时,可以通过方式1,来调整各其他数据操作环节的数据库参数。

即,可以根据数据操作环节在对数据库对应数据进行操作时的顺序,对各其他数据操作环节的数据库参数进行调整,例如,可以按照将数据写入数据库的相反顺序,对各其他数据操作环节进行排序,得到排序结果,并依次调整各其他数据操作环节的数据库参数,将排序结果中第N个其他数据操作环节对应的数据库参数进行调整后,监测数据库的全局性能,若监测到数据库的全局性能依然不满足预设条件,将排序结果中第N+1个其他数据操作环节对应的数据库参数进行调整,其中,N为正整数。

需要说明的是,上述提到的预设条件可以进行预先设定,例如,全局性能可以包括数据库的吞吐量、延迟等,则预设条件可以为数据库的吞吐量需大于预设吞吐量,和/或数据库的延迟需小于预设延迟。

值得一提的是,若通过上述方式对数据库参数进行调整,并根据调整后的参数,对数据库进行优化后,数据库的全局性能依然未满足预设条件,则可以将数据库当前的系统状态数据输入到预设的参数优化模型中,得到调整后的参数,并对数据库进行优化。

即,若是通过上述方式对数据库进行优化后,未达到较好的效果,则可以通过机器学习模型(即,这里提到的参数优化模型)进行探索,对数据库参数,从而得到调整后的参数,并且,除了数据库的系统状态数据外,还可以将希望数据库能够达到的目标性能数值输入到参数优化模型中,以使参数优化模型输出的调整后的参数能够尽量使得数据库能够达到目标性能数值所对应的目标性能。

其中,可以根据数据库的系统状态数据,确定数据库的系统瓶颈的瓶颈类别,而后可以根据该参数优化模型中,调整该瓶颈类别对应数据操作环节的数据库参数。

具体的。参数优化模型可以存在多个,每个瓶颈类别对应一个参数优化模型,在调整一个瓶颈类别的数据库参数时,可以根据该瓶颈类别对应的参数优化模型,得到调整后的参数,当然,也可以仅存在一个参数优化模型,在调整一个瓶颈类别的数据库参数时,该参数优化模型仅确定该瓶颈类别对应的调整后参数。

该参数优化模型的形式可以存在多种,例如,该参数优化模型可以是高斯过程模型,也可以是强化学习模型。

下面将以一个完整示例的形式将本说明书中的对数据库进行优化的方法进行说明,如图2、3所示。

图2为本说明书中提供的一种对数据库参数进行调整的整体流程的示意图。

图3为本说明书中提供的一种通过规则对数据库参数进行调整的详细方式的示意图。

从图2中可以看出,可以先针对数据库参数进行初始化,而后通过一定规则,对数据库参数进行调整,最后,可以通过参数优化模型对数据库参数进行调整,在通过规则,对数据库参数进行调整时,从图3中可以看出,在通过一定规则对数据库参数进行调整时,既可以通过监测数据库的指定功能区是否处于异常状态的方式,来调整指定功能区的数据库参数,即,可以通过数据库产生的某些特定状态指标,确定数据库的指定功能区是否异常,进而对相应参数进行调整,也可以通过监测数据库的全局性能是否符合预设条件的方式,依次调整磁盘环节、内存环节、锁环节以及CPU调用环节的数据库参数。

从上述方法中可以看出,本方法可以通过多种方式,在数据库出现一定问题时,对数据库参数进行调整,既可以通过监测数据库的指定功能区是否出现异常的方式,来调整指定功能区相关的数据库参数,还可以通过监测数据库的全局性能是否较好的方式,来调整可能造成数据库全局性能未达到预设条件的系统瓶颈对应数据操作环节相关的数据库参数,以及还可以按照数据操作环节的一定顺序,来试探性的依次调整数据操作环节相关的数据库参数,从而在一定程度上保证了数据库的运行安全。

以上为本说明书的一个或多个实施例提供的数据库的优化方法,基于同样的思路,本说明书还提供了数据库的优化装置,如图4所示。

图4为本说明书提供的一种数据库的优化装置示意图,具体包括:

第一调整模块401,用于若监测到数据库的指定功能区处于异常状态,则对所述指定功能区对应的数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化;

第二调整模块402,用于若监测到数据库的全局性能不满足预设条件,则根据所述数据库对应数据涉及的各数据操作环节,对所述各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,并根据调整后的参数,对所述数据库进行优化。

可选地,所述第一调整模块401具体用于,若所述指定功能区为所述数据库的数据缓冲区,将所述数据缓冲区的容量数值增大。

可选地,所述第一调整模块401具体用于,若所述指定功能区为所述数据库的日志缓冲区,将所述日志缓冲区的容量数值增大。

可选地,所述第二调整模块402具体用于,根据所述各数据操作环节针对所述数据库对应数据进行操作时的顺序,对各数据操作环节的至少一个数据库参数进行调整,得到调整后的参数,所述各数据操作环节包括:CPU调用环节、锁环节、内存环节以及磁盘环节。

可选地,所述第二调整模块402具体用于,将各数据操作环节按照将数据写入数据库的相反顺序进行排序,得到排序结果;将所述排序结果中第N个数据操作环节对应的数据库参数进行调整后,并监测所述数据库的全局性能,若监测到所述数据库的全局性能依然不满足所述预设条件,将所述排序结果中第N+1个数据操作环节对应的数据库参数进行调整,其中,N为正整数。

可选地,所述第二调整模块402具体用于,根据所述数据库的系统状态数据,确定所述数据库存在的系统瓶颈的瓶颈类别,并将所述瓶颈类别对应的数据操作环节,作为目标环节;对所述目标环节的数据库参数进行调整。

可选地,所述第二调整模块402还用于,若监测到对所述目标环节的数据库参数进行调整后,所述数据库的全局性能依然不满足所述预设条件,则将除所述目标环节外其他数据操作环节对应的数据库参数,进行调整。

可选地,所述装置还包括:

模型优化模块403,用于若根据所述调整后的参数,对所述数据库进行优化后,监测到所述数据库全局性能依然不满足预设条件,将所述数据库当前的系统状态数据输入到预设的参数优化模型中,得到调整后的参数,并对所述数据库进行优化。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述数据库的优化方法。

本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述数据库的优化方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

技术分类

06120114725607