写入操作的控制方法、装置和设备

文档序号:1741663 发布日期:2019-11-26 浏览:14次 >En<

阅读说明:本技术 写入操作的控制方法、装置和设备 (Control method, device and the equipment of write operation ) 是由 周文静 周飞龙 冯小珂 于 2019-08-28 设计创作,主要内容包括:本申请公开了一种写入操作的控制方法、装置和设备,涉及大数据技术领域。具体实现方案为:通过设置第一阈值和第二阈值,并将SSTable文件的当前数量分别与第一阈值和第二阈值进行比较,若当前数量大于或等于第一阈值,且小于第二阈值,说明继续写入的话,SSTable文件的数量会存在大于第二阈值的风险,则在单位时间内的前预设时间段内拒绝所有数据写入操作,待预设时间段结束后,再在除预设时间段之外的时间段内允许所有数据写入操作,从而通过前该预设时间段控制拒绝继续写入操作,仅执行SSTable文件的合并,以减少底层的SSTable文件的数量,从而提高了控制的灵活性,使得控制效果较好。(This application discloses a kind of control method of write operation, device and equipment, are related to big data technical field.Specific implementation are as follows: pass through setting first threshold and second threshold, and the current quantity of SSTable file is compared with first threshold and second threshold respectively, if current quantity is greater than or equal to first threshold, and it is less than second threshold, illustrate if continuing to write to, the quantity of SSTable file can have the risk greater than second threshold, then refuse all data write operations in the preceding preset time period within the unit time, after preset time period, allow all data write operations within the period in addition to preset time period again, to continue to write to operation by preceding preset time period control refusal, only execute the merging of SSTable file, to reduce the quantity of the SSTable file of bottom, to improve the flexibility of control, so that control effect is preferable.)

写入操作的控制方法、装置和设备

技术领域

本申请设计数据处理技术领域,尤其涉及大数据技术领域。

背景技术

LSM tree是一种基于磁盘的数据结构,其包括两种节点,MemoryTable 节点和SSTable(后续简称SST)节点。MemoryTable在内存中,当有数据写 入时,数据会先被写入多个MemoryTable;当MemoryTable的数量达到阈值 后,MemoryTable中的数据会被写入到多个SSTable中。当SSTable的数量 达到阈值后又会触发合并(即,Compaction),把多个SSTable合并成一个 SSTable。当写入速度过大时,合并Compaction速度跟不上写入速度,底层 的SSTable的数量会越来越多。由于读数据时需要查询每个SSTable,因此 SSTable越多,读取数据的延时越大。

为了控制底层SSTable的数量,现有技术中,通过设置用于限制SSTable 数量的阈值,使得当SSTable数量达到阈值时,便不再允许任何写入,仅执 行SSTable合并,只有等合并后的底层SSTable的数量小于阈值后才能再次 写入。但是采用现有的方法,在底层SSTable的数量达到阈值之前,写入完 全不受任何影响,可以正常写入;一旦达到阈值,写入流量会出现断崖式下 跌,因此,采用现有的方法,在控制底层SSTable的数量时,控制的灵活性 不高,且控制效果不好。

发明内容

本申请实施例提供一种写入操作的控制方法、装置和设备,在控制底 层SSTable的数量时,提高了控制的灵活性,使得控制效果较好。

第一方面,本申请实施例提供一种数据写入操作的控制方法,该方法 可以包括:

获取SSTable文件的当前数量。

若所述当前数量大于或等于第一阈值,且小于第二阈值,则在单位时 间内的前预设时间段内拒绝所有数据写入操作,待所述预设时间段结束后, 再在除所述预设时间段之外的时间段内允许所有数据写入操作。

