CN111033471B - 用于控制只追加文件的方法、系统以及介质 - Google Patents

用于控制只追加文件的方法、系统以及介质 Download PDF

Info

Publication number
CN111033471B
CN111033471B CN201880043668.0A CN201880043668A CN111033471B CN 111033471 B CN111033471 B CN 111033471B CN 201880043668 A CN201880043668 A CN 201880043668A CN 111033471 B CN111033471 B CN 111033471B
Authority
CN
China
Prior art keywords
aof
determining
utilization
recovery time
threshold
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
CN201880043668.0A
Other languages
English (en)
Other versions
CN111033471A (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.)
Ou LanAjia
Yue AfuSitanboge
Yue XiGetelibu
Yi FutaqiShuerman
Original Assignee
Ou LanAjia
Yue AfuSitanboge
Yue XiGetelibu
Yi FutaqiShuerman
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 Ou LanAjia, Yue AfuSitanboge, Yue XiGetelibu, Yi FutaqiShuerman filed Critical Ou LanAjia
Publication of CN111033471A publication Critical patent/CN111033471A/zh
Application granted granted Critical
Publication of CN111033471B publication Critical patent/CN111033471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

提供用于控制只追加文件重写的方法、系统和介质。根据一些实施例,该方法包括:确定数据库的分片的利用率;确定是否利用率超过持久存储利用率阈值;确定从仅追加文件恢复分片的恢复时间;确定是否恢复时间超过恢复时间阈值;以及当确定利用率超过利用率阈值时或者当确定恢复时间超过恢复时间阈值时,导致执行只追加文件重写。

Description

