CN111936977A - 使用只追加存储设备的数据库管理系统及方法 - Google Patents
使用只追加存储设备的数据库管理系统及方法 Download PDFInfo
- Publication number
- CN111936977A CN111936977A CN201880084681.0A CN201880084681A CN111936977A CN 111936977 A CN111936977 A CN 111936977A CN 201880084681 A CN201880084681 A CN 201880084681A CN 111936977 A CN111936977 A CN 111936977A
- Authority
- CN
- China
- Prior art keywords
- page
- storage
- log
- storage node
- node
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 320
- 238000000034 method Methods 0.000 title claims description 46
- 238000004590 computer program Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种装置。所述装置可以在数据库节点或存储节点中实现,并且包括一个或多个处理器和存储器,所述存储器存储用于使所述处理器执行多个操作的指令。所述装置根据页面写请求,确定所请求页面对应的标识符;将该页面对应的分量块发送给存储节点,用于追加到所述存储节点的只追加存储日志;接收存储的分量块的物理位置;将所述存储分量块的物理存储位置与所述页面对应的逻辑标识符进行关联。
Description
相关申请案交叉申请
本专利申请要求2017年12月29日递交的发明名称为“使用只追加存储设备的数据库管理系统及方法(SYSTEMS AND METHODS FOR DATABASE MANAGEMENT USING APPEND-ONLY STORAGE DEVICES)”的第15/858,960号美国专利申请案的优先权,所述申请案以引用的方式并入本文本中,如全文再现一般。
技术领域
本申请涉及数据库管理,尤其涉及只追加存储系统中的数据库管理。
背景技术
计算设备正变得越来越普及。因此,用户正在消费和存储越来越多的数据。数据存储在物理计算机可读存储介质上,作为有组织的数据收集,通常称为数据库。数据库通常用于存储用户可访问的数据。一种常见的数据库类型是关系数据库,其中许多表通过存储数据条目之间的关系进行链接。在某些数据库中,唯一键用于标识这些表中的行。
传统数据库通常使用“原地更新”过程来更新数据库中的记录。当数据库中的记录被修改时,原地更新过程通常会用该记录的更新版本覆盖保存前一个记录的存储设备的物理块。原地更新过程与传统存储设备(例如,硬盘驱动器(Hard Disk Drive,HDD))正常工作。只追加存储设备(如,固态驱动器(Solid State Drive,SSD))提供了与传统HDD相比的许多优势,包括提高读写速度性能和降低功耗。因此,现代数据中心更倾向于采用只追加存储设备。然而,只追加存储设备不适合与传统数据库系统一起使用。
发明内容
根据本发明的一个方面,提供了一种装置,包括:一个或多个处理器;存储器,存储处理器可执行指令,当所述一个或多个处理器执行所述指令时,使所述一个或多个处理器执行以下操作:接收与页面的一个或多个分量块相关的页面写请求;日志写入器确定所述页面在日志目录中对应的逻辑标识符;所述日志写入器将所述一个或多个分量块中每个对应分量块发送给存储节点,用于追加到所述存储节点的只追加存储日志;从所述存储节点接收所述一个或多个分量块中每个分量块的物理存储位置;在所述日志目录中,将所述一个或多个分量块中每个分量块的所述物理存储位置与所述页面对应的所述逻辑标识符进行关联。
在上述实施例中的任一实施例中,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:接收与页面相关的页面读请求;所述日志目录确定所述所请求页面的一个或多个分量块在存储节点中的物理存储位置;页面阅读器根据所述一个或多个分量块的所述物理存储位置,从所述存储节点检索所述请求页面的所述一个或多个分量块;返回所述请求页面。
在上述实施例中的任一实施例中,所述请求页面的所述一个或多个分量块包括至少两个分量块,其中返回所述请求页面包括由所述页面阅读器从所述至少两个检索的分量块中重构所述请求页面。
在上述实施例中的任一实施例中,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:所述日志写入器将所述重构页面发送给所述存储节点,用于追加到所述存储节点的所述只追加存储日志。
在上述实施例中的任一实施例中,从所述存储节点并行检索所述至少两个分量块。
在上述实施例中的任一实施例中,所述分量块包括完整页面和页面增量中的一个或多个。
在上述实施例中的任一实施例中,所述存储节点远离所述数据库节点。
在上述实施例中的任一实施例中,所述存储节点是所述数据库节点的本地节点。
在上述实施例中的任一实施例中,所述装置集成到所述数据库节点和所述存储节点中的一个。
在上述实施例中的任一实施例中,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:日志清理器从所述只追加存储日志的片段中采集至少一个实时数据块;将所述至少一个实时数据块发送给所述存储节点,用于追加到所述只追加存储日志的末尾。
在上述实施例中的任一实施例中,所述至少一个实时数据块包括至少两个实时数据块,其中将所述至少一个实时数据块发送给所述存储节点以进行追加包括通过所述至少两个实时数据块重建实时页面,以及将所述重建实时页面发送给所述存储节点。
在上述实施例中的任一实施例中,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:通知所述存储节点清理所述只追加存储日志的所述片段。
根据本发明的另一方面,提供了一种方法,包括:数据库节点接收与页面的一个或多个分量块相关的页面写请求;确定所述页面在日志目录中对应的逻辑标识符;将所述一个或多个分量块中每个对应分量块发送给存储节点,用于追加到所述存储节点的只追加存储日志;从所述存储节点接收指示所述一个或多个分量块中每个分量块的物理存储位置的数据;在所述日志目录中,将所述一个或多个分量块中每个分量块的所述物理存储位置与所述页面对应的所述逻辑标识符进行关联。
在上述实施例中的任一实施例中,所述方法还包括:如果所述数据库节点接收与页面相关的页面读取请求:所述日志目录确定所述所请求页面的一个或多个分量块在存储节点中的物理存储位置;根据所述一个或多个分量块的所述物理存储位置,从所述存储节点检索所述请求页面的所述一个或多个分量块;返回所述请求页面。
在上述实施例中的任一实施例中,所述请求页面的所述一个或多个分量块包括至少两个分量块,其中返回所述请求页面包括由所述页面阅读器从所述至少两个检索的分量块中重构所述请求页面。
在上述实施例中的任一实施例中,所述方法还包括:将所述重构页面发送给所述存储节点,用于追加到所述存储节点的所述只追加存储日志。
在上述实施例中的任一实施例中,从所述存储节点并行检索所述至少两个分量块。
在上述实施例中的任一实施例中,所述分量块包括完整页面和页面增量中的一个或多个。
在上述实施例中的任一实施例中,所述存储节点远离所述数据库节点。
在上述实施例中的任一实施例中,所述存储节点是所述数据库节点的本地节点。
在上述实施例中的任一实施例中,所述方法还包括:从所述存储节点中的所述只追加存储日志的片段中采集至少一个实时数据块;将所述至少一个实时数据块发送给所述存储节点,用于追加到所述只追加存储日志的末尾。
在上述实施例中的任一实施例中,所述至少一个实时数据块包括至少两个实时数据块,其中将所述至少一个实时数据块发送给所述存储节点以进行追加包括通过所述至少两个实时数据块重建实时页面,以及将所述重建实时页面发送给所述存储节点。
在上述实施例中的任一实施例中,所述方法还包括:通知所述存储节点清理所述存储节点上的所述只追加存储日志的所述片段。
附图说明
在说明示例性实施例的附图中:
图1是说明示例性数据库系统的框图;
图2是说明示例性客户端设备的组件的框图;
图3是说明示例性数据库节点的组件的框图;
图4是在数据库节点和只追加存储节点上执行的层的描述图;
图5是说明图1中数据库集群的组件的逻辑表示的扩展视图;
图6是说明日志写入器组件的操作的框图;
图7是说明日志清理器组件的操作的框图;
图8是说明提供具有集中式存储抽象层的服务的示例性数据库集群的框图;
图9是说明提供具有分布式存储抽象层的服务的示例性数据库集群的框图。
出于说明的目的,这些附图说明了示例性实施例的各方面。
具体实施方式
如上所述,“原地更新”过程在HDD上特别有效,因为HDD可以相对容易地定位和覆盖新数据。但是,只追加存储设备(如SSD)的操作方式与HDD不同。只追加存储设备通常无法覆盖同一物理块中的数据,除非在写入新数据之前首先执行若干操作以擦除该物理块。
当在只追加存储设备中修改数据时,只追加存储设备通常不会覆盖与之前数据位于相同物理位置的数据,而是将修改后的数据写入已经为空的块或页。然后,将之前版本的数据标记为删除,并最终通过一个称为“垃圾收集”的过程删除。在只追加存储设备正常运行期间,垃圾收集可能以不同的间隔进行。
垃圾收集时发现的废弃数据块占用的空间,在空间可重用之前,先擦除(清理)这些空间。SSD中使用的存储介质在擦除周期方面具有有限的寿命,因此使用原地更新过程可能会缩短只追加存储设备(例如SSD)的寿命。此外,在只追加存储设备上的原地更新过程效率低下,因为需要频繁的随机写入(相对于连续写入,在SSD等只追加存储设备中性能更高)。
综上所述,传统数据库管理系统所使用的传统“原地更新”过程不适合与现代只追加存储设备(例如SSD)一起使用。本发明提供了一种用于在数据库管理层与存储层中的只追加物理存储设备之间进行指令交互的装置和方法。
图1是说明示例性数据库系统100的组件的框图。在示例性数据库系统100中,一个或多个客户端设备102可以通过通信网络104和通信链路103连接到数据库集群106。数据库集群106实现数据库服务并包括数据库节点108,所述数据库节点108可用于通过数据链路109在只追加存储节点110中存储和检索数据。尽管图1说明的只追加存储节点110远离数据库节点108,但可以设想,在一些实施例中,数据库节点108包括本地只追加存储设备。通信链路103可以是有线或无线的,并且可以使用任何可接受的协议通过通信网络104将数据发送到数据库节点108。如图所示,数据库节点包括3个只追加存储节点110。应当理解的是,在设想的实施例中,存在少于3个或多于3个只追加存储节点110。例如,只追加存储节点110可以包括SSD存储设备。
图2是说明示例性客户端102的组件的框图。客户端102可以是任何合适的台式计算机、膝上型计算机、平板电脑、智能手机等计算设备。客户端102包括一个或多个处理器201,用于控制客户端102的整体操作。处理器201通过存储器总线203与存储器204进行交互,并通过总线209与存储器206、I/O设备208和网络接口210进行交互。总线209可以是任何类型的几种总线中的一种或多种,包括外设总线、视频总线等。
每个处理器201可以是任何合适类型的处理器,例如实现ARM或x86指令集的中央处理单元(central processing unit,CPU),并且还可以包括图形处理单元(GraphicsProcessing Unit,GPU)或其它此类处理器等专用处理器。存储器204包括处理器201可读取的任何合适类型的系统存储器,例如静态随机存取存储器(static random accessmemory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合。在一个实施例中,存储器201可以包括不止一种类型的存储器,例如开机时使用的ROM,以及执行程序时使用的执行程序和数据存储的DRAM。存储器206可包括任何类型的非瞬时性存储设备,用于存储数据、程序和其它信息,并使这些数据、程序和其它信息可通过总线209访问。例如,存储器206可包括固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器、安全数字(securedigital,SD)存储卡中的一种或多种。
I/O设备208包括用户接口设备,例如显示设备,包括能够将渲染后的图像作为输出显示和以触摸形式接收输入的触敏显示设备。在一些实施例中,I/O设备208另外或替代地包括扬声器、麦克风、摄像头、传感器(例如加速度计和全球定位系统(globalpositioning system,GPS)接收器)、键盘等中的一个或多个。在一些实施例中,I/O设备208包括用于将客户端102连接到其它客户端设备的端口。在示例性实施例中,I/O设备208包括通用串行总线(universal serial bus,USB)控制器,用于连接到外围设备或主机计算设备。
网络接口210能够将客户端102连接到通信网络104。在一些实施例中,网络接口210包括一个或多个有线接口(例如,有线以太网)和无线射频,如WiFi、蓝牙或蜂窝(例如,GPRS、GSM、EDGE、CDMA、LTE)。网络接口210使客户端102能够通过通信网络104和通信链路103与数据库集群106进行通信。网络接口210还可以用于建立虚拟网络接口,例如虚拟专用网络(Virtual Private Network,VPN)。
图3是说明示例性数据库节点108的组件的框图。如本文所述,数据库节点108包括硬件设备和在硬件设备的存储器中执行的软件组合。数据库节点108的硬件设备包括一个或多个处理器181、存储器184和网络接口190。一个或多个处理器181通过存储器总线183与存储器184进行交互,并通过总线189与网络接口190进行交互。如图所示,在一些实施例中,数据库节点108的硬件设备可以包括只追加存储器185。本地只追加存储器185可以包括任意数量的合适的只追加存储设备,例如基于闪存的SSD。本领域技术人员可以理解,数据库节点108可额外包括传统存储元件,例如硬盘驱动器,以替代只追加存储器185或和只追加存储器185一起使用。
如图3所示,只追加存储节点110位于数据库节点108的外部,并且数据库节点108可以通过网络接口190与只追加存储节点110进行通信。只追加存储节点110包括硬件设备和在硬件设备的存储器中执行的软件组合。仅附加存储节点110的硬件设备可以包括一个或多个处理器、存储器、网络接口以及一个或多个只追加存储设备350(以下通称为只追加存储设备350,统称为只追加存储设备185)。每个只追加存储设备350可以是任意合适的只追加存储设备,例如SSD。在一些实施例中,只追加存储节点110除了包括只追加存储设备350之外,还可以包括硬盘驱动器等传统存储元件。应当理解,传统存储元件的存在对于所述数据库节点108(或只追加存储节点110以外的任何节点)可能不明显,且传统存储元件的存在并不一定改变数据库节点108与只追加存储节点110进行交互的方式以在只追加存储设备350中存储数据。
图4是描述图1中数据库集群106的组件的逻辑表示的扩展视图。数据库集群106是提供数据库服务的平台,包括数据库管理系统(database management system,DBMS)层305、存储抽象层310和存储层315。DMBS层305可以由数据库节点108的一个或多个处理器181执行处理器可执行指令等软件提供。在执行软件后,数据库节点108用于充当DMBS层305(或所述层的组成部分)。存储层315是存储函数的表示。在一个实施例中,例如,当处理器可执行指令等软件由只追加存储节点110的一个或多个处理器执行时,配置图1的只追加存储节点110充当存储层315(或所述层的组成部分)。在一些实施例中,当数据库节点108包括本地只追加存储器185时,存储层315还控制本地只追加存储设备185的操作。存储抽象层310是DMBS层305与存储层315之间的接口。在一些实施例中,例如,存储抽象层310可以实现为处理器可执行指令等软件,当计算平台中的处理器执行所述指令时配置平台的资源从DBMS层305接收包括读页面请求、写页面请求、写页面增量请求等请求,并将这些请求转换为或转变为指令,所述指令使存储层315能够在只追加存储节点110的物理只追加存储设备350上存储数据,从只追加存储节点110的物理存储设备检索数据,或者修改只追加存储节点110的物理存储设备上的数据。存储抽象层310可用于响应从DBMS层305接收的请求,同时确保存储在存储层315的只追加物理存储设备上的数据的持久度,如下文进一步详细描述。在一些实施例中,存储抽象层310的处理器可执行指令加载到存储器中并由装置的一个或多个处理器执行。在一些实施例中,存储抽象层310可以集成到数据库节点108中,如下文进一步详细描述。在一些实施例中,存储抽象层310可以集成到只追加存储节点110中,如下文进一步详细描述。尽管这可能产生冗余,但存储抽象层310可以集成到DBMS层305和存储层315中的每一层中。在本实施例中,将存储抽象层集成到提供不同层功能的节点或资源时,可以使用集成了存储抽象层的层关联的处理资源来执行软件,所述软件配置资源充当存储抽象层。
本领域技术人员可以理解,在数据库集群106等数据中心中,可以使用虚拟化来提供虚拟硬件平台,从而可以在该平台上执行软件。从被执行软件的角度来看,虚拟化硬件与物理硬件没有区别。虚拟化可以以多种不同方式执行,并且可以在多个不同物理数据库节点和只追加存储节点的资源上创建单个虚拟化硬件平台。类似地,可以在单个物理数据库节点108、只追加存储节点110或两者上创建多个不同的虚拟硬件平台。
如图4所示,DBMS层305能够发出“读页面”请求和“写页面增量”请求。在一些实施例中,DBMS层305使用SQL服务器、DB2、MySQL、PostgreSQL、Oracle、SQLite等实现。DBMS层305包括缓冲池306(也称为缓冲区缓存)。缓冲池306包含数据库页。DBMS层305用于向存储层315请求页面(“读页面”请求)并在存储层315中写入新页面(“写页面”请求)或修改存储层315中的现有页面(“写页面增量”请求)。如本文所述,页面增量是对页面的修改,编码为相对于只追加日志316中的页面的之前版本的更改。页面增量可以追加到只追加日志316。
如图所示,缓冲池306包含存储器的第一页的第一版本(描述为第1页第1版307)和第二页的第八版本(描述为第2页第8版308)。
存储层315包括只追加日志316,所述只追加日志316包含页面的分量块的完整图像(通常为页面的最新版本),并且还可包含该页的后续增量。如图所示,只追加日志316包含第一页的完整图像(描述为第1页第1版307),以及第二页的第六版本的完整图像(描述为第2页第6版318a),包括对第二页的第六版本的后续更改(描述为第2页第7版318b)的增量,以及包含对第二页面的第七版本的后续更改的增量(描述为第2页第8版318c)。在一些实施例中,块318a、318b和318c存储在只追加存储节点110上的只追加存储设备350中的顺序块上。如图4所示,块318b和318c存储在顺序块中。
如图4所示,存储抽象层310包括日志目录311、日志写入器312、页面读取器313和日志清理器314。应当理解,日志清理器314是可选组件,在一些实施例中,存储抽象层310不包括日志清理器314。
存储抽象层310使用日志目录311将逻辑标识符与分量块的物理位置进行关联。日志目录311包含跟踪存储节点110中的物理只追加存储设备上的完整页面和页面增量(本文统称为页面的“分量块”)位置的数据。在一些实施例中,日志目录包含指示哪个只追加存储节点110存储了页面,以及指示该只追加存储节点110中的哪个特定只追加存储设备存储了所述页面的数据。例如,如图4所示,日志目录311将第1页和第2页的每个分量块的物理位置存储在只追加日志316中(第1页第1版307,第2页第6版318a,第2页第7版318b,第2页第8版318c)。
存储抽象层310使用日志写入器312将分量块追加到只追加日志316。日志写入器312可用于接收“写页面”请求,并指示存储层315将新的分量块(即,页面或页面增量)或一组分量块追加到存储层315的只追加日志316。当存储抽象层310从DBMS层305接收到写请求时,存储抽象层310将逻辑标识符与分量块进行关联,并将逻辑标识符记录在日志目录311中。将分量块发送到存储层315,存储层315将分量块追加到只追加日志316。一旦被追加,存储层315返回或发送已经追加的分量块的物理位置的标识符。然后,存储抽象层310将接收到的分量块的物理位置的标识符与日志目录311中的逻辑标识符进行关联。在一些实施例中,追加到只追加日志316的分量块被追加到物理存储设备中的顺序存储块。
页面读取器313可用于根据只追加日志316中存储的完整页面和任何后续页面增量重构页面的请求版本。在一些实施例中,存储抽象层310包括日志清理器314。日志清理器314可用于根据分量块构造页面的合并版本,然后丢弃废弃数据并指示存储层315合并只追加日志316。日志清理器314还可以将分量块复制到日志前端,而不合并分量块。
DBMS层305不知晓存储层315的实现细节以及只追加存储节点110的物理存储设备350。存储抽象层310充当DMBS层305和存储层315之间的接口,以便将页面读请求和页面写请求转换为或转变为指令,所述指令使存储层315执行操作以将一个或多个分量块追加到只追加存储设备350以及从只追加物理存储设备350读取一个或多个分量块。
图5是描述存储抽象层310中页面阅读器组件313的操作的框图。当存储抽象层310从DBMS层305接收页面读请求时,发起读操作。在此示例中,页面读请求是第2页的最新版本。当存储抽象层310的页面读取器313接收到页面读请求时,页面读取器313确定所请求页面的逻辑标识符,并在日志目录311中查找所请求页面的各个分量块的物理位置。在一些实施例中,每个块的物理位置包括指示存储所请求块的只追加存储节点110的标识符,以及指示存储所述块的只追加存储设备350、352的标识符。在此示例中,所请求的页面分量块包括完整第6版318a以及增量318b和318c。在从日志目录311接收每个页面和增量的位置时,存储抽象层310与存储层315进行交互,存储层315从存储层315中的只追加日志316检索每个页面和增量,并将检索到的每个页面和增发送到存储抽象层310。在一些实施例中,并行检索所述检索到的页面和增量。
收到后,页面阅读器313从所请求页面的最新完整版本(318a)开始重构第2页,然后处理之后的增量318b和318c,从而创建第2页第8版的重构完整版本318。然后,将重构的页面318发送到DBMS层305的缓冲池306,例如,该页面可用于由客户端设备102读取或修改。
在一些实施例中,存储抽象层310可以与存储层315进行交互以使用日志写入器312将第2页第8版的重构完整版本318追加到只追加日志316。如果将完整的第2页第8版318追加到只追加日志316,则页面阅读器313还将提供对日志目录311的更新,该日志目录311包括新追加页面318的物理存储位置。本领域技术人员可以理解,添加第2页第8版的完整版本318将导致之前记录的分量块318a、318b和318c是多余的。
因此,将重构的完整第2页第8版318追加到只追加日志316,允许日志清理机制从只追加日志316中删除冗余分量块318a、318b和318c,从而清理日志316中的空间。此外,应注意的是,编写第2页第8版的完整版本318可避免使用之前的分量块318a、318b、318c重构第2页第8版。这样,后续对该页面的读操作可能会更高效。
如上所述,分量块(完整页面和页面增量)可以写入或追加到存储层315中的只追加日志316。图6是说明日志写入器312的示例性操作的框图,所述日志写入器312与存储层315进行交互以执行写入/追加操作。当存储抽象层310从DBMS层305接收页面写请求时,开始追加过程。页面写请求可以包括由DBMS层305创建的具有页面增量的日志缓冲区。在本示例中,DBMS层305发送页面写请求,所述页写请求包括第2页的增量(第9版318d)。如上所述,为了简单起见,写请求仅包括一个页面增量。应当注意的是,在一些实施例中,预期页面写请求包括多个页面增量,以进入存储层315的只追加日志316。
对于日志缓冲区中的每个分量块,日志写入器312解析分量块的内容以确定每个分量块所应用的日志目录311中的逻辑标识符。如果在日志目录311中没有分量块的对应日志记录,则使用该分量块的逻辑标识符在日志目录311中创建新记录。然后,日志写入器312向存储层315发送指令,以将第2页第9版的增量318d追加到只追加日志316。应注意,在追加多个增量的实施例中,多个增量可以按顺序写入只追加日志316。
在将增量318d写入只追加日志316之后,日志写入器312从存储层315接收指示页面增量318d的物理位置的标识符。然后,指示增量318d的物理位置的标识符与日志目录311中分量块的逻辑标识符进行关联。
在成功将增量318d写入只追加日志316并将位置存储在日志目录311中之后,存储抽象层310向DBMS层305发送或返回响应,指示写入操作成功。
在一些实施例中,存储抽象层310包括日志清理器314。日志清理器314可用于与存储层315进行交互以清理或合并存储层315的只追加日志316的一个或多个片段。在一些实施例中,日志清理器314定期合并只追加日志316。在一些实施例中,日志清理器314根据策略合并只追加日志316。例如,一个策略可以是只追加日志316中最早的片段的目的可以用来合并。另一策略可以是,只追加日志316中包含最少“实时”数据的片段可以用来合并。如本文所述,实时数据是指DBMS层305中的活动事务涉及或可能要求的数据。
一旦选择了只追加日志316的片段316a进行合并,日志清理器314参考日志目录311以确定日志片段316a中的分量块(页面或增量)是否可以丢弃。例如,参见图5,只追加日志316包含与第2页(即,块318a、318b和318c)相关的几个废弃分量块以及第2页第8版的重构完整版本(即,块318)。在这种情况下,可以丢弃冗余块318a、318b和318c而不丢失任何有用数据,因为所述有用数据仍保留在重构完整块318中。
如图7所示,存储层315的只追加日志316b的末尾片段包括只追加日志316的最新写入块,这些块是第1页第1版(块307)和重构第2页第8版(块318)。在图7的示例中,存储抽象层310的日志清理器314已选择只追加日志316的片段316a进行合并。如图所示,片段316a包含占用片段316a中的空间的废弃数据340的多个实例。如果分量块不再被任何活动事务或任何将来的事务所需要,则视为已经废弃。片段316a还包含与第3页(即块342a和342b)、第4页(即块343a和343b)和第5页(即块344a)。
对于第3页,块342a和342b可用于重构第3页的当前版本(表示为完整的第3页第2版342),然后将其追加到只追加日志316的末尾片段316b。对于第4页,进行类似过程以将第4页第2版343的重构完整版本追加到只追加日志316的末尾片段316b。对于第5页,只有一个块344a,因此块344a可以追加到只追加日志316的末尾片段316b。应当理解的是,日志目录311已更新,以反映上述第3页、第4页和第5页中每个页面的新写入块342、343和344a的物理位置。
一旦块342、343和344a中的每个块已被追加到只追加日志316的末尾,则只追加日志316的选定片段316a将成为冗余的,如片段316a中的每个块表示由块342、343和344a在只追加日志316的末尾片段316b处冗余的废弃数据或块。因此,存储抽象层315丢弃只追加日志316的片段316a,并通知存储层315不再需要片段316a,允许存储层315使用片段316a来存储其它数据。日志清理器314可能有助于通过删除废弃和冗余数据块来压缩和合并只追加日志316。日志的合并可以更有效地使用只追加存储节点110,以及更快地从数据库集群106检索页面(因为可能会减少或避免从只追加日志316中的多个块中重建页面所需的开销处理)。
分布式计算系统100的一个优点是,在数据库可能的实现配置方面更灵活。例如,存储抽象层310可以完全集中式方式实现,也可以分布式方式实现。
图8是说明提供具有集中式存储抽象层310的数据库服务的示例性数据库集群806的框图。如图所示,存储抽象层310完全集成到数据库节点108中。存储层315可以集成到本地只追加存储器、远程只追加存储节点110a、110b或其任何组合中。如图8所示,存储层315包括多个只追加存储节点110a、110b,这些节点远离数据库节点108。
图8所示的示例性实施例提供了许多优点。例如,随着存储抽象层310与各种只追加存储节点110a、110b和只追加存储设备350a、350b分离,对只追加存储设备350a、350b与数据库集群806一起使用的要求相对较少。只追加存储设备350a、350b能够服务顺序写请求和随机读请求。将来自DBMS层305的页面读请求或页面写请求转换为基于日志的操作的其余功能均由数据库节点108上的存储抽象层310处理,因此不用特别定制只追加存储节点110a、110b。然而,在图8所示的配置中,如果定位只追加存储节点110a、110b与数据库节点108远离,则维护数据库可能涉及较高的网络流量,因为所有读写操作将通过网络连接发生,页面的重构需要将页面的每个块通过网络连接从存储层315发送到存储抽象层310。
图9是说明提供具有分布式存储抽象层310的数据库服务的示例性数据库集群906的框图。如图所示,数据库集群906跨多个只追加存储节点110a、110b进行分片(或分区)。I/O路由器900维护哪个存储节点110a、110b将每个页面存储在数据库中的映射。I/O路由器900可用于接收页面读请求或页面写请求,并将所述请求转发到合适的存储节点110a、110b上的存储抽象层310a或310b。需要说明的是,在图8和图9中,日志清洗器314可选。
如图9所示,每个存储节点110a、110b包括本地化存储抽象层310a和310b,所述本地化存储抽象层310a和310b仅管理存储在其各自的只追加存储设备350a、350b中的页面。为了执行来自DBMS层305的页面读请求,缓冲池306发出对特定页面的页面读请求,I/O路由器900查找请求中的页面标识符并确定哪个只追加存储节点110a、110b(或分片)存储所请求页面。在本示例中,所请求页面存储在只追加存储节点110a上。然后,I/O路由器900向只追加存储节点110a发出页面读请求,存储抽象层310a根据上述过程处理页面读请求。
图9的配置的技术优势在于缩放相对简单。例如,可以将额外的只追加存储节点110添加到图9的系统中,该系统复杂度增加相对较小,并且对网络流量的影响较小。由于所请求页面的重构发生在特定只追加存储节点110的本地而不是数据库节点108,因此与图8中的配置相比,网络连接将产生较少的流量。此外,图9的配置减少了数据库节点108上的处理负载,并将该处理负载卸载到只追加存储节点110,所述只追加存储节点110更可能具有容纳更大请求量的处理能力。
在一些实施例中,存储抽象层310将使用原地更新过程在存储节点的物理存储设备上存储数据的传统数据库系统的操作透明地转换为对现代仅最佳存储节点(例如包括SSD的存储节点)定制的操作。如上所述,只追加存储节点更频繁地用于数据中心的存储节点。原地更新过程将更新的页面写入只追加存储设备上的“清理”存储块,然后在垃圾收集期间清除该页面的旧版本。鉴于只追加存储设备具有有限数量的写周期,使用原地更新过程可以缩短存储节点的只追加存储设备的寿命或缩短存储节点的只追加存储设备中特定块的寿命。
根据本发明的一些实施例的只追加写操作,将每个新页面或页面增量追加到只追加日志316中的下一个可用块。因此,本文描述的系统的技术优势是每个新页面或页面增量按顺序写入只追加日志316,这对于只追加存储设备350比随机写入更快和更有效。此外,与原地更新过程的随机写入相比,顺序写入可延长只追加存储设备350的寿命,从而降低操作数据库的成本,因为更换组件所需的时间可能延长。此外,只追加存储设备350可以执行速度与HDD相当的“随机读”操作(即从非顺序存储块的读操作),HDD允许使用只追加存储设备350以快于HDD的速度完成页面读操作所需的数据检索。
此外,如本文描述的示例性实施例所示,本文描述的系统可以相对容易地适用于不同的存储层实现方式、不同的数据库系统、分片或非分片数据库,并且可以在无需预先预留资源的情况下相对容易地按存储大小进行扩展。
由于DMBS层305与存储层315隔离,因此本文描述的系统允许在如何物理地存储数据方面更灵活。例如,可以使用本地追加的只追加存储设备350、云存储或自定义存储节点的任何组合。此外,数据可以跨多个只追加存储节点110进行分区或分片。此外,本文描述的实施例可以支持多个数据库系统,包括但不限于MySQL、PostgreSQL等。
此外,在一些实施例中,存储抽象层310与其它类型的数据库(例如键值存储数据库)一起使用。在使用键值存储数据库的实施例中,存储抽象层310可以从DMBS层305接收读取和写入记录请求,并且存储抽象层310将读取和写入记录请求转换为追加和读取分量指令,这些指令发送到存储层315。
此外,本文所公开的实施例兼容各种复制方案。在一些实施例中,存储抽象层310控制复制操作。例如,存储抽象层310可以通过向多个只追加存储节点110发送每个页面写请求来处理复制操作。在一些实施例中,复制操作可以由存储层315实现。本文公开的实施例可以支持一致的(一个写操作必须写入分量块的所有副本才算完成)基于仲裁(一个写操作必须写入分量块的阈值副本数才算完成)复制方案。
本申请的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。所属领域的一般技术人员可从本发明的公开中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些过程、机器、制造、物质组分、构件、方法或步骤。
可以理解的是,以上描述和说明的详细实施例仅是示例。可对这些示例性实施例进行变型、替代配置、替代组件和修改。本发明由权利要求书限定。
Claims (25)
1.一种装置,其特征在于,包括:
一个或多个处理器;
存储器,存储处理器可执行指令,当所述一个或多个处理器执行所述指令时,使所述一个或多个处理器执行以下操作:
接收与页面的一个或多个分量块相关的页面写请求;
日志写入器确定所述页面在日志目录中对应的逻辑标识符;
所述日志写入器将所述一个或多个分量块中每个对应分量块发送给存储节点,用于追加到所述存储节点的只追加存储日志;
从所述存储节点接收所述一个或多个分量块中每个分量块的物理存储位置;
在所述日志目录中,将所述一个或多个分量块中每个分量块的所述物理存储位置与所述页面对应的所述逻辑标识符进行关联。
2.根据权利要求1所述的装置,其特征在于,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:
接收与页面相关的页面读请求;
所述日志目录确定所述所请求页面的一个或多个分量块在存储节点中的物理存储位置;
页面阅读器根据所述一个或多个分量块的所述物理存储位置,从所述存储节点检索所述请求页面的所述一个或多个分量块;
返回所述请求页面。
3.根据权利要求2所述的装置,其特征在于,所述请求页面的所述一个或多个分量块包括至少两个分量块,其中返回所述请求页面包括由所述页面阅读器从所述至少两个检索的分量块中重构所述请求页面。
4.根据权利要求3所述的装置,其特征在于,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:
所述日志写入器将所述重构页面发送给所述存储节点,用于追加到所述存储节点的只追加存储日志。
5.根据权利要求3所述的装置,其特征在于,从所述存储节点并行检索所述至少两个分量块。
6.根据权利要求1至5中任一项所述的装置,其特征在于,所述分量块包括完整页面和页面增量中的一个或多个。
7.根据权利要求1至6中任一项所述的装置,其特征在于,所述存储节点远离所述数据库节点。
8.根据权利要求1至6中任一项所述的装置,其特征在于,所述存储节点是所述数据库节点的本地节点。
9.根据权利要求1至8中任一项所述的装置,其特征在于,所述装置集成到所述数据库节点和所述存储节点中的一个。
10.根据权利要求1至9中任一项所述的装置,其特征在于,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:
日志清理器从所述只追加存储日志的片段中采集至少一个实时数据块;
将所述至少一个实时数据块发送给所述存储节点,用于追加到所述只追加存储日志的末尾。
11.根据权利要求10所述的装置,其特征在于,所述至少一个实时数据块包括至少两个实时数据块,其中将所述至少一个实时数据块发送给所述存储节点以进行追加包括通过所述至少两个实时数据块重建实时页面,以及将所述重建实时页面发送给所述存储节点。
12.根据权利要求10所述的装置,其特征在于,所述处理器可执行指令还使所述一个或多个处理器执行以下操作:
通知所述存储节点清理所述只追加存储日志的所述片段。
13.一种方法,其特征在于,包括:
数据库节点接收与页面的一个或多个分量块相关的页面写请求;
确定所述页面在日志目录中对应的逻辑标识符;
将所述一个或多个分量块中每个对应分量块发送给存储节点,用于追加到所述存储节点的只追加存储日志;
从所述存储节点接收指示所述一个或多个分量块中每个分量块的物理存储位置的数据;
在所述日志目录中,将所述一个或多个分量块中每个分量块的所述物理存储位置与所述页面对应的所述逻辑标识符进行关联。
14.根据权利要求13所述的方法,其特征在于,还包括:
如果所述数据库节点接收与页面相关的页面读请求:
所述日志目录确定所述所请求页面的一个或多个分量块在存储节点中的物理存储位置;
根据所述一个或多个分量块的所述物理存储位置,从所述存储节点检索所述请求页面的所述一个或多个分量块;
返回所述请求页面。
15.根据权利要求14所述的方法,其特征在于,所述请求页面的所述一个或多个分量块包括至少两个分量块,其中返回所述请求页面包括由所述页面阅读器从所述至少两个检索的分量块中重构所述请求页面。
16.根据权利要求15所述的方法,其特征在于,还包括:
将所述重构页面发送给所述存储节点,用于追加到所述存储节点的所述只追加存储日志。
17.根据权利要求15所述的方法,其特征在于,从所述存储节点并行检索所述至少两个分量块。
18.根据权利要求13至17中任一项所述的方法,其特征在于,所述分量块包括完整页面和页面增量中的一个或多个。
19.根据权利要求13至18中任一项所述的方法,其特征在于,所述存储节点远离所述数据库节点。
20.根据权利要求13至18中任一项所述的方法,其特征在于,所述存储节点是所述数据库节点的本地节点。
21.根据权利要求13至20所述的方法,其特征在于,还包括:
从所述存储节点中的所述只追加存储日志的片段中采集至少一个实时数据块;
将所述至少一个实时数据块发送给所述存储节点,用于追加到所述只追加存储日志的末尾。
22.根据权利要求21所述的方法,其特征在于,所述至少一个实时数据块包括至少两个实时数据块,其中将所述至少一个实时数据块发送给所述存储节点以进行追加包括通过所述至少两个实时数据块重建实时页面,以及将所述重建实时页面发送给所述存储节点。
23.根据权利要求21所述的方法,其特征在于,还包括:
通知所述存储节点清理所述存储节点上的所述只追加存储日志的所述片段。
24.一种包括指令的计算机可读介质,其特征在于,所述指令由计算机执行时使所述计算机执行根据权利要求13至22中任一项所述的方法。
25.一种包括指令的计算机程序,其特征在于,所述程序由处理器执行时使所述处理器执行根据权利要求13至22中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/858,960 | 2017-12-29 | ||
US15/858,960 US10725983B2 (en) | 2017-12-29 | 2017-12-29 | Systems and methods for database management using append-only storage devices |
PCT/CN2018/122213 WO2019128820A1 (en) | 2017-12-29 | 2018-12-20 | Systems and methods for database management using append-only storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111936977A true CN111936977A (zh) | 2020-11-13 |
Family
ID=67058252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880084681.0A Pending CN111936977A (zh) | 2017-12-29 | 2018-12-20 | 使用只追加存储设备的数据库管理系统及方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10725983B2 (zh) |
EP (1) | EP3724770B1 (zh) |
JP (1) | JP7329518B2 (zh) |
CN (1) | CN111936977A (zh) |
WO (1) | WO2019128820A1 (zh) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514007B2 (en) * | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11252119B2 (en) * | 2018-06-04 | 2022-02-15 | Salesforce.Com, Inc. | Message logging using two-stage message logging mechanisms |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US10719250B2 (en) | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US10901951B2 (en) * | 2018-07-17 | 2021-01-26 | International Business Machines Corporation | Memory compaction for append-only formatted data in a distributed storage network |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) * | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
WO2019228571A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
WO2019228570A2 (en) | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11580110B2 (en) | 2019-12-31 | 2023-02-14 | Huawei Cloud Computing Technologies Co., Ltd. | Methods and apparatuses for generating redo records for cloud-based database |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847100B2 (en) | 2020-11-19 | 2023-12-19 | Alibaba Group Holding Limited | Distributed file system servicing random-access operations |
US11657066B2 (en) | 2020-11-30 | 2023-05-23 | Huawei Cloud Computing Technologies Co., Ltd. | Method, apparatus and medium for data synchronization between cloud database nodes |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11714794B2 (en) | 2021-03-31 | 2023-08-01 | Huawei Cloud Computing Technologies Co., Ltd. | Method and apparatus for reading data maintained in a tree data structure |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262633A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Managing database object placement on multiple storage devices |
US20110173395A1 (en) * | 2010-01-12 | 2011-07-14 | International Business Machines Corporation | Temperature-aware buffered caching for solid state storage |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN105117415A (zh) * | 2015-07-30 | 2015-12-02 | 西安交通大学 | 一种优化的ssd数据更新方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及系统 |
JP2010003150A (ja) | 2008-06-20 | 2010-01-07 | Nec Personal Products Co Ltd | メモリコントローラおよびフラッシュメモリのデータ管理方法 |
US9507841B2 (en) * | 2011-06-16 | 2016-11-29 | Sap Se | Consistent backup of a distributed database system |
US9645758B2 (en) * | 2011-07-22 | 2017-05-09 | Sandisk Technologies Llc | Apparatus, system, and method for indexing data of an append-only, log-based structure |
JP2014127015A (ja) * | 2012-12-26 | 2014-07-07 | Toshiba Corp | 情報処理装置、分散データベースシステム、およびバックアップ方法 |
US11030055B2 (en) * | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9575884B2 (en) * | 2013-05-13 | 2017-02-21 | Qualcomm Incorporated | System and method for high performance and low cost flash translation layer |
US9842031B1 (en) * | 2014-12-08 | 2017-12-12 | Amazon Technologies, Inc. | Incremental updates to user transaction state at read-only nodes of a distributed database |
US20160321010A1 (en) * | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
US10083203B2 (en) * | 2015-08-11 | 2018-09-25 | International Business Machines Corporation | Reducing the cost of update, delete, and append-only insert operations in a database |
US10061523B2 (en) | 2016-01-15 | 2018-08-28 | Samsung Electronics Co., Ltd. | Versioning storage devices and methods |
-
2017
- 2017-12-29 US US15/858,960 patent/US10725983B2/en active Active
-
2018
- 2018-12-20 EP EP18895928.2A patent/EP3724770B1/en active Active
- 2018-12-20 CN CN201880084681.0A patent/CN111936977A/zh active Pending
- 2018-12-20 JP JP2020535996A patent/JP7329518B2/ja active Active
- 2018-12-20 WO PCT/CN2018/122213 patent/WO2019128820A1/en unknown
-
2020
- 2020-07-27 US US16/939,997 patent/US11461296B2/en active Active
-
2022
- 2022-09-28 US US17/954,702 patent/US11921684B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262633A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Managing database object placement on multiple storage devices |
US20110173395A1 (en) * | 2010-01-12 | 2011-07-14 | International Business Machines Corporation | Temperature-aware buffered caching for solid state storage |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN105117415A (zh) * | 2015-07-30 | 2015-12-02 | 西安交通大学 | 一种优化的ssd数据更新方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200364197A1 (en) | 2020-11-19 |
US11921684B2 (en) | 2024-03-05 |
US20230053707A1 (en) | 2023-02-23 |
WO2019128820A1 (en) | 2019-07-04 |
EP3724770A4 (en) | 2020-10-21 |
JP7329518B2 (ja) | 2023-08-18 |
JP2021508879A (ja) | 2021-03-11 |
US20190205437A1 (en) | 2019-07-04 |
US10725983B2 (en) | 2020-07-28 |
EP3724770A1 (en) | 2020-10-21 |
EP3724770B1 (en) | 2022-04-06 |
US11461296B2 (en) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11921684B2 (en) | Systems and methods for database management using append-only storage devices | |
US11449239B2 (en) | Write-ahead log maintenance and recovery | |
EP3726364B1 (en) | Data write-in method and solid-state drive array | |
US8280858B2 (en) | Storage pool scrubbing with concurrent snapshots | |
KR101717644B1 (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
WO2017190604A1 (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
US11580162B2 (en) | Key value append | |
US9778860B2 (en) | Re-TRIM of free space within VHDX | |
EP2590078B1 (en) | Shadow paging based log segment directory | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储系统 | |
US9292213B2 (en) | Maintaining at least one journal and/or at least one data structure by circuitry | |
US10210067B1 (en) | Space accounting in presence of data storage pre-mapper | |
US10289345B1 (en) | Contention and metadata write amplification reduction in log structured data storage mapping | |
US10372688B2 (en) | Moving data within a distributed data storage system using virtual file links | |
US10430115B2 (en) | System and method for optimizing multiple packaging operations in a storage system | |
US10416901B1 (en) | Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies | |
US20230297510A1 (en) | Write-behind optimization of covering cache | |
US10209909B1 (en) | Storage element cloning in presence of data storage pre-mapper | |
JP2005215940A (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
US9063656B2 (en) | System and methods for digest-based storage | |
CN114528355A (zh) | 基于页面的关系数据库的云本机对象存储 | |
KR102085272B1 (ko) | 비휘발성 메모리를 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스 | |
CN117950597B (zh) | 数据修改写方法、数据修改写装置以及计算机存储介质 | |
US11853592B2 (en) | Reversible write techniques using physical storage device offloading | |
US11150827B2 (en) | Storage system and duplicate data management method |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220302 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right |