由此可见,在本申请实施例中,在控制底层SSTable的数量时,当前 数量大于或等于第一阈值,且小于第二阈值,说明继续写入的话,SSTable 文件的数量会存在大于第二阈值的风险,则在单位时间内的前预设时间段 内拒绝所有数据写入操作,即在该前预设时间段内,仅执行SSTable文件 的合并,以减少底层的SSTable文件的数量,待预设时间段结束后,再在 除预设时间段之外的时间段内允许所有数据写入操作,从而通过前该预设 时间段控制拒绝继续写入操作,仅执行SSTable文件的合并,以减少底层 的SSTable文件的数量,从而提高了控制的灵活性,使得控制效果较好。

在一种可能的实现方式中,所述在单位时间内的前预设时间段内拒绝 所有数据写入操作之前,还包括:

获取所述单位时间内,拒绝所有数据写入操作的拒绝比例;并根据所 述拒绝比例,确定所述单位时间内,拒绝所有数据写入操作的预设时间段。

这样在计算得到预设时间段后,可以在单位时间内的前预设时间段内 拒绝所有数据写入操作,待预设时间段结束后,再在除预设时间段之外的 时间段内允许所有数据写入操作,从而通过前预设时间段控制拒绝继续写 入操作,仅执行SSTable文件的合并,以减少底层的SSTable文件的数量, 从而提高了控制的灵活性,使得控制效果较好。

在一种可能的实现方式中,所述获取所述单位时间内,拒绝所有数据 写入操作的拒绝比例,包括:

分别计算所述第二阈值与所述第一阈值的第一差值,及所述当前数量 与所述第一阈值的第二差值;并根据所述第一差值和所述第二差值,获取 所述单位时间内,拒绝所有数据写入操作的拒绝比例。

通过根据第一差值和第二差值计算单位时间内,拒绝所有数据写入操 作的拒绝比例,从而根据拒绝比例确定预设时间段,提高了预设时间段计 算的准确度。

在一种可能的实现方式中,所述根据所述第一差值和所述第二差值, 获取所述单位时间内,拒绝所有数据写入操作的拒绝比例,包括:

计算所述第二差值与所述第一差值的比值;并根据所述第二差值与所 述第一差值的比值,获取所述单位时间内,拒绝所有数据写入操作的拒绝 比例,同样可以提高预设时间段计算的准确度。

在一种可能的实现方式中,所述根据所述第二差值与所述第一差值的 比值,获取所述单位时间内,拒绝所有数据写入操作的拒绝比例,包括:

根据获取所述单位时间内,拒绝所有数据写入操作的拒 绝比例。

其中,P表示拒绝所有数据写入操作的拒绝比例,n为一个大于0的整数, v2表示第二差值,v1表示第一差值。

在一种可能的实现方式中,所述方法还包括:

若所述当前数量小于所述第一阈值,则允许执行所有数据写入操作, 直至所述当前数量大于或等于所述第一阈值。

由此可见,当SSTable文件的当前数量小于第一阈值时,说明SSTable 文件的当前数量较少,继续执行写入操作不会导致SSTable文件的数量过 多,此时,可以继续执行所有数据写入操作,即允许执行所有数据写入操 作。需要说明的是,此处不是无限制的允许执行所有数据写入操作,而是 直至SSTable文件的当前数量大于或等于第一阈值时,即可停止继续执行数 据写入操作。

在一种可能的实现方式中,所述方法还包括:

若所述当前数量大于或等于所述第二阈值,则所有数据均不允许执行 写入操作,直至所述SSTable文件的数量小于所述第二阈值。

由此可见,当SSTable文件的当前数量大于或等于第一阈值时,说明 SSTable文件的当前数量已经过多,则不允许执行任何写入操作,由于读 数据时需要查询每个SSTable,因此,SSTable文件的当前数量越多,从 SSTable文件中读取数据的延时越大,此时,可以拒绝所有数据写入操作, 即所有数据均不允许执行写入操作,直至SSTable文件的数量小于第二阈 值,从而可以避免因为SSTable文件的数量过多而超期数据读取的时延较 大,从而降低了数据读取的时延。

第二方面,本申请实施例还提供一种数据写入操作的控制装置,该数 据写入操作的控制装置可以包括:

获取模块,用于获取SSTable文件的当前数量;

控制模块,用于若所述当前数量大于或等于第一阈值,且小于第二阈 值,则在单位时间内的前预设时间段内拒绝所有数据写入操作,待所述预 设时间段结束后,再在除所述预设时间段之外的时间段内允许所有数据写 入操作。

在一种可能的实现方式中,所述获取模块,还用于获取所述单位时间 内,拒绝所有数据写入操作的拒绝比例。

所述控制模块,还用于根据所述拒绝比例,确定所述单位时间内,拒 绝所有数据写入操作的预设时间段。

在一种可能的实现方式中,所述获取模块,具体用于分别计算所述第 二阈值与所述第一阈值的第一差值,及所述当前数量与所述第一阈值的第 二差值;并根据所述第一差值和所述第二差值,获取所述单位时间内,拒 绝所有数据写入操作的拒绝比例。

在一种可能的实现方式中,所述获取模块,具体用于计算所述第二差 值与所述第一差值的比值;并根据所述第二差值与所述第一差值的比值, 获取所述单位时间内,拒绝所有数据写入操作的拒绝比例。

在一种可能的实现方式中,所述获取模块,具体用于根据获取所述单位时间内,拒绝所有数据写入操作的拒绝比例;

其中,P表示拒绝所有数据写入操作的拒绝比例,n为一个大于0的整数, v2表示第二差值,v1表示第一差值。

在一种可能的实现方式中,所述控制模块,还用于若所述当前数量小 于所述第一阈值,则允许执行所有数据写入操作,直至所述当前数量大于 或等于所述第一阈值。

在一种可能的实现方式中,所述控制模块,还用于若所述当前数量大 于或等于所述第二阈值,则所有数据均不允许执行写入操作,直至所述 SSTable文件的数量小于所述第二阈值。

第三方面,本申请实施例还提供一种电子设备,该电子设备可以包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被 所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方 面任一项所述的数据写入操作的控制方法。

第四方面,本申请实施例还提供一种存储有计算机指令的非瞬时计算 机可读存储介质,所述计算机指令用于使所述计算机执行上述第一方面任 一项所述的数据写入操作的控制方法。

第五方面,本申请实施例还提供一种数据写入操作的控制方法,该数 据写入操作的控制方法可以包括:

获取SSTable文件的当前数量。

若所述当前数量大于或等于第一阈值,且小于第二阈值,则在前预设 时间段内拒绝所有数据写入操作,再在除所述预设时间段之外的时间段内 允许所有数据写入操作。

上述申请中的一个实施例具有如下优点或有益效果:在控制底层 SSTable的数量时,通过设置第一阈值和第二阈值,使得在获取到SSTable 文件的当前数量时;将SSTable文件的当前数量分别与第一阈值和第二阈 值进行比较,若当前数量大于或等于第一阈值,且小于第二阈值,说明继 续写入的话,SSTable文件的数量会存在大于第二阈值的风险,则在单位 时间内的前预设时间段内拒绝所有数据写入操作,即在该前预设时间段内, 仅执行SSTable文件的合并,以减少底层的SSTable文件的数量,待预设 时间段结束后,再在除预设时间段之外的时间段内允许所有数据写入操作, 从而通过前该预设时间段控制拒绝继续写入操作,仅执行SSTable文件的 合并,以减少底层的SSTable文件的数量,从而提高了控制的灵活性,使 得控制效果较好。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说 明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是可以实现本申请实施例的写入操作的控制方法的一种场景图;

图2是根据本申请第一实施例提供的数据写入操作的控制方法的流程 示意图;

图3是根据本申请第二实施例提供的数据写入操作的控制方法的流程 示意图;

图4是根据本申请第二实施例提供的SSTable文件的当前数量与拒绝 比例之间的关系的示意图;

图5为根据本申请第三实施例提供的数据写入操作的控制装置的结构示 意图;