用于控制只追加文件的方法、系统以及介质
技术领域
本申请要求2017年6月30日提交的美国专利申请No.15/639,965的权益,其全部内容通过引用合并于此。
所公开的主题涉及用于控制只追加文件重写的方法、系统和介质。
背景技术
随着数据库访问速度要求的不断提高和随机存取存储器(RAM)的成本的不断降低,内存数据库系统的流行度持续增长。在这样的数据库系统中,不是将数据存储在诸如计算机硬盘的非易失性存储设备中,而是将数据存储在RAM中,这明显更快。
使用易失性存储器(诸如RAM)的内存数据库的问题在于,其中存储的数据在诸如电源故障的各种情况下容易丢失。
在内存数据库系统中管理数据持久性的一种流行方法是将数据写入存储在非易失性存储设备(诸如计算机硬盘、存储区域网络(SAN)或网络附加存储(NAS)(在此也称为永久存储设备等)中的只追加文件(AOF)。通常,以这种方法,内存数据库接收到的每个“写入”命令也都被写入存储在计算机非易失性存储器中的AOF。像Redis这样的现代内存数据库系统提供多种方式来控制对AOF的命令“写入”,例如:对于每个“写入”命令,在AOF中都写入新的行;或所有新的“写入”命令在N秒后写入到AOF,其中N具有任何合适的值。
在内存数据库节点发生故障并且先前托管在该节点的RAM中的数据丢失的情况下,可以将AOF加载到数据库内存以从数据丢失恢复。
AOF方法的问题是AOF倾向于非常快速地增长。事实就是这样,因为到达数据库系统的每个“写入”命令都会在AOF中作为新的文本行被写入。因此,针对同一数据库对象的多个“写入”命令将在AOF中导致多行,而不只是一行。
为了控制AOF的大小,可以触发AOF重写事件,其中将现有的内存中数据集重写为新的AOF,使得对于每个对象只有一行。可替选地,重写操作可以创建一个新文件,其中在该文件的第一部分中以序列化和压缩的方式包含内存数据集的快照(snapshot)(在Redis术语中,它称为RDB格式),并且每个新的“写入”操作都将使用AOF格式被添加到文件中。通常,当磁盘上AOF的大小是RAM中数据集大小的N倍(其中N可以具有任何合适的值)时,会触发此事件。
对像Redis这样的内存数据库实现AOF重写的一种方法是使用Linux写时拷贝(COW)过程获取内存数据集的快照。这保证新的重写AOF表示数据库的时间点状态。在重写过程中,内存数据库维护AOF的两个副本:(1)写入当前AOF的一个副本;(2)写入新的重写AOF的一个副本。此外,内存数据库维护一个内部内存缓冲区,该缓冲区包括从拍摄快照时开始到AOF重写过程结束对数据集所做的所有更改。
当整个数据集快照被写入新的AOF且自从拍摄快照以来对数据集所做的所有更改也被写入新的AOF时,AOF重写过程完成。
AOF重写事件的问题是它们是磁盘密集型操作。当发生重写事件时,它可能阻止对内存数据库的更新被写入当前的AOF,这可能会大大延迟整个数据库的执行时间。这样的特征可能导致内存数据库违反数据库服务提供商与其客户之间的服务级别协议的标准条款。
因此,期望提供用于控制只追加文件(append-only file)重写的新方法、系统和介质。
发明内容
根据所公开的主题的各种实施例,提供用于控制只追加文件重写的方法、系统和介质。
根据所公开的主题的一些实施例,提供用于控制只追加文件重写的方法,该方法包括:确定数据库的分片(shard)的利用率(utilization);确定是否利用率超过持久存储利用率阈值;确定从只追加文件恢复分片的恢复时间;确定是否恢复时间超过恢复时间阈值;以及当确定利用率超过利用率阈值时,或者当确定恢复时间超过恢复时间阈值时,导致执行只追加文件重写。
根据所公开的主题的一些实施例,提供用于控制只追加文件重写的系统,该系统包括:至少一个硬件处理器,其被配置成:确定数据库的分片的利用率;确定是否利用率超过持久存储利用率阈值;确定从只追加文件恢复分片的恢复时间;确定是否恢复时间超过恢复时间阈值;以及当确定利用率超过利用率阈值时,或当确定恢复时间超过恢复时间阈值时,导致执行只追加文件重写。
根据一些实施例,提供包含计算机可执行指令的非暂时性计算机可读介质,该计算机可执行指令在由处理器执行时,使处理器执行用于控制只追加文件重写的方法,该方法包括:确定数据库的分片的利用率;确定是否利用率超过持久存储利用率阈值;确定从只追加文件恢复分片的恢复时间;确定是否恢复时间超过恢复时间阈值;以及当确定利用率超过利用率阈值时,或者当确定恢复时间超过恢复时间阈值时,导致执行只追加文件重写。
附图说明
当结合以下附图考虑时,参考所公开主题的以下详细描述,可以更充分地理解所公开主题的各种目的、特征和优点,其中,相同的附图标记标识相同的元件。
图1是根据所公开的主题的一些实施例的集群架构(cluster architecture)的图的示例。
图2是根据所公开的主题的一些实施例的节点架构的图的示例。
图3是根据所公开主题的一些实施例的用于确定是否触发AOF重写事件的过程的流程图的示例。
图4是根据所公开的主题的一些实施例的用于确定恢复时间的过程的流程图的示例。
图5是根据一些实施例的能够被用于实现一个或多个服务器的硬件图的示例,一个或多个服务器能够被用于实现图1至图2中所描述的任何组件。
具体实施方式
根据各种实施例,提供用于控制只追加文件(AOF)重写的机制(可以包括方法、系统和/或介质)。
一般而言,当总持久存储利用率达到或超过阈值时,当AOF对AOF配额的利用率达到或超过阈值时,和/或当从AOF恢复数据库的部分的时间达到或超过阈值时,这些机制可以通过触发AOF重写事件来控制AOF重写事件。这些机制可以在分片级别上工作,其中分片表示数据库数据集的子集,并且通常由不同的过程进行管理。
根据一些实施例,内存中非关系数据库的示例可以被实现为如图1所图示的系统100。如所示的,系统100可以包括一个或多个集群102和一个或多个应用104。
集群102可以包括节点110的一个或多个集群,用于提供内存中数据存储以及相关功能,如下文进一步描述。在一些实施例中,集群102还可以包括耦合到节点110的任何合适的持久存储112。
应用104可以是使用存储在节点110中的数据和相关信息的一个或多个应用。如在图1中所示,可以使用一个或多个服务器来执行每个应用104。在一些实施例中,可以使用任何合适的服务器。
转向图2,图示根据一些实施例的可用作集群102中的节点110的节点200的示例。如所示的,在一些实施例中,节点200可以包括代理202、集群节点管理器(CNM)204、零个或多个分片206以及公共集群存储(CCS)208。同样,如在图2中所示,在一些实施例中,节点200可以耦合到任何合适的持久存储设备210。
根据一些实施例,代理202可以用于管理节点200的控制流,管理节点200与同一集群中的一个或多个其他节点之间的控制流,并且管理节点200和另一个集群中的一个或多个节点之间的控制流。代理202还可以用于执行一些实施例中的客户端认证,并且一旦请求被认证就请求转发。可以使用任何合适的一种或多种客户端认证机制。例如,在一些实施例中,可以使用安全套接字(Secured Socket)层(SSL)认证、简单认证和安全层(SASL)认证、密码认证、源IP认证、Amazon Web服务安全组和/或任何其他合适的认证机制。
根据一些实施例,集群节点管理器(CNM)204可用于执行节点管理功能和集群管理功能。例如,这样的功能可以包括提供/取消供应新数据库、分片迁移(例如,将分片从一个节点移动到另一个节点)、重新分片(例如,向数据库添加更多分片)、自动缩放(例如,从集群中添加/去除节点、重新平衡(例如,集群节点上的分片的最佳重新排序)、资源管理(例如,确定给定分片是否已达到其最大处理能力或即将超过其内存限制)和/或与管理节点和/或集群有关的任何其他适当功能。
根据一些实施例,作为节点管理器的CNM 204还可以提供由分片206执行的用于确定何时触发AOF重写事件的过程,诸如下面结合图2所描述的过程。
在一些实施例中,分片206可以用于提供内存中非关系数据库功能和任何其他合适的一个或多个分片过程。在一些实施例中,分片可以基于具有增强功能的开源Redis服务器。在一些实施例中,分片可以代表以下选项之一:(1)Redis数据库(DB);(2)Redis DB的分区;(3)Memcached桶(Bucket);或(4)Memcached桶(Bucket)的分区。在一些实施例中,每个集群的节点管理N个分片206,并且在一些实施例中可以存在任何合适数量的分片,包括零个。
在一些实施例中,分片206使用持久存储210来写入其AOF。
根据一些实施例,公共集群存储(CCS)208是内部集群存储库服务(其可以基于Redis架构)。在一些实施例中,此服务可以包括每个分片、每个数据库、每个节点和每个集群的配置、统计信息和警报信息。集群中的所有节点都可以与每个集群的配置同步。代理和CNM可以注册到CCS以接收与其操作相关的配置更改事件。
在一些实施例中,节点可以存储数据库的一个或多个分片,其可以包括一个或多个数据库分区。每个分片可以是分片的主分片,也可以是分片的从分片,使得分片的主分片可以满足读取和写入请求,而分片的从分片可以仅满足读取请求。在一些实施例中,单个节点可以以分片的主分片和分片的从分片的任何适当组合来存储多个分片。
转向图3,示出用于确定何时触发针对数据库的节点的AOF重写操作的过程的示例300。在一些实施例中,该过程可以由CNM 204执行。
如所图示的,在过程300在302处开始之后,该过程可以在304处确定包含用于该节点的分片的AOF的持久存储的当前总利用率。可以以任何合适的方式进行该确定。例如,在一些实施例中,可以通过将所有AOF的大小之和除以持久存储大小来确定持久存储的总利用率。
接下来,在306处,过程300可以确定持久存储的当前总利用率是否大于(或大于或等于)用于触发AOF重写的阈值。在一些实施例中,可以使用任何合适的阈值。例如,在一些实施例中,阈值可以是90%。作为另一个示例,在一些实施例中,阈值可以是80%。
可替选地,在304和306处,在确定持久存储的当前总利用率为百分比并将该持久存储的当前总利用率与阈值百分比进行比较时,可以将持久存储空间的绝对值用于当前总利用率和阈值。更具体地,例如,在一些实施例中,持久存储的当前总利用率可以等于AOF的大小之和,并且阈值可以等于持久存储的大小(或其一些百分比)。
如果在306确定持久存储的当前总利用率大于(或大于或等于)触发AOF重写的阈值,则过程300可以分支到316,在此处触发AOF重写。一旦在316触发AOF重写,过程300就可以循环回到304。
如果过程300在306处确定持久存储的当前总利用率被确定为不大于(或大于或等于)触发AOF重写的阈值,则在308处过程可以针对该节点的每个分片的AOF配额(quota)确定AOF的当前总利用率。可以以任何合适的方式进行此确定。例如,在一些实施例中,可以通过将分片的当前AOF大小除以分片的最大AOF大小来确定分片的AOF的当前利用率。分片的最大AOF大小可以具有任何合适的值。例如,在一些实施例中,AOF的最大大小可以等于总可用持久存储空间乘以数据库节点上分片的RAM利用率(当以百分比表达时)。因此,如果数据库节点上分片的RAM利用率对应于数据库节点可用RAM的10%,并且总可用持久存储空间为100GB,则可以计算出最大文件大小等于10GB(10%*100GB)。
接下来,在310处,过程300可以基于持久存储利用率来确定任何分片的AOF持久存储利用率是否大于(或大于或等于)用于触发AOF重写的阈值。在一些实施例中,可以使用任何合适的阈值。例如,在一些实施例中,阈值可以是90%。作为另一个示例,在一些实施例中,阈值可以是80%。
可替选地,在308和310处,确定持久存储利用率为百分比并将该持久存储利用率与阈值百分比进行比较,可以将持久存储大小的绝对值用于AOF持久存储利用率和阈值。更具体地,例如,在一些实施例中,用于分片的AOF持久存储利用率可以等于分片的AOF的大小,并且阈值可以等于分片的最大AOF大小(或其一些百分比)(例如,可以如上所述计算)。
如果在310处确定任何分片的持久存储利用率大于(或大于或等于)用于触发AOF重写的阈值,则过程300可以分支到316,在此处触发AOF重写。一旦在316处触发AOF重写,过程300就可以循环回到304。
如果在310处确定任何分片的持久存储利用率不大于(或大于或等于)用于触发AOF重写的阈值,则过程300可以分支到312,在此处可以确定恢复时间,该恢复时间用于从该节点的AOF(即,该节点的所有分片的AOF)恢复该节点。过程300可以任何合适的方式确定该恢复时间。例如,在一些实施例中,可以使用图4的过程来确定此恢复时间,在下面对其进行描述。
接下来,在314处,过程300可以基于恢复时间来确定是否恢复时间大于(或大于或等于)用于触发AOF重写的阈值。在一些实施例中,可以使用任何合适的阈值。例如,在一些实施例中,阈值可以等于数据库必须遵守的一个或多个服务级别协议中指定的最大宕机时间(downtime)。更具体地,例如,该阈值可以是一小时。
如果在314处确定恢复时间大于(或大于或等于)用于触发AOF重写的阈值,则过程300可以分支到316,在此处触发AOF重写。一旦在316触发AOF重写,或者如果在314处确定任何分片的恢复时间不大于(或大于或等于)用于触发AOF重写的阈值,则过程300可以循环回到304。
转到图4,示出用于确定用于从节点的AOF恢复节点的恢复时间的过程的示例400。在一些实施例中,该过程可以由分片206(图2)和CNM 204(图2)的组合执行,该分片206累加执行AOF文件中的每个命令所花费的时间,该CNM 204比较所累加的值与作为恢复阈值被写入CCS的值,并且在达到阈值时触发AOF重写操作。如所图示的,一旦过程400在402处开始,则该过程可以在404处将分片的重写时间初始化为估计值,该估计值表示将AOF文件的初始部分加载到内存所需的估计时间。该估计可以基于分片中主键(key)的数量和持久存储容量提供的读取吞吐量。接下来,过程可以在406处等待对分片的写入操作。
一旦写入操作完成,过程400就可以确定完成写入操作的时间。该确定可以以任何合适的方式进行。例如,在一些实施例中,可以通过测量被写入AOF的任何写入操作的执行时间来做出该确定。
接下来,在410处,过程400可以将在408处确定的时间添加到分片的总重写时间。然后,在412处,过程可以确定是否已经触发重写操作(例如,如以上结合图3的312所描述的)。如果已经确定重写操作已经被触发,则过程400可以循环回到404。否则,过程400可以循环回到406。
如以上结合图1至图2所述,服务器可用于实现一个或多个应用服务器、集群和/或持久存储。这些服务器中的任何一个或多个可以是任何合适的通用设备或专用设备。如下面进一步所述,这些通用或专用设备中的任何一个都可以包括任何合适的组件,诸如硬件处理器(可以是微处理器、数字信号处理器、控制器等)、存储器、通信接口、显示控制器、输入设备等。
在一些实施例中,结合图1和图2描述的组件中的任何两个或更多个之间的通信可以使用任何适当的计算机网络或这些网络的组合来实现,这些网络包括因特网、以太网、广域网(WAN)、局域网(LAN)、无线网络、Wi-Fi网络、数字用户线(DSL)网络、帧中继网络、异步传输模式(ATM)网络、虚拟专用网(VPN)、内部网等。
图5图示根据一些实施例的可用于实现一个或多个服务器的硬件的示例500。如所示的,服务器500可以包括硬件处理器502、存储器504、通信接口506、输入/输出接口508和/或任何其他合适的组件。可以使用任何合适的微处理器、微控制器、数字信号处理器等来实现硬件处理器502。可以使用任何合适的随机存取存储器(RAM)、只读存储器(ROM)、磁性介质、光学介质等来实现存储器504。通信接口506可以包括任何合适的单向或双向接口,用于通过电线、光纤、电波和/或任何其他合适的介质进行通信。输入/输出接口508可以包括用于接收用户输入和/或提供输出的任何合适的接口,包括键盘、触摸屏、指示器控件(鼠标(mouse)、多鼠标(mice)、跟踪球、触控笔(stylus)、跟踪板等)、显示器、音频输出等。
在一些实施例中,任何合适的计算机可读介质可以用于存储用于执行本文描述的功能和/或过程的指令。在一些实施例中,此介质可以是存储器504的一部分或与其分离。例如,在一些实施例中,计算机可读介质可以是暂时性的或非暂时性的。例如,非暂时性计算机可读介质可以包括如下介质,诸如磁性介质(诸如硬盘、软盘等)、光学介质(诸如光盘、数字视频盘、蓝光光盘等)、半导体介质(诸如随机存取存储器(RAM)、闪存、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、以及在传输期间不会短暂出现或没有任何永久性外观的任何合适介质和/或任何适当的有形介质。作为另一个示例,暂时性的计算机可读介质可以包括网络、电线、导体、光纤、电路中的信号、在传输过程中短暂且没有任何永久性外观的任何合适的介质和/或任何合适的无形介质。
在所公开的主题的一些实施例中,图3和图4的过程的上述步骤可以以不限于附图中示出和描述的顺序和序列的任何顺序或序列来执行或进行。同样,图3和图4的过程的一些上述步骤也可以在合适时基本上同时执行或者进行或并行地执行或者进行,以减少时延和处理时间。此外,应当注意的是,图3和图4仅作为示例提供。这些附图中所示的至少一些步骤可以以与所表示的顺序不同的顺序执行、同时执行或省略。
本文描述的示例的提供(以及用短语表达为“诸如”、“例如”、“包括”等的从句)不应解释为将所要求保护的主题限制于特定示例;而是,这些示例仅旨在说明许多可能方面中的一些。还应该注意的是,如本文所使用的,术语机制可以涵盖硬件、软件、固件或其任何合适的组合。
尽管已经在前述说明性实施例中描述和说明本发明,但是应当理解,本公开仅是通过示例的方式进行的,并且可以在不脱离仅由所附权利要求书限定的本发明的精神和范围的情况下对本发明的实施方式的详情进行许多改变。所公开的实施例的特征可以以各种方式组合和重新布置。

Claims (15)

1.一种用于控制只追加文件(AOF)重写的方法,包括:
确定数据库的分片的AOF利用率;
确定是否所述AOF利用率超过AOF利用率阈值;
确定从AOF恢复所述分片的恢复时间;
确定是否所述恢复时间超过恢复时间阈值;以及
当确定所述AOF利用率超过所述AOF利用率阈值时或者当确定所述恢复时间超过所述恢复时间阈值时,导致执行AOF重写。
2.根据权利要求1所述的方法,其中,确定所述利用率包括:将用于所述分片的AOF大小除以用于所述分片的最大AOF大小。
3.根据权利要求1所述的方法,其中,确定所述恢复时间是基于服务级别协议中指定的最大宕机时间。
4.根据权利要求1所述的方法,其中,确定所述恢复时间包括:
确定所述AOF的快照部分的初始估计加载时间;
对于对所述AOF的多个写入操作中的每个写入操作,确定完成所述写入操作所需的时间量;以及
将针对所述多个写入操作的所述确定的时间量与所述初始估计加载时间求和。
5.根据权利要求1所述的方法,进一步包括:
确定当前总持久存储利用率;
确定是否所述当前总持久存储利用率超过总持久存储利用率阈值;以及
当所述当前总持久存储利用率超过所述总持久存储利用率阈值时,导致执行AOF重写。
6.一种用于控制只追加文件(AOF)重写的系统,包括:
至少一个硬件处理器,所述至少一个硬件处理器被配置成:
确定数据库的分片的AOF利用率;
确定是否所述AOF利用率超过AOF利用率阈值;
确定从AOF恢复所述分片的恢复时间;
确定是否所述恢复时间超过恢复时间阈值;以及
当确定所述AOF利用率超过所述AOF利用率阈值时或者当确定所述恢复时间超过所述恢复时间阈值时,导致执行AOF重写。
7.根据权利要求6所述的系统,其中,所述至少一个硬件处理器通过至少将用于所述分片的AOF大小除以用于所述分片的最大AOF大小来确定所述利用率。
8.根据权利要求6所述的系统,其中,所述至少一个硬件处理器至少基于服务级别协议中指定的最大宕机时间来确定所述恢复时间。
9.根据权利要求6所述的系统,其中,所述至少一个硬件处理器至少通过以下步骤来确定所述恢复时间:
确定所述AOF的快照部分的初始估计加载时间;
对于对所述AOF的多个写入操作中的每个写入操作,确定完成所述写入操作所需的时间量;以及
将针对所述多个写入操作的所述确定的时间量与所述初始估计加载时间求和。
10.根据权利要求6所述的系统,其中,所述至少一个硬件处理器还被配置成:
确定当前总持久存储利用率;
确定是否所述当前总持久存储利用率超过总持久存储利用率阈值;以及
当所述当前总持久存储利用率超过所述总持久存储利用率阈值时,导致执行AOF重写。
11.一种包含计算机可执行指令的非暂时性计算机可读介质,所述计算机可执行指令在由处理器执行时,使所述处理器执行用于控制只追加文件(AOF)重写的方法,所述方法包括:
确定数据库的分片的AOF利用率;
确定是否所述AOF利用率超过AOF利用率阈值;
确定从AOF恢复所述分片的恢复时间;
确定是否所述恢复时间超过恢复时间阈值;以及
当确定所述AOF利用率超过所述AOF利用率阈值时或者当确定所述恢复时间超过所述恢复时间阈值时,导致执行AOF重写。
12.根据权利要求11所述的非暂时性计算机可读介质,其中,确定所述利用率包括:将用于所述分片的AOF大小除以用于所述分片的最大AOF大小。
13.根据权利要求11所述的非暂时性计算机可读介质,其中,确定所述恢复时间是基于服务级别协议中指定的最大宕机时间。
14.根据权利要求11所述的非暂时性计算机可读介质,其中,确定所述恢复时间包括:
确定所述AOF的快照部分的初始估计加载时间;
对于对所述AOF的多个写入操作中的每个写入操作,确定完成所述写入操作所需的时间量;以及
将针对所述多个写入操作的所述确定的时间量与所述初始估计加载时间求和。
15.根据权利要求11所述的非暂时性计算机可读介质,其中,所述方法进一步包括:
确定当前总持久存储利用率;
确定是否所述当前总持久存储利用率超过总持久存储利用率阈值;以及
当所述当前总持久存储利用率超过所述总持久存储利用率阈值时,导致执行AOF重写。
CN201880043668.0A 2017-06-30 2018-07-02 用于控制只追加文件的方法、系统以及介质 Active CN111033471B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/639,965 US11138076B2 (en) 2017-06-30 2017-06-30 Methods, systems, and media for controlling append-only file rewrites
US15/639,965 2017-06-30
PCT/US2018/040590 WO2019006454A1 (en) 2017-06-30 2018-07-02 METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD

Publications (2)

Publication Number Publication Date
CN111033471A CN111033471A (zh) 2020-04-17
CN111033471B true CN111033471B (zh) 2023-05-16

Family

ID=64738224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880043668.0A Active CN111033471B (zh) 2017-06-30 2018-07-02 用于控制只追加文件的方法、系统以及介质

Country Status (8)

Country Link
US (3) US11138076B2 (zh)
EP (1) EP3646183A4 (zh)
KR (2) KR20210130824A (zh)
CN (1) CN111033471B (zh)
AU (2) AU2018294443B2 (zh)
CA (1) CA3068321A1 (zh)
IL (1) IL271581A (zh)
WO (1) WO2019006454A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138076B2 (en) * 2017-06-30 2021-10-05 Redis Ltd. Methods, systems, and media for controlling append-only file rewrites
US10769126B1 (en) * 2017-09-22 2020-09-08 Amazon Technologies, Inc. Data entropy reduction across stream shard
US11204842B2 (en) * 2017-11-22 2021-12-21 Acronis International Gmbh System and method for automating formation and execution of a backup strategy using machine learning
CN111435942B (zh) * 2019-01-14 2023-04-18 北京京东尚科信息技术有限公司 redis集群访问方法、系统、中间件、介质及设备
CN110032496B (zh) * 2019-04-19 2023-10-13 杭州玳数科技有限公司 一种支持多样化日志合并的日志采集方法及系统
CN113590379A (zh) * 2021-06-25 2021-11-02 国电南瑞科技股份有限公司 Redis数据持久化方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间
CN103885895A (zh) * 2012-12-19 2014-06-25 国际商业机器公司 容错集群存储系统中的写入性能
WO2016118176A1 (en) * 2015-01-20 2016-07-28 Hewlett Packard Enterprise Development Lp Database management
CN105989160A (zh) * 2015-03-03 2016-10-05 大唐软件技术股份有限公司 一种针对Redis数据库的内存数据持久化方法和装置

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US7020599B1 (en) * 2001-12-13 2006-03-28 Oracle International Corporation (Oic) Mean time to recover (MTTR) advisory
US7076263B2 (en) * 2002-02-19 2006-07-11 Qualcomm, Incorporated Power control for partial channel-state information (CSI) multiple-input, multiple-output (MIMO) systems
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
GB0424488D0 (en) 2004-11-05 2004-12-08 Ibm A method apparatus computer program and computer program product for adjusting the frequency at which data is backed up
JP2007179435A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理装置、情報処理方法、プログラム
US20080083037A1 (en) * 2006-10-03 2008-04-03 Rmcl, Inc. Data loss and theft protection method
US8341637B2 (en) 2008-08-12 2012-12-25 International Business Machines Corporation Utilization management
JP5091894B2 (ja) * 2009-03-13 2012-12-05 株式会社日立製作所 ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置
US8543728B2 (en) * 2010-03-25 2013-09-24 Verizon Patent And Licensing Inc. Dampening interface flapping
US10198463B2 (en) * 2010-04-16 2019-02-05 Salesforce.Com, Inc. Methods and systems for appending data to large data volumes in a multi-tenant store
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9996540B2 (en) 2011-03-31 2018-06-12 EMC IP Holding Company LLC System and method for maintaining consistent points in file systems using a prime dependency list
US8689047B2 (en) * 2011-07-22 2014-04-01 Microsoft Corporation Virtual disk replication using log files
US8671249B2 (en) 2011-07-22 2014-03-11 Fusion-Io, Inc. Apparatus, system, and method for managing storage capacity recovery
GB2495468B (en) * 2011-09-02 2017-12-13 Skype Video coding
US8694754B2 (en) * 2011-09-09 2014-04-08 Ocz Technology Group, Inc. Non-volatile memory-based mass storage devices and methods for writing data thereto
CN103577476B (zh) * 2012-08-06 2016-06-08 腾讯科技(深圳)有限公司 网页浏览记录的处理方法及网页浏览装置
CN102902561B (zh) 2012-09-13 2016-01-20 新浪网技术(中国)有限公司 数据存储方法及数据存储系统
US9304998B2 (en) * 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US8949224B2 (en) 2013-01-15 2015-02-03 Amazon Technologies, Inc. Efficient query processing using histograms in a columnar database
US11030055B2 (en) * 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
JP6075180B2 (ja) * 2013-04-18 2017-02-08 オムロン株式会社 作業管理システムおよび作業管理方法
WO2014173298A1 (zh) * 2013-04-25 2014-10-30 飞天诚信科技股份有限公司 一种管理卡片上应用的方法
AU2014272791B2 (en) * 2013-05-31 2017-01-12 Nasdaq Technology Ab Apparatus, system, and method of elastically processing message information from multiple sources
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9268653B2 (en) * 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
TWI626547B (zh) * 2014-03-03 2018-06-11 國立清華大學 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統
US9547565B2 (en) * 2014-03-11 2017-01-17 Iex Group, Inc. Techniques for message retransmission mechanism
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
US9424140B1 (en) 2014-08-20 2016-08-23 Amazon Technologies, Inc. Providing data volume recovery access in a distributed data store to multiple recovery agents
JP5975473B2 (ja) * 2014-08-29 2016-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation バックアップ方法、リストア方法、ストレージ・システムおよびプログラム
US9824092B2 (en) * 2015-06-16 2017-11-21 Microsoft Technology Licensing, Llc File storage system including tiers
US10162714B2 (en) 2015-08-27 2018-12-25 Netapp, Inc. Methods and systems for restoring data containers in a storage system
US10467100B2 (en) * 2016-08-15 2019-11-05 Western Digital Technologies, Inc. High availability state machine and recovery
US20180150220A1 (en) * 2016-11-25 2018-05-31 Samsung Electronics Co., Ltd. System and method for improving storage device i/o performance
US10481988B2 (en) * 2017-01-24 2019-11-19 Zerto Ltd. System and method for consistency verification of replicated data in a recovery system
US11138076B2 (en) * 2017-06-30 2021-10-05 Redis Ltd. Methods, systems, and media for controlling append-only file rewrites

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间
CN103885895A (zh) * 2012-12-19 2014-06-25 国际商业机器公司 容错集群存储系统中的写入性能
WO2016118176A1 (en) * 2015-01-20 2016-07-28 Hewlett Packard Enterprise Development Lp Database management
CN105989160A (zh) * 2015-03-03 2016-10-05 大唐软件技术股份有限公司 一种针对Redis数据库的内存数据持久化方法和装置

Also Published As

Publication number Publication date
US11687419B2 (en) 2023-06-27
WO2019006454A1 (en) 2019-01-03
AU2018294443A1 (en) 2020-01-30
KR20200125921A (ko) 2020-11-05
US20190004906A1 (en) 2019-01-03
AU2018294443B2 (en) 2021-08-19
CN111033471A (zh) 2020-04-17
IL271581A (en) 2020-02-27
KR20210130824A (ko) 2021-11-01
AU2021266299A1 (en) 2021-12-09
AU2021266299B2 (en) 2023-07-13
US20230273866A1 (en) 2023-08-31
KR102316397B1 (ko) 2021-10-25
US20220027242A1 (en) 2022-01-27
WO2019006454A8 (en) 2020-01-09
EP3646183A4 (en) 2021-03-10
US11138076B2 (en) 2021-10-05
CA3068321A1 (en) 2019-01-03
EP3646183A1 (en) 2020-05-06

Similar Documents

Publication Publication Date Title
CN111033471B (zh) 用于控制只追加文件的方法、系统以及介质
US11741048B2 (en) Distributed write journals that support fast snapshotting for a distributed file system
US11579932B2 (en) Tiered backup archival in multi-tenant cloud computing system
Mickens et al. Blizzard: Fast, cloud-scale block storage for cloud-oblivious applications
US10642633B1 (en) Intelligent backups with dynamic proxy in virtualized environment
US9336076B2 (en) System and method for controlling a redundancy parity encoding amount based on deduplication indications of activity
US9910742B1 (en) System comprising front-end and back-end storage tiers, data mover modules and associated metadata warehouse
US10078639B1 (en) Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas
US20150331756A1 (en) Point-in-time snap copy management in a deduplication environment
US9372879B1 (en) Balanced append tree data structure
US9983937B1 (en) Smooth restart of storage clusters in a storage system
US10929100B2 (en) Mitigating causality discrepancies caused by stale versioning
US9753647B2 (en) Deduplicating chunk digests received for chunks in objects provided by clients to store
US10705764B2 (en) Performing nearline storage of a file
US10795579B2 (en) Methods, apparatuses, system and computer program products for reclaiming storage units
US11281628B2 (en) Namespace performance acceleration by selective SSD caching
WO2019048969A1 (en) ASYNCHRONOUS METADATA TRACK UPDATE IN RESPONSE TO A GENERATED INTERCEPTION VIA I / O OPERATION ON A BUS INTERFACE
US11055013B2 (en) Recovering from data loss using copy services relationships between volumes
US11899544B2 (en) Efficient synchronization of cloud enabled file system database during snapshot restore operation
US9578120B1 (en) Messaging with key-value persistence
CN111813501A (zh) 一种数据删除方法、装置、设备及存储介质
US10135750B1 (en) Satisfaction-ratio based server congestion control mechanism
CN111857547A (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