图6是根据本申请实施例的数据写入操作的控制方法的电子设备的框 图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实 施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本 领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和 修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的 描述中省略了对公知功能和结构的描述。

在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两 个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关 系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存 在B这三种情况,其中A,B可以是单数或者复数。在本申请的文字描述 中,字符“/”一般表示前后关联对象是一种“或”的关系。

图1是可以实现本申请实施例的写入操作的控制方法的一种场景 图,示例的,请结合图1所示,该写入操作的控制方法可以应用于 LSM树(LSM Tree)的数据结构中。当有数据写入时,数据会先被 写入多个内存表(MemoryTable);当MemoryTable的数量达到阈值后,MemoryTable中的数据会被写入到多个排序的字符串表(Sorted String Table,SSTable)中。当SSTable的数量达到阈值后,把多个 SSTable合并成一个SSTable。当写入速度过大时,合并速度跟不上写 入速度,会导致底层的SSTable的数量会越来越多。

为了控制底层SSTable的数量,现有技术中,通过设置用于限制SSTable 数量的阈值,使得当SSTable数量达到阈值时,便不再允许任何写入,仅执 行SSTable合并,只有等合并后的底层SSTable的数量小于阈值后才能再次 写入。但是采用现有的方法,在底层SSTable的数量达到阈值之前,写入完 全不受任何影响,可以正常写入;一旦达到阈值,写入流量会出现断崖式下 跌,因此,采用现有的方法,在控制底层SSTable的数量时,控制的灵活性 不高,且控制效果不好。

为了提高控制的灵活性,使得控制效果较好,本申请实施例提供了一 种写入操作的控制方法,通过设置第一阈值和第二阈值,使得在获取到 SSTable文件的当前数量时;将SSTable文件的当前数量分别与第一阈值 和第二阈值进行比较,若当前数量大于或等于第一阈值,且小于第二阈值, 说明继续写入的话,SSTable文件的数量会存在大于第二阈值的风险,则 在单位时间内的前预设时间段内拒绝所有数据写入操作,即在该前预设时 间段内,仅执行SSTable文件的合并,以减少底层的SSTable文件的数量, 待预设时间段结束后,再在除预设时间段之外的时间段内允许所有数据写 入操作,从而通过前该预设时间段控制拒绝继续写入操作,仅执行SSTable 文件的合并,以减少底层的SSTable文件的数量,从而提高了控制的灵活 性,使得控制效果较好。

需要说明的是,在本申请实施例中,在单位时间内的前预设时间段内 拒绝所有数据写入操作,即在该前预设时间段内,仅执行SSTable文件的 合并,以减少底层的SSTable文件的数量。而在除预设时间段之外的时间 段内允许所有数据写入操作,即在该除预设时间段之外的时间段内,即执 行所有数据的写入操作,同时也会执行SSTable文件的合并,以减少底层 的SSTable文件的数量。

可以理解的是,对于该前预设时间段内拒绝的所有数据写入操作,当 其重新发起数据写入操作请求时,则会允许执行这些数据写入操作,因此, 对于执行数据写入操作的用户而言,这些数据写入操作只是在写入过程中 耗时较大,但并不会导致业务中断。

下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个 具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实 施例不再赘述。

实施例一

图2是根据本申请第一实施例提供的数据写入操作的控制方法的流程 示意图,该数据写入操作的控制方法可以由软件和/或硬件装置执行,例如, 该硬件装置可以为数据写入操作的控制装置,该数据写入操作的控制装置可 以设置在电子设备中。示例的,请参见图2所示,该数据写入操作的控制 方法可以包括:

S201、获取SSTable文件的当前数量。

示例的,在本申请实施例中,在获取SSTable文件的当前数量时,可 以实时检测SSTable文件的数量,从而获取到SSTable文件的当前数量; 或者,也可以非实时检测SSTable文件的数量,从而获取到SSTable文件 的当前数量,具体可以根据实际需要进行设置。可以理解的是,为了及时 获取到SSTable文件的当前数量,可以实时检测SSTable文件的数量。

在获取到SSTable文件的当前数量,就可以将该SSTable文件的当前 数量与预先设置的第一阈值和第二阈值进行比较,以判断SSTable文件的 当前数量与第一阈值和第二阈值之间的关系,即执行下述S202:

S202、判断SSTable文件的当前数量是否大于或等于第一阈值,且小 于第二阈值。

其中,第一阈值小于第二阈值。示例的,第一阈值可以为320,第二 阈值可以为400,当然,第一阈值也可以为300,第二阈值也可以为420, 具体可以根据实际需要进行设置,在此,对于第一阈值和第二阈值的大小, 本申请实施例不做进一步地限制。

在判断SSTable文件的当前数量是否大于或等于第一阈值,且小于第 二阈值时,可以看出,判断结果可以分为三种不同的情况,在一种可能情 况下,即S203中所示的情况,SSTable文件的当前数量大于或等于第一阈 值,且小于第二阈值;在另一种可能情况下,即S204中所示的情况,SSTable 文件的当前数量小于第一阈值;在又一种可能情况下,即S205中所示的 情况,SSTable文件的当前数量大于或等于第二阈值,下面,将结合下述S203-S205分别对这三种可能的情况进行详细地说明。

S203、若当前数量大于或等于第一阈值,且小于第二阈值,则在单位 时间内的前预设时间段内拒绝所有数据写入操作,待预设时间段结束后, 再在除预设时间段之外的时间段内允许所有数据写入操作。

可以理解的是,在确定单位时间时,可以将每秒作为单位时间,也可 以将每2秒作为单位时间,具体可以根据实际需要进行设置。示例的,在 本申请实施例中,可以将每秒作为单位时间。

需要说明的是,由于在SSTable文件的当前数量大于或等于第一阈值, 且小于第二阈值时,需要在单位时间内的前预设时间段内拒绝所有数据写 入操作,因此,需要先确定预设时间段。示例的,预设时间段可以根据 SSTable文件的当前数量、第一阈值及第二阈值确定,若经过确定之后, 该预设时间段为1/10秒,且单位时间为每秒,则在SSTable文件的当前数 量大于或等于第一阈值,且小于第二阈值时,在1秒中的前1/10秒内拒绝 所有数据写入操作,使得在该前1/10秒内仅执行SSTable文件的合并,以 减少底层的SSTable文件的数量。待前1/10秒结束后,再在剩余的9/10 秒内允许所有数据写入操作,从而通过前该1/10秒控制拒绝继续写入操作, 仅执行SSTable文件的合并,以减少底层的SSTable文件的数量,从而提 高了控制的灵活性,使得控制效果较好。

需要说明的是,在本申请实施例中,在1秒中的前1/10秒内拒绝所有 数据写入操作,即在该前1/10秒内,仅执行SSTable文件的合并,以减少 底层的SSTable文件的数量。而在剩余的9/10秒内允许所有数据写入操作, 即在该剩余的9/10秒内,即执行所有数据的写入操作,同时也会执行 SSTable文件的合并,以减少底层的SSTable文件的数量。

可以理解的是,对于该1/10秒内拒绝的所有数据写入操作,当其重新 发起数据写入操作请求时,则会允许执行这些数据写入操作,因此,对于 执行数据写入操作的用户而言,这些数据写入操作只是在写入过程中耗时 较大,但并不会导致业务中断。

S204、若当前数量小于第一阈值,则允许执行所有数据写入操作,直 至当前数量大于或等于第一阈值。

可以理解的是,当SSTable文件的当前数量小于第一阈值时,说明 SSTable文件的当前数量较少,继续执行写入操作不会导致SSTable文件 的数量过多,此时,可以继续执行所有数据写入操作,即允许执行所有数 据写入操作。需要说明的是,此处不是无限制的允许执行所有数据写入操 作,而是直至SSTable文件的当前数量大于或等于第一阈值时,即可停止继 续执行数据写入操作。

以第一阈值为320为例,当SSTable文件的当前数量小于320时,说 明SSTable文件的当前数量较少,继续执行写入操作不会导致SSTable文 件的数量超过400,此时,可以允许执行所有数据写入操作,从而继续执 行所有数据写入操作。此处不是无限制的允许执行所有数据写入操作,而 是直至SSTable文件的当前数量大于或等于320时,即可停止继续执行数据 写入操作。

S205、若当前数量大于或等于第二阈值,则所有数据均不允许执行写 入操作,直至SSTable文件的数量小于第二阈值。

可以理解的是,当SSTable文件的当前数量大于或等于第一阈值时, 说明SSTable文件的当前数量已经过多,则不允许执行任何写入操作,由 于读数据时需要查询每个SSTable,因此,SSTable文件的当前数量越多,从 SSTable文件中读取数据的延时越大,此时,可以拒绝所有数据写入操作, 即所有数据均不允许执行写入操作,直至SSTable文件的数量小于第二阈 值,从而可以避免因为SSTable文件的数量过多而超期数据读取的时延较大,从而降低了数据读取的时延。

可以理解的是,直至SSTable文件的数量小于第二阈值可以包括两种 不同的情况,一种情况是SSTable文件的数量不仅小于第二阈值,且小于 第一阈值,在该种情况下,可以允许执行所有数据写入操作,具体可以参 见上述S204中的描述,此处不再进行赘述。另一种情况是SSTable文件 的数量小于第二阈值,且大于或者等于第一阈值,在该种情况下,可以允 许在单位时间内的前预设时间段内拒绝所有数据写入操作,待预设时间段 结束后,再在除预设时间段之外的时间段内允许所有数据写入操作,具体 可以参见上述S203中的描述,此处不再进行赘述。

示例的,以第二阈值为400为例,当SSTable文件的当前数量大于或 等于400时,说明SSTable文件的当前数量已经过多,继续执行写入操作 不会导致SSTable文件的数量超过400,由于读数据时需要查询每个SSTable, 因此,从该过多的SSTable文件中读取数据的延时越大,此时,可以拒绝所 有数据写入操作,即所有数据均不允许执行写入操作,直至SSTable文件 的当前数量小于400,从而可以避免因为SSTable文件的数量过多而超期 数据读取的时延较大,从而降低了数据读取的时延。

实施例二

可以理解的是,基于上述图2所示的实施例,在执行上述S203若当 前数量大于或等于第一阈值,且小于第二阈值,则在单位时间内的前预设 时间段内拒绝所有数据写入操作,待预设时间段结束后,再在除预设时间 段之外的时间段内允许所有数据写入操作之前,需要先获取该预设时间段, 之后,才能在单位时间内的前预设时间段内拒绝所有数据写入操作,待预 设时间段结束后,再在除预设时间段之外的时间段内允许所有数据写入操作。示例的,请参见图3所示,图3是根据本申请第二实施例提供的数据 写入操作的控制方法的流程示意图,该方法还可以包括:

S301、分别计算第二阈值与第一阈值的第一差值,及当前数量与第一 阈值的第二差值。

示例的,同样以第一阈值为320,第二阈值为400为例,则可以计算 得到第二阈值与第一阈值的第一差值为80。若SSTable文件的当前数量为 320,则可以计算得到当前数量与第一阈值的第二差值为0。

在分别计算得到第二阈值与第一阈值的第一差值,及当前数量与第一 阈值的第二差值之后,就可以根据第一差值和第二差值,获取单位时间内, 拒绝所有数据写入操作的拒绝比例,从而根据拒绝比例,确定单位时间内, 拒绝所有数据写入操作的预设时间段,即执行下述S302-S303:

S302、根据第一差值和第二差值,获取单位时间内,拒绝所有数据写 入操作的拒绝比例。

可选的,在根据第一差值和第二差值,获取单位时间内,拒绝所有数 据写入操作的拒绝比例,可以先计算第二差值与第一差值的比值;并根据 第二差值与第一差值的比值,获取单位时间内,拒绝所有数据写入操作的 拒绝比例。

示例的,在根据第二差值与第一差值的比值,获取单位时间内,拒绝 所有数据写入操作的拒绝比例时,可以根据获取单位时间内, 拒绝所有数据写入操作的拒绝比例。

其中,P表示拒绝所有数据写入操作的拒绝比例,n为一个大于0的整数, v2表示第二差值,v1表示第一差值。

结合上述S301中的描述,当计算得到第二阈值与第一阈值的第一差 值为80,当前数量与第一阈值的第二差值为0时,可以根据计 算获取单位时间内,拒绝所有数据写入操作的拒绝比例,可以得到单位时 间内,拒绝所有数据写入操作的拒绝比例为1/10。

为了更清晰地描述SSTable文件的当前数量与拒绝比例之间的关系, 示例的,可以参见图4所示,图4是根据本申请第二实施例提供的SSTable 文件的当前数量与拒绝比例之间的关系的示意图,结合图4可以看出,当 SSTable文件的当前数量处于大于或者等于第一阈值320,且小于第二阈 值400范围内时,SSTable文件的当前数量越多,对应的拒绝比例越大, 即在单位时间内,拒绝写入的预设时间段就会越长;当SSTable文件的当 前数量大于第二阈值400时,对应的拒绝比例为1,即在整个单位时间内 都是拒绝数据写入操作,在该种情况下,可以无需先计算拒绝比例,而是 当SSTable文件的当前数量大于第二阈值400时,所有数据均不允许执行 写入操作,直至SSTable文件的数量小于第二阈值400,具体可参见上述 S205中的描述,此处不再进行赘述。

在通过S302获取到单位时间内,拒绝所有数据写入操作的拒绝比例 之后,就可以执行下述S303:

S303、根据拒绝比例,确定单位时间内,拒绝所有数据写入操作的预 设时间段。

在根据拒绝对比,计算单位时间内,拒绝所有数据写入操作的预设时 间段时,可以计算单位时间与拒绝比例的乘积,就可以得到单位时间内, 拒绝所有数据写入操作的预设时间段。

示例的,结合上述S302中的描述,在计算得到拒绝比例1/10之后, 若单位时间为每秒,则可以得到该该单位时间内,拒绝所有数据写入操作 的预设时间段1/10秒。这样当SSTable文件的当前数量大于或等于320, 且小于400时,可以在1秒中的前1/10秒内拒绝所有数据写入操作,使得 在该前1/10秒内仅执行SSTable文件的合并,以减少底层的SSTable文件 的当前数量。待前1/10秒结束后,再在剩余的9/10秒内允许所有数据写 入操作,从而通过前该1/10秒控制拒绝继续写入操作,仅执行SSTable文 件的合并,以减少底层的SSTable文件的数量,从而提高了控制的灵活性, 使得控制效果较好。

实施例三

图5为根据本申请第三实施例提供的数据写入操作的控制装置50的结构 示意图,该数据写入操作的控制装置50可以包括:

获取模块501,用于获取SSTable文件的当前数量。

控制模块502,用于若所述当前数量大于或等于第一阈值,且小于第二 阈值,则在单位时间内的前预设时间段内拒绝所有数据写入操作,待所述预 设时间段结束后,再在除所述预设时间段之外的时间段内允许所有数据写入 操作。

可选的,所述获取模块501,还用于获取所述单位时间内,拒绝所有数 据写入操作的拒绝比例。

所述控制模块502,还用于根据所述拒绝比例,确定所述单位时间内, 拒绝所有数据写入操作的预设时间段。

可选的,所述获取模块501,具体用于分别计算所述第二阈值与所述第 一阈值的第一差值,及所述当前数量与所述第一阈值的第二差值;并根据所 述第一差值和所述第二差值,获取所述单位时间内,拒绝所有数据写入操作 的拒绝比例。

可选的,所述获取模块501,具体用于计算所述第二差值与所述第一差 值的比值;并根据所述第二差值与所述第一差值的比值,获取所述单位时间 内,拒绝所有数据写入操作的拒绝比例。

可选的,所述获取模块501,具体用于根据获取所述单位时 间内,拒绝所有数据写入操作的拒绝比例。

其中,P表示拒绝所有数据写入操作的拒绝比例,n为一个大于0的整数, v2表示第二差值,v1表示第一差值。

可选的,所述控制模块502,还用于若所述当前数量小于所述第一阈值, 则允许执行所有数据写入操作,直至所述当前数量大于或等于所述第一阈值。

可选的,所述控制模块502,还用于若所述当前数量大于或等于所述第 二阈值,则所有数据均不允许执行写入操作,直至所述SSTable文件的数量 小于所述第二阈值。

本申请实施例提供的数据写入操作的控制装置50,可以执行上述任一实 施例中的数据写入操作的控制方法的技术方案,其实现原理以及有益效果与 数据写入操作的控制方法的实现原理及有益效果类似,可参见数据写入操作 的控制方法的实现原理及有益效果,此处不再进行赘述。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储 介质。

如图6所示,图6是根据本申请实施例的数据写入操作的控制方法的 电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上 型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、 大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动 装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类 似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅 仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图6所示,该电子设备包括:一个或多个处理器601、存储器602, 以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不 同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方 式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存 储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设 备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将 多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可 以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器 阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601 为例。

存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中, 所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处 理器执行本申请所提供的数据写入操作的控制方法。本申请的非瞬时计算 机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请 所提供的数据写入操作的控制方法。

存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时 软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据 写入操作的控制方法对应的程序指令/模块(例如,附图5所示的获取模块 501和控制模块502)。处理器601通过运行存储在存储器602中的非瞬 时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处 理,即实现上述方法实施例中的数据写入操作的控制方法。

存储器602可以包括存储程序区和存储数据区,其中,存储程序区可 存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据 数据写入操作的控制方法的电子设备的使用所创建的数据等。此外,存储 器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至 少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实 施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些 远程存储器可以通过网络连接至数据写入操作的控制方法的电子设备。上 述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及 其组合。

数据写入操作的控制方法的电子设备还可以包括:输入装置603和输 出装置604。处理器601、存储器602、输入装置603和输出装置604可以 通过总线或者其他方式连接,图6中以通过总线连接为例。

输入装置603可接收输入的数字或字符信息,以及产生与数据写入操 作的控制方法的电子设备的用户设置以及功能控制有关的键信号输入,例 如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标 按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅 助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显 示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集 成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、 和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多 个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处 理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用 可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装 置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输 入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编 程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、 和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读 介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程 处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存 储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器 指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数 据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术, 该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线 管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠 标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算 机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的 反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉 反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入) 来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如, 作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、 或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器 的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处 描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部 件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络 的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此 并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具 有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,在控制底层SSTable的数量时,通过 设置第一阈值和第二阈值,使得在获取到SSTable文件的当前数量时;将 SSTable文件的当前数量分别与第一阈值和第二阈值进行比较,若当前数 量大于或等于第一阈值,且小于第二阈值,说明继续写入的话,SSTable 文件的数量会存在大于第二阈值的风险,则在单位时间内的前预设时间段 内拒绝所有数据写入操作,即在该前预设时间段内,仅执行SSTable文件 的合并,以减少底层的SSTable文件的数量,待预设时间段结束后,再在 除预设时间段之外的时间段内允许所有数据写入操作,从而通过前该预设 时间段控制拒绝继续写入操作,仅执行SSTable文件的合并,以减少底层 的SSTable文件的数量,从而提高了控制的灵活性,使得控制效果较好。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或 删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地 执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望 的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术 人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、 子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和 改进等,均应包含在本申请保护范围之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:文件读写方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类