CN112286714A - 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统 - Google Patents

在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统 Download PDF

Info

Publication number
CN112286714A
CN112286714A CN202010704686.8A CN202010704686A CN112286714A CN 112286714 A CN112286714 A CN 112286714A CN 202010704686 A CN202010704686 A CN 202010704686A CN 112286714 A CN112286714 A CN 112286714A
Authority
CN
China
Prior art keywords
file
storage device
data
ecc
computing device
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
Application number
CN202010704686.8A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN112286714A publication Critical patent/CN112286714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一个实施例促进了存储设备中的数据访问。在操作期间,系统通过存储设备从与该存储设备分离的原始物理介质中获得文件,其中该文件包括先前已经基于纠错码(ECC)进行了编码的压缩数据。所述系统将所获得的文件作为只读副本存储在存储设备的物理介质上。响应于接收到读取文件的请求,系统通过存储设备基于ECC将副本解码以获得ECC解码的数据,其中ECC解码的数据随后由与存储设备关联的计算设备解压缩,并作为请求的文件返回。

Description

在基于NAND的读取源存储中提高大数据分析吞吐量的方法和 系统
技术领域
本公开总体上涉及数据存储领域。更具体地,本公开涉及用于提高基于NAND的读取源存储中的大数据分析的吞吐量的方法和系统。
背景技术
互联网和电子商务的激增继续创建大量的数字内容。已经创建了各种分布式存储系统来访问和存储这些数字内容。在一些读取密集型场景中,存储系统可能会存储数据的原始版本,在存储系统其中已存储的原始数据经常被读取或访问,但不一定进行更新。读取密集型方案的一个示例是“大数据”分析,其中涉及检查大量不同的数据集(即大数据),以识别相关信息,例如隐藏模式、市场趋势、未知相关性以及可能与用户相关的任何信息。大数据分析需要经常读取大量数据,而源数据则保持不变。为了加速由多个数据分析服务器执行的数据分析处理,通常将中间结果存储在存储样式的介质中。但是,这可能会导致通过以太网长距离传输大量数据的相当大的开销。为了避免这种开销,通常会复制读取源以在每个站点上形成本地副本,因此,低成本和高吞吐量都是存储源数据副本的实际和基本要求。
在当前的大数据分析中,常规的分布式存储系统可用于为原始数据源的多个存储副本提供所需的存储。但是,使用常规的分布式存储系统可能会导致一些挑战和效率低下,其中包括:昂贵地部署由数十个计算服务器和存储服务器(包括网络)组成的整个分布式存储系统;数据中心中昂贵的机架空间;电力成本高;并且访问存储在存储服务器中的副本的延迟高。
随着大数据分析的继续增长,常规分布式存储系统的低效率和挑战也将继续增长。
发明内容
一个实施例促进了存储设备中的数据访问。在操作期间,系统通过存储设备从与该存储设备分离的原始物理介质中获取文件,其中,该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)进行了编码。所述系统将所获得的文件作为只读副本存储在存储设备的物理介质上。响应于接收到读取文件的请求,系统由存储设备基于ECC对副本进行解码以获得ECC解码的数据,其中,ECC解码的数据随后由与存储设备关联的计算设备解压缩,并作为请求的文件返回。
在一些实施例中,基于第一协议从请求实体接收读取文件的请求。在所述计算设备解压缩所述ECC解码的数据之后,系统将解压缩的数据作为请求的文件返回至请求实体,而不执行任何ECC编码。
在一些实施例中,由计算设备的并行解压缩引擎执行对所述ECC解码的数据进行解压缩。
在一些实施例中,读取文件的请求由计算设备接收,并由所述通过一系统发送到存储设备,该系统包括以下至少一个:第一以太网交换机和第二以太网交换机;第一智能网络接口卡(NIC)和第二智能网络接口卡(NIC);多个外围高速互PCIe交换机;其中,第一智能网卡和第二智能网卡均包括一个简单的存储节点,包括:到第一以太网交换机和第二以太网交换机的上行链路;经由多个PCIe通道的多个PCIe交换机的下行链路,所述多个PCIe通道用于连接到所述存储设备和多个其他存储设备。
在一些实施例中,读取文件的请求进一步由第二计算设备接收,并且还被第二计算设备经由该系统传输至存储设备;该第二计算设备是该计算设备的备用服务器或高可用性服务器。
在一些实施例中,所述系统通过计算设备存储由文件名到与所述存储设备相关联的当前物理块地址的映射。
在一些实施例中,响应于检测到将文件从所述当前物理块地址移动到与存储设备相关联的新物理块地址的条件,系统更新文件名到新物理文件的映射块地址。
在一些实施例中,存储在所述存储设备中的文件的格式包括一个或多个:表示与文件相关联的起始位置的前同步码(pre-amble);文件的唯一文件标识符;文件的内容;后同步码(post-amble),表示与文件相关联的结束位置;用于验证文件内容的一致性的循环冗余校验(CRC)签名。
在一些实施例中,第一存储设备不包括:执行ECC编码的模块或单元;动态随机存取存储器(DRAM)接口和通过该DRAM接口访问的DRAM模块;执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址。
另一实施例提供了一种分布式存储系统,用于通过一个或多个客户端便于一个或多个大数据分析应用。该分布式存储系统包括;
前端头服务器、交换机以及连接到该交换机的多个NAND卡;前端头服务器被配置为接收读取文件的请求;所述NAND卡被配置为:通过所述交换机接收读取存储在所述NAND卡上的文件的请求;以及并由NAND卡基于纠错码(ECC)将文件解码以获取ECC解码的数据;前端头服务器配置为对ECC解码的数据进行解压缩,并将解压缩后的数据作为请求的文件返回。
在一些实施例中,NAND卡还被配置为从与该NAND卡分离的原始物理介质获得文件,其中文件包括先前基于纠错码(ECC)编码的压缩数据。NAND卡还被配置为在不执行任何ECC编码的情况下将ECC解码的数据返回到前端头服务器。NAND卡不包括:执行ECC编码的模块或单元动态随机存取存储器(DRAM)接口和通过DRAM接口访问的DRAM模块;执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址;从而通过减少ECC编码的数量来便于大数据分析应用有效地分析数据。
附图说明
图1示出了根据现有技术的用于便于在存储设备中的数据访问的示例性环境。
图2示出了根据本申请的实施例的用于便于在存储设备中的数据访问的示例性环境。
图3示出了根据本申请的实施例的用于原始数据源中的数据放置以及复制到读取源副本中的数据放置、包括数据I/O路径的示例性环境。
图4示出了根据本申请的实施例的包括具有简化架构的NAND卡的存储设备的示例图。
图5示出了根据本申请的实施例的文件到物理块地址的示例性映射。
图6示出了根据本申请的实施例的文件格式和NAND块布局的示例图。
图7A呈现了示出根据本申请的实施例的用于便于在存储设备中数据访问的方法的流程图。
图7B呈现了示出根据本申请的实施例的用于便于在存储设备中的数据访问的方法的流程图。
图8示出了根据本申请的实施例的便于在存储设备中的数据访问的示例性计算机系统和存储系统。
图9示出了根据本申请的实施例的便于在存储设备中进行数据访问的示例性装置。
在附图中,相同的附图标记指代相同的附图元素。
具体实施方式
提供以下描述以使本领域的任何技术人员能够制造和使用实施例,并且在特定应用及其要求的上下文中提供以下描述。对于所公开的实施例的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文中定义的一般原理可以应用于其他实施例和应用中。因此,本文描述的实施例不限于所示的实施例,而是应被赋予与本文公开的原理和特征一致的最宽范围。
概述
本文所述的实施例通过提供一种具有简化的“NAND卡”新颖的分布式存储系统作为存储设备来解决当前分布式存储系统中大数据分析的效率低下。这些存储设备将ECC编码卸载到原始存储设备,消除了存储设备中的DRAM控制器和模块,并将FTL功能转移到了系统前端的计算设备上。
如上所述,大数据分析是读取密集型场景的示例,该方案要求频繁读取非常大量的数据,但源数据保持不变。为了加速由多个数据分析服务器执行的数据分析处理,通常将中间结果存储在存储样式的介质中。但是,这可能会导致通过以太网长距离传输大量数据的大量开销。为了避免这种开销,通常会复制读取源以在每个站点上形成本地副本。因此,低成本和高吞吐量都是存储源数据副本的实际和基本要求。
在当前的大数据分析中,常规的分布式存储系统可以用于例如根据需要并由多个数据分析服务器访问的原始数据源的多个存储副本来提供所需的存储。但是,使用传统的分布式存储系统可能会导致一些挑战和效率低下,其中包括:昂贵地部署由数十个计算服务器和存储服务器(包括网络)组成的整个分布式存储系统;数据中心中昂贵的机架空间;电力成本高;以及访问存储在存储服务器中的副本的高延迟(如下文有关图1所述)。随着大数据分析的不断增长,传统分布式存储系统的低效率和挑战也将继续增长。
本文描述的实施例通过提供具有高容量存储和高吞吐量的分布式存储系统来解决这些挑战和低效率。该系统允许多个数据分析服务器以低延迟和低成本访问数据。该系统包括连接到以太网交换机的前端头服务器,该以太网交换机连接到智能网络接口卡(NIC)片上系统(SOC)。智能NIC SOC(通过多个PCIe通道)连接到多个外围高速互连(PCIe)交换机,其中每个PCIe交换机连接到多个“NAND卡”。每个NAND卡可以是简化的存储设备,包括ECC解码器,但不包括某些模块,例如:ECC编码器、通过处理器进行的FTL操作或功能、以及DRAM接口/存储。
相反,可以以各种方式卸载这些模块执行的功能。例如,可以由原始数据源存储设备执行ECC编码,并且可以从出站数据I/O路径上的原始数据源存储设备上检索ECC编码数据(由于先前已进行ECC解码,因此还包含无错误数据),或将所述编码数据提供到NAND卡,如图3所述。此外,例如,通过处理来自数据分析服务器的请求(例如访问存储为读取源数据或副本的文件的请求),可以将与FTL相关的LBA到PBA的映射的操作和维护所述映射的操作卸载到充当分布式存储系统前端头的计算设备。此外,NAND卡可以使用简单的缓存或高速缓存进行任何必要的ECC解码,从而可以从存储设备中删除DRAM接口和DRAM。
因此,通过以此处描述的方式简化NAND卡,本系统的实施例可以产生成本和功率的节省,并且还可以为大数据分析和其他需要频繁访问只读数据的类似应用程序更加高效的分布式存储系统,该分布式存储服务器可以提供满足来自多个数据分析服务器的数据访问请求所需的低成本和高吞吐量。
“存储驱动器”是指具有可以提供数据持久存储的非易失性存储器的设备或驱动器,例如固态驱动器(SSD)或硬盘驱动器(HDD)。
“存储服务器”是指可以包括多个存储驱动器的计算设备。分布式存储系统可以包括多个存储服务器。
NAND闪存可在每个单元中存储一定数量的位。例如:“单级单元”或“SLC”存储元件可以在每个单元中存储一位信息;“多级单元”或“MLC”存储元件可以在每个单元中存储两位信息;“三级单元”或“TLC”存储元件可以在每个单元中存储三位信息;“四级单元”或“QLC”存储元件可以在每个单元中存储四位信息。
“NAND卡”指的是具有简化架构的存储设备,例如,不具有用于FTL功能的处理器、ECC编码器模块或DRAM接口/DRAM,如以下关于图2和图4所讨论的。
现有技术中的数据访问的示例性环境
图1示出了根据现有技术的用于便于存储设备中的数据访问的示例性环境。在该常规环境100中,可以通过NAS协议服务器来实现网络附属存储(NAS)协议,并且可以将数据存储在分布式存储集群中。例如:客户端110可以包括数据分析服务器112、114和116;计算服务器130可以包括网络附属存储(NAS)协议服务器132、134和136;存储服务器150可以包括分布式存储集群151,并且可以包括存储服务器152、154和156。在环境100中,数据可以通过负载平衡模块120从数据分析服务器112-116传递到NAS协议服务器132-136。然后,数据可以通过数据中心以太网140,以存储到或存储在存储服务器152-156上。
环境100的常规分布式存储系统的一个优点是其提供足够容量以容纳数据分析服务器需要访问的不断增长的大量数据(即作为数据源副本的站点)的能力。然而,该常规系统存在若干劣势或缺点。首先,整个分布式存储系统需要大量的计算服务器和存储服务器(例如数十个数量级)以及必要的网络连接,这对于维护和扩展而言可能很麻烦。与各种边界网关协议(BGP)相关联的网络成本可能会很大。其次,数据中心中的机架空间可能很昂贵,并且为了扩展这种常规的分布式存储系统机架空间成本必然会增加。第三,在多个位置存储、访问和维护此副本数据所需的电力成本会很高,并且在维护或扩展时电力成本也可能增加。第四,从这样的副本站点读取或访问数据所涉及的延迟可能会很高或很长。因此,鉴于数据中心机架空间和电源预算的高昂成本,以及提高副本数据源吞吐量的需求,以及依赖常规分布式存储系统以这种方式频繁访问只读数据的高昂成本,这些缺点可能导致系统在成本、性能和可扩展性方面效率更低。使用简化的“NAND卡”存储设备便于数据访问的示例性环境
图2示出了根据本申请的实施例的用于便于在存储设备中数据访问的示例性环境200。环境200可以描述一个分布式存储系统,并且可以包括几个实体,包括一对前端头、一对以太网交换机、一对智能NIC片上系统(SOC)、多个PCIe交换机以及多个“NAND卡”。如上所述,术语“NAND卡”是指具有简化架构的存储设备,例如,不具有处理器、ECC编码器模块、或DRAM接口/DRAM,如下面图4所讨论的。在一对实体中,一个实体可以是主要实体(或主动)实体,而另一个实体可以是备用(或非主动实体),当主要实体发生故障或以其他方式不响应时,该备用实体可提供高可用性。
例如,环境200可以包括:具有并行解压缩引擎(ASIC)224的前端头A 222;以及带有并行解压缩引擎(ASIC)228的前端头B 226。每个前端头可以配置为处理特定协议,例如,网络附加存储(NAS)协议以处理来自多个大数据分析服务器传入的请求。每个前端头都可以看作是没有存储驱动器或容量非常有限的简化客户端节点。因此,每个前端头负责处理通过某种协议输入的请求,并负责基于其各自的并行解压缩引擎对数据进行解压缩。
每个前端头可以连接到一以太网交换机A 232和一以太网交换机B 234。每个以太网交换机可以连接到智能NIC SOC 242和智能NIC SOC 244。每个智能NIC SOC可以(通过多个PCIe通道)连接到多个PCIe交换机,每个智能NIC SOC可以进一步确定要使用哪个PCIe通道。每个智能NIC SOC都可以充当简单的存储节点,并且可以具有简化的微处理器,例如无内部互锁流水线级(MIPS)的微处理器或高级RISC计算机(ARM)处理器。智能NIC SOC 242可以连接到PCIe交换机251、252和253,而智能NIC SOC 244可以连接到PCIe交换机254、255和256。也就是说,每个智能NIC SOC都有一个上行链路,该上行链路通过以太网连接到至少一个以太网交换机,以及每个智能NIC SOC还具有一个下行链路,该下行链路包括用于连接至PCIe NAND卡的PCIe通道。
每个PCIe交换机可以连接到多个NAND卡,并且这些NAND卡可以提供频繁数据访问(例如,通过数据分析服务器212、214和110进行大数据分析)所需的存储容量和高吞吐量。以下在附图4中的描述了示例性NAND卡(例如NAND卡261)。为了增加环境200中描述的系统的容量,系统可以在任何所描述的级别添加更多实体,包括更多以太网交换机、更多智能NIC SOC、更多PCIe交换机和更多NAND卡。
因此,在本文所述的实施例中,系统通过在例如环境200的环境中使用多个NAND卡,提供了具有高容量存储和高吞吐量的分布式存储系统。通过仅在前端头放置协议处理和压缩功能,分布式存储系统允许NAND卡仅用作数据池,这允许整个分布式存储系统可轻松的移动和构建,例如在小型数据中心中,占用或使用较少的总体机架空间,从而降低总体运营成本(TCO)。
数据访问的示例性数据I/O路径
图3示出了根据本申请的实施例的用于原始数据源中的数据放置以及复制到只读源副本中的数据放置、包括数据I/O路径的示例性环境。可以经由数据I/O路径将原始数据存储在原始数据源310,该数据I/O路径包括:(经由通信352)接收要存储的数据;通过压缩模块312接收并压缩接收到的数据;(通过通信354)将压缩的数据发送到ECC编码器模块314;通过ECC编码器模块314接收并压缩压缩后的数据;(经由通信356)发送要存储在NAND316中的ECC编码的数据(“原始存储的数据”或“原始版本”)。在接收到读取数据的请求之后,可以经由数据I/O路径来访问或读取该原始存储在NAND 316中的数据,该数据I/O路径包括:由ECC解码器模块318接收经ECC编码的数据(经由通信358);通过ECC解码器模块318解码ECC编码的数据;发送ECC解码后的数据至解压缩模块320;通过解压缩模块320接收并解压缩ECC解码后的数据;并返回解压缩的数据(通过通信362)。
在访问数据的数据I/O路径期间,在数据被ECC解码器318解码之后,原始存储的数据已被成功地ECC解码为“无错误数据”,并且ECC解码器318也拥有从NAND 316获得的包括ECC奇偶校验位的整个ECC码字。在这一点上,读取源副本330可以从ECC解码器模块318获得或检索(或者原始源310可以传送或发送)全部ECC码字(包括ECC奇偶校验位)的无错误数据(通过通信370)。读取源副本330可以将获得的ECC码字存储在NAND 332中(作为读取源或只读副本)。
当请求访问数据时(例如,如图2所示,由数据分析服务器访问),从NAND 332中检索存储的只读副本(即ECC码字)并将其发送到ECC解码器334(通过通信372)。ECC解码器334可以接收和解码ECC码字,并且将ECC解码的数据发送到诸如多路复用器336之类的模块(通过通信374)。多路复用器336可以确定数据是否必须刷新、是否需要移动或最近已经移动到新的物理位置。如果需要刷新或移动数据,则系统可以将数据发送回NAND 332(通过通信378)。如果不需要刷新或移动系统,则系统可以将数据向前发送到奇偶校验模块338(通过通信376)。奇偶校验模块338可以丢弃ECC奇偶校验位以获得压缩数据。奇偶校验模块338可以将压缩后的数据发送到前端头解压缩(通过通信380)。解压缩模块340可以对压缩数据进行接收和解压缩(作为前端操作342),以获得被请求访问或读取的数据,并且可以发送回所请求的数据(通过通信382)。
因此,在本文所述的实施例中,该系统为来自多个数据分析服务器的高强度、频繁的读取访问提供了高密度、大容量的数据源。通过使用这些“简化的”NAND卡,该系统可以降低总运营成本(TCO),并且可以消除对传统分布式存储系统中数十台或数百台服务器的需求。用于数据访问的示例性存储设备(NAND卡)
图4示出了根据本申请的实施例的包括具有简化架构的NAND卡400的存储设备的示例图。NAND卡400可以对应于如图2中所述的NAND卡261-272中的任何一个,诸如NAND卡261。NAND卡400可包括:用于NAND卡400与PCIe交换机之间的通信(通过通信442)的PCIe接口412;用于基于CRC签名提供数据一致性的验证的CRC模块418;用于保存数据的缓存/高速缓存420;用于执行ECC解码的ECC解码器422;以及用于在NAND卡和与NAND卡400相关联的物理存储介质之间进行通信的NAND闪存接口430。例如,NAND卡400可以包括多个通道,数据可以通过这些通道通过NAND闪存接口430传输或通信,包括:NAND裸片432(经由通道431访问);NAND裸片434(经由通道433访问);NAND裸片436(经由通道435访问);NAND裸片438(经由通道437访问)。
NAND卡400不包括先前包括在常规SSD或常规存储设备中的一些模块或组件。这些模块或组件由右斜杠指示。NAND卡400不包括:处理器(FTL)414;ECC编码器416;和具有与DRAM 426和428关联的DRAM接口424。
应当注意,由于与其他类型的非易失性存储器相比,NAND闪存可以在读取/写入操作中提供更高的可靠性和性能,因此在本公开中将NAND闪存描述为示例性非易失性存储器。但是,在一些实施例中,可以使用任何类型的存储器,包括但不限于硬盘驱动器、相变存储器和其他非易失性存储器。
将文件到物理块地址的示例性映射:示例文件格式
在分布式存储系统的常规文件系统中,通常在逻辑块地址(LBA)和物理块地址(PBA)之间维护映射。在这样的常规系统中,LBA用于执行随机写入或更新。相反,在本文描述的实施例中,在由前端头(例如,图2的前端头A 222)协调的文件系统中,前端头接收以文件粒度读取数据的请求,而不是以块或页面粒度,因此无需维护更精细的LBA到PBA映射。在本文描述的实施例中,尽管可能没有传入的写入要求,但是可能需要定期刷新或移动一些数据。但是因为数据是基于文件的更粗粒度的,所以系统可以将文件名映射到PBA,并且还可以通过在块的末尾附加新数据来在单个块中使用日志结构。
图5示出了根据本申请的实施例的文件到物理块地址的示例性映射。被映射的文件510可以对应于逻辑块地址520和物理块地址540。逻辑大小可以与物理块大小相同。在本文所述的实施例中,系统可以将传统的FTL功能(将LBA映射到PBA)从存储设备控制器(例如SSD控制器)内部的处理器卸载到与该存储设备关联的计算设备(例如前端头计算设备)。前端头计算设备(或除存储设备控制器之外的其他计算设备或实体)可以存储文件名560到PBA 540的映射。
例如,数据文件A 512可以对应于多个LBA,每个LBA对应于一个PBA。前端头计算设备可以存储数据文件A 512的文件名(例如,“A”)到与对应于数据文件A 512的LBA关联的一个或多个PBA的映射。例如,数据文件A 512(文件名“A”)可以与分别对应于PBA k 542、PBAh 544和PBA i546的LBA 1 522、LBA 2 524和LBA 3 526相关联。前端头(或与存储设备控制器分离的其他计算设备)可以存储文件名“A”562到PBA k 542、PBA h 544和PBA i 546的映射。应当注意,文件名可以映射到多个PBA,正如可以将单个PBA映射到多个文件名一样(例如,将文件名“A”562和文件名“B”564都映射到PBA i 546)。该系统可以确定某个PBA内的确切位置,从该位置可以读取请求的文件,如下面图6所述。
图6示出了根据本申请的实施例一致的文件格式和NAND块布局的示例图600。图600可以包括与写入例如NAND的非易失性存储器的文件相对应的文件格式。该文件格式可以包括:前同步码612,其表示给定文件的开始;以及唯一文件标识符614,其标识给定文件并且不与任何其他文件标识符冲突;与给定文件相对应的文件内容616;后同步码618,表示给定文件的结尾;以及循环冗余校验(CRC)签名620,其提供给定文件内容一致性的验证。块630描述了如何将格式化的文件存储在块630中。
在操作期间,当文件名到PBA的映射表明所请求的文件存储在某个PBA时,系统可以读出在某PBA处的页面以确定所请求文件的起点(例如,由前同步码612指示)。一旦确定了起点,系统就可以检查唯一文件标识符614是否对应于所请求的文件。如果是这样,系统可以一次读取一个物理块,直到系统确定所请求文件的终点(例如,后同步码618)。在块630中,示例性请求文件包括仅存储在块630中的文件内容616。所请求文件的文件内容也可以跨多个块存储。在确定所请求文件的终点时,系统可以基于检查CRC签名620来验证数据的一致性。
便于数据访问的示例性方法
图7A提供了示出根据本申请的实施例的用于便于存储设备中的数据访问的方法的流程图700。在操作期间,系统通过存储设备从与存储设备分离的原始物理介质中获取文件,其中该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)(操作702)进行了编码。系统将所获得的文件作为只读副本存储在存储设备的物理介质上(操作704)。系统接收读取文件的请求(操作706)。响应于接收到读取文件的请求,系统由存储设备基于ECC对所述副本进行解码以获得ECC解码的数据,其中,随后由与存储相关联的计算设备对ECC解码的数据进行解压缩,作为请求的文件返回(操作708),并且该操作返回。
图7B示出了与本申请的实施例一致的便于在存储设备中数据访问的方法的流程图720,在操作期间,系统通过与存储设备相关联的计算设备接收读取文件的请求,其中该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)进行了编码(操作722)。先前的ECC编码可以由诸如上面图3的ECC编码器314所述的单独的存储设备来执行。系统通过计算设备经由至少包括如下之一的系统将请求发送到存储设备:第一和第二以太网交换机;第一和第二智能网络接口卡(NIC);多个外围高速互连(PCIe)交换机(操作724)。该系统通过计算设备存储文件名到与存储设备相关联的当前物理块地址(PBA)的映射(操作726)。如果系统检测到将文件从当前PBA移到新PBA的条件(决策728),则系统更新文件名到新物理块地址的映射(操作730)。如果系统未检测到将文件从当前PBA移至新PBA的条件(决策728),则操作返回。
示例性计算机系统和设备
图8示出了根据本申请的实施例的示例性计算机系统800和便于存储设备中的数据访问的存储系统820。计算机系统800包括处理器802、易失性存储器804和存储设备806。计算机系统800可以对应于图2的前端头222。处理器802可以包括并行解压缩引擎(例如,在ASIC中)。易失性存储器806可以包括例如随机存取存储器(RAM),其用作管理存储器,并且可以用于存储一个或多个存储器池。存储设备806可以包括持久性存储。此外,计算机系统800可以连接到外围输入/输出(I/O)用户设备850,例如显示设备852、键盘854和指点设备856。存储设备806可以存储操作系统810、内容处理系统812和数据(未示出)。
内容处理系统812可以包括指令,该指令在由计算机系统800执行时可以使计算机系统800执行本公开中描述的方法和/或过程。具体地,内容处理系统812可以包括用于接收和发送数据包的指令,该数据包包括要读取或写入的数据、输入/输出(I/O)请求(例如,读取请求或写入请求)以及与读取请求、写入请求或I/O请求(通信模块814)相关联的数据。内容处理系统812还可以包括用于将文件名和/或LBA映射、维护和管理到PBA的指令(FTL管理模块816),诸如存储文件名到与储存设备相关联的当前PBA的映射。
计算机系统800可以经由分布式存储系统与存储系统820通信,该存储系统820可以包括:处理器/控制器822、易失性存储器824、和存储设备826。存储系统820可以对应于存储服务器,并且存储设备826可以对应于图2的NAND卡261。处理器/控制器822或存储设备826可以包括用于从与存储系统820分离的原始物理介质中获取文件的指令(通信模块830)。处理器/控制器822或存储设备826可以包括用于将所获得的文件作为只读副本存储在存储设备的物理介质上的指令(数据写入模块832)。处理器/控制器822或存储设备826可以包括用于由存储设备基于ECC对副本进行解码以获得ECC解码数据的指令(ECC解码模块838)。处理器/控制器822或存储设备826可以包括指令,用于响应于检测到移动文件的条件(数据刷新模块836),以及更新文件名到新的物理块地址的映射(数据刷新模块836)。
数据840可以包括由本公开中描述的方法和/或过程中作为输入所需或作为输出生成的任何数据。具体地,数据840可以至少存储:请求;读取请求;写入请求;输入/输出(I/O)请求;与读取请求、写入请求或I/O请求关联的数据;纠错码(ECC);码字;奇偶校验位;ECC奇偶校验位;编码数据;ECC编码/解码数据;压缩数据;解压缩的数据;无错误数据;只读数据;副本;文件;文件格式;以太网交换机、NIC、PCIe交换机或通道、上行链路或下行链路的指示符;文件名;前同步码;文件标识符;文件内容;后同步码;CRC签名;验证信息;LBA;PBA;原始数据源的指示符;以及移动或刷新数据条件的指示符。
图9示出了根据本申请的实施例的便于存储设备中的数据访问的示例性装置900。装置900可以包括可以经由有线、无线、量子光或电通信信道彼此通信的多个单元或设备。装置900可以使用一个或多个集成电路来实现,并且可以包括比图9中示出的装置更少或更多的单元或装置。此外,装置900可以被集成在计算机系统中,或者被实现为能够与其他计算机系统和/或设备通信的单独的设备。具体地,设备900可以包括单元902-912,其执行类似于图8的存储系统800的模块830-836的功能或操作,包括:通信单元902;数据写入单元904;数据读取单元906;数据刷新单元908;ECC解码单元910;存储管理单元912(可以处理检测条件以刷新数据并将文件从当前PBA移动到新的PBA)。
在该详细描述中描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。所述计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备(例如磁盘驱动器,磁带,CD(压缩光盘),DVD(数字多功能光盘或数字视频光盘)或其他现在已知的或以后发展的能够存储计算机可读介质的介质)。
在详细描述部分中描述的方法和过程可以被体现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质内的方法和过程。
此外,上述方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片,现场可编程门阵列(FPGA)以及现在已知或以后开发的其他可编程逻辑设备。激活硬件模块后,硬件模块将执行硬件中包含在硬件模块中的方法和过程。
仅出于说明和描述的目的给出了本文描述的前述实施例。它们并不旨在穷举或将本文描述的实施例限制为所公开的形式。因此,许多修改和变化对于本领域技术人员将是显而易见的。另外,以上公开内容并非旨在限制本文描述的实施例。本文描述的实施例的范围由所附权利要求书限定。

Claims (20)

1.一种计算机实现的用于在存储设备中便于数据访问方法,该方法包括:
由存储设备接收读取存储在该存储设备的物理介质上的文件的请求;和
由所述存储设备根据纠错码(ECC)对所述文件进行解码,得到ECC解码的数据;
其中,所述ECC解码的数据随后被与所述存储设备关联的计算设备解压缩,并作为请求的文件返回。
2.根据权利要求1所述的方法,其中,基于第一协议从请求实体接收读取文件的请求,其中,在所述计算设备对所述ECC解码的数据进行解压缩之后,该方法还包括:
将所述解压缩的数据作为请求的文件返回至所述请求实体,而不执行任何ECC编码。
3.根据权利要求1所述的方法,其中解压缩所述ECC解码的数据由所述计算设备的并行解压缩引擎执行。
4.如权利要求1所述的方法,其特征在于,所述读取文件的请求由所述计算设备接收并由所述计算设备通过一系统发送到存储设备,该系统包括以下至少一个:
第一以太网交换机和第二以太网交换机;
第一智能网络接口卡(NIC)和第二智能网络接口卡(NIC);和
多个外围高速互连(PCIe)交换机;
其中,第一智能NIC和第二智能NIC的每一个均包括简单存储节点,包括:
到第一以太网交换机和第二以太网的上行链路;
经由多个PCIe通道到多个PCIe交换机的下行链路,所述多个PCIe通道用于连接到所述存储设备和多个其他存储设备。
5.如权利要求4所述的方法,其特征在于,还通过第二计算设备接收所述读取文件的请求,并且还被所述第二计算设备经由所述系统传输到所述存储设备;
该第二计算设备是所述计算设备的备用或高可用性服务器。
6.根据权利要求1所述的方法,还包括:
通过所述计算设备存储由所述文件的文件名到与所述存储设备关联的当前物理块地址的映射;
响应于检测到将所述文件从所述当前物理块地址移动到与所述存储设备相关联的新物理块地址的条件,更新所述文件的文件名到所述新物理块地址的映射。
7.根据权利要求1所述的方法,还包括:
通过所述存储设备从与所述存储设备分离的原始物理介质中获取所述文件;
其中,所述文件包括先前基于纠错码(ECC)进行编码的压缩数据;
将获取的文件作为只读副本存储在所述存储设备的物理介质上。
8.根据权利要求1所述的方法,其中,存储在所述存储设备的文件格式包括如下的一个或多个:
表示与文件相关联的起始位置的前同步码;
文件的唯一文件标识符;
文件的内容;
表示与文件相关联的结束位置的后同步码;
用于验证文件内容的一致性的循环冗余校验(CRC)签名。
9.根据权利要求1所述的方法,其中所述第一存储设备不包括:
执行ECC编码的模块或单元;
动态随机存取存储器(DRAM)接口和通过所述DRAM接口访问的DRAM模块;和
执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址。
10.一种用于便于在系统中数据访问的计算机系统,所述系统包括:
处理器;和
存储器,所述存储器连接到所述处理器并存储有指令,该指令在由所述处理器执行时使处理器执行一方法,其中,所述计算机系统包括存储设备,该方法包括:
由存储设备接收读取存储在该存储设备的物理介质上的文件的请求;和
由所述存储设备根据纠错码(ECC)对所述文件进行解码,得到ECC解码的数据,
其中,所述ECC解码的数据随后被与所述存储设备关联的计算设备解压缩,并作为请求的文件返回。
11.根据权利要求10所述的计算机系统,其中,基于第一协议从请求实体接收读取文件的请求,其中,在所述计算设备对所述ECC解码的数据进行解压缩之后,该方法还包括:
将所述解压缩的数据作为请求的文件返回至所述请求实体,而不执行任何ECC编码。
12.根据权利要求10所述的计算机系统,其中解压缩所述ECC解码的数据由所述计算设备的并行解压缩引擎执行。
13.根据权利要求10所述的计算机系统,其中,所述读取文件的请求由所述计算设备接收并由所述计算设备通过一系统发送到存储设备,该系统包括以下至少一个:
第一以太网交换机和第二以太网交换机;
第一智能网络接口卡(NIC)和第二智能网络接口卡(NIC);和
多个外围高速互连(PCIe)交换机,
其中,第一智能NIC和第二智能NIC的每一个均包括简单存储节点,包括:
到第一以太网交换机和第二以太网的上行链路;
经由多个PCIe通道到多个PCIe交换机的下行链路,所述多个PCIe通道用于连接到所述存储设备和多个其他存储设备。
14.根据权利要求13所述的计算机系统,其中,还通过第二计算设备接收所述读取文件的请求,并且还被所述第二计算设备经由所述系统传输到所述存储设备;
该第二计算设备是所述计算设备的备用或高可用性服务器。
15.根据权利要求10所述的计算机系统,其中,所述方法还包括:
通过所述计算设备存储由所述文件的文件名到与所述存储设备关联的当前物理块地址的映射;
响应于检测到将所述文件从所述当前物理块地址移动到与所述存储设备相关联的新物理块地址的条件,更新所述文件的文件名到所述新物理块地址的映射。
16.根据权利要求10所述的计算机系统,其中,所述方法还包括:
通过所述存储设备从与所述存储设备分离的原始物理介质中获取所述文件;
其中,所述文件包括先前基于纠错码(ECC)进行编码的压缩数据;
将获取的文件作为只读副本存储在所述存储设备的物理介质上。
17.根据权利要求10所述的计算机系统,其中,
存储在所述存储设备的文件格式包括如下的一个或多个:
表示与文件相关联的起始位置的前同步码;
文件的唯一文件标识符;
文件的内容;
表示与文件相关联的结束位置的后同步码;
用于验证文件内容的一致性的循环冗余校验(CRC)签名。
18.根据权利要求10所述的计算机系统,其中,其中所述第一存储设备不包括:
执行ECC编码的模块或单元;
动态随机存取存储器(DRAM)接口和通过所述DRAM接口访问的DRAM模块;和
执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址。
19.一种分布式存储系统,用于通过一个或更多个客户端便于一个或更多个大数据分析应用,所述分布式存储系统包括:
前端头服务器;
交换机;和
多个与所述交换机相连的NAND卡;
其中,一NAND卡被配置为:
通过所述交换机接收读取存储在所述NAND卡上的文件的请求;和
由NAND卡基于纠错码(ECC)进行对文件解码,以获得ECC解码数据,和
其中,所述前端头服务器被配置为对解码的数据进行解压缩,并将解压缩的数据作为请求的文件返回。
20.根据权利要求19所述的分布式存储系统,
其中,所述前端头服务器被配置为接收读取文件的请求,其中,所述NAND卡还配置为:
从与所述NAND卡分离的原始物理介质获取所述文件,其中文件包括先前基于纠错码(ECC)被编码的压缩数据;和
将所述ECC解码的数据返回到前端头服务器,而无需执行任何ECC编码;和
其中,所述NAND卡不包括:
执行ECC编码的模块或单元;
动态随机存取存储器(DRAM)接口和通过DRAM接口访问的DRAM模块;和
执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址,
从而通过减少ECC编码的数量来便于大数据分析应用有效地分析数据。
CN202010704686.8A 2019-07-23 2020-07-21 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统 Pending CN112286714A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/519,972 US11074124B2 (en) 2019-07-23 2019-07-23 Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US16/519,972 2019-07-23

Publications (1)

Publication Number Publication Date
CN112286714A true CN112286714A (zh) 2021-01-29

Family

ID=74190326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010704686.8A Pending CN112286714A (zh) 2019-07-23 2020-07-21 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统

Country Status (2)

Country Link
US (1) US11074124B2 (zh)
CN (1) CN112286714A (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671483B2 (en) * 2019-10-30 2023-06-06 Telefonaktiebolaget Lm Ericsson (Publ) In-band protocol-based in-network computation offload framework
US11392295B2 (en) * 2020-05-27 2022-07-19 EMC IP Holding Company LLC Front-end offload of storage system processing
TWI738627B (zh) * 2021-03-12 2021-09-01 英業達股份有限公司 具有錯誤偵測功能的智能網卡系統及錯誤偵測方法
US11245762B1 (en) * 2021-05-19 2022-02-08 Red Hat, Inc. Data request servicing using smart network interface cards
US11671350B1 (en) * 2022-08-15 2023-06-06 Red Hat, Inc. Data request servicing using multiple paths of smart network interface cards

Family Cites Families (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893071A (en) 1974-08-19 1975-07-01 Ibm Multi level error correction system for high density memory
NL8402411A (nl) 1984-08-02 1986-03-03 Philips Nv Inrichting voor het korrigeren en maskeren van fouten in een informatiestroom, en weergeeftoestel voor het weergeven van beeld en/of geluid voorzien van zo een inrichting.
WO1994018634A1 (en) 1993-02-01 1994-08-18 Lsc, Inc. Archiving file system for data servers in a distributed network environment
US5394382A (en) 1993-02-11 1995-02-28 International Business Machines Corporation Method for the organization of data on a CD-ROM
JP3215237B2 (ja) 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5732093A (en) 1996-02-08 1998-03-24 United Microelectronics Corporation Error correction method and apparatus on optical disc system
US6148377A (en) 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6098185A (en) 1997-10-31 2000-08-01 Stmicroelectronics, N.V. Header-formatted defective sector management system
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6421787B1 (en) 1998-05-12 2002-07-16 Sun Microsystems, Inc. Highly available cluster message passing facility
US6457104B1 (en) 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6658478B1 (en) 2000-08-04 2003-12-02 3Pardata, Inc. Data storage system
KR100856399B1 (ko) 2002-01-23 2008-09-04 삼성전자주식회사 디코딩 방법 및 그 장치
US6988165B2 (en) 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7953899B1 (en) 2002-08-21 2011-05-31 3Par Inc. Universal diagnostic hardware space access system for firmware
US7239605B2 (en) 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
US7003620B2 (en) 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7130957B2 (en) 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system structure for storing relational cache metadata
US7676603B2 (en) 2004-04-20 2010-03-09 Intel Corporation Write combining protocol between processors and chipsets
JP4401895B2 (ja) 2004-08-09 2010-01-20 株式会社日立製作所 計算機システム、計算機及びそのプログラム。
DE102005032061B4 (de) 2005-07-08 2009-07-30 Qimonda Ag Speichermodul, und Speichermodul-System
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US7711890B2 (en) 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US20080065805A1 (en) 2006-09-11 2008-03-13 Cameo Communications, Inc. PCI-Express multimode expansion card and communication device having the same
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
US7761623B2 (en) 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
KR100858241B1 (ko) 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
US8344475B2 (en) 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7958433B1 (en) 2006-11-30 2011-06-07 Marvell International Ltd. Methods and systems for storing data in memory using zoning
US7852654B2 (en) 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
US7599139B1 (en) 2007-06-22 2009-10-06 Western Digital Technologies, Inc. Disk drive having a high performance access mode and a lower performance archive mode
US7917574B2 (en) 2007-10-01 2011-03-29 Accenture Global Services Limited Infrastructure for parallel programming of clusters of machines
US8281061B2 (en) 2008-03-31 2012-10-02 Micron Technology, Inc. Data conditioning to improve flash memory reliability
WO2009140700A1 (en) 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR101497074B1 (ko) 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
JP2010152704A (ja) 2008-12-25 2010-07-08 Hitachi Ltd 計算機システムの運用管理システム及び管理方法
US20100217952A1 (en) 2009-02-26 2010-08-26 Iyer Rahul N Remapping of Data Addresses for a Large Capacity Victim Cache
US8166233B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
US20100332922A1 (en) 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US20110055471A1 (en) 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8631304B2 (en) 2010-01-28 2014-01-14 Sandisk Il Ltd. Overlapping error correction operations
TWI409633B (zh) 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8938624B2 (en) 2010-09-15 2015-01-20 Lsi Corporation Encryption key destruction for secure data erasure
US20120089774A1 (en) 2010-10-12 2012-04-12 International Business Machines Corporation Method and system for mitigating adjacent track erasure in hard disk drives
US8429495B2 (en) 2010-10-19 2013-04-23 Mosaid Technologies Incorporated Error detection and correction codes for channels and memories with incomplete error characteristics
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US8793328B2 (en) 2010-12-17 2014-07-29 Facebook, Inc. Distributed storage system
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9612978B2 (en) 2010-12-31 2017-04-04 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
CN102693168B (zh) 2011-03-22 2014-12-31 中兴通讯股份有限公司 一种数据备份恢复的方法、系统和服务节点
US20180107591A1 (en) 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US8832402B2 (en) 2011-04-29 2014-09-09 Seagate Technology Llc Self-initiated secure erasure responsive to an unauthorized power down event
US8949568B2 (en) 2011-05-24 2015-02-03 Agency For Science, Technology And Research Memory storage device, and a related zone-based block management and mapping method
US9344494B2 (en) 2011-08-30 2016-05-17 Oracle International Corporation Failover data replication with colocation of session state data
US8904158B2 (en) 2011-09-02 2014-12-02 Lsi Corporation Storage system with boot appliance for improving reliability/availability/serviceability in high density server environments
US8843451B2 (en) 2011-09-23 2014-09-23 International Business Machines Corporation Block level backup and restore
KR20130064518A (ko) 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US8904061B1 (en) 2011-12-30 2014-12-02 Emc Corporation Managing storage operations in a server cache
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9362003B2 (en) 2012-03-09 2016-06-07 Sandisk Technologies Inc. System and method to decode data subject to a disturb condition
US9336340B1 (en) 2012-03-30 2016-05-10 Emc Corporation Evaluating management operations
US9208820B2 (en) 2012-06-29 2015-12-08 International Business Machines Corporation Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems
US20140019650A1 (en) 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO
US9009402B2 (en) 2012-09-20 2015-04-14 Emc Corporation Content addressable storage in legacy systems
US9141554B1 (en) 2013-01-18 2015-09-22 Cisco Technology, Inc. Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US8751763B1 (en) 2013-03-13 2014-06-10 Nimbus Data Systems, Inc. Low-overhead deduplication within a block-based data storage
US9747202B1 (en) 2013-03-14 2017-08-29 Sandisk Technologies Llc Storage module and method for identifying hot and cold data
US9195673B2 (en) 2013-03-15 2015-11-24 International Business Machines Corporation Scalable graph modeling of metadata for deduplicated storage systems
US9436595B1 (en) 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device
US20140304452A1 (en) 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
KR101478168B1 (ko) 2013-04-17 2014-12-31 주식회사 디에이아이오 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
US9093093B2 (en) 2013-10-25 2015-07-28 Seagate Technology Llc Adaptive guard band for multiple heads of a data storage device
CA2881206A1 (en) 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US9542404B2 (en) 2014-02-17 2017-01-10 Netapp, Inc. Subpartitioning of a namespace region
US20150301964A1 (en) 2014-02-18 2015-10-22 Alistair Mark Brinicombe Methods and systems of multi-memory, control and data plane architecture
US9263088B2 (en) 2014-03-21 2016-02-16 Western Digital Technologies, Inc. Data management for a data storage device using a last resort zone
US9880859B2 (en) 2014-03-26 2018-01-30 Intel Corporation Boot image discovery and delivery
US9383926B2 (en) 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9015561B1 (en) 2014-06-11 2015-04-21 Sandisk Technologies Inc. Adaptive redundancy in three dimensional memory
GB2527296A (en) 2014-06-16 2015-12-23 Ibm A method for restoring data in a HSM system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10044795B2 (en) 2014-07-11 2018-08-07 Vmware Inc. Methods and apparatus for rack deployments for virtual computing environments
US9542327B2 (en) 2014-07-22 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective mirroring in caches for logical volumes
US20160041760A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Multi-Level Cell Flash Memory Control Mechanisms
US10430328B2 (en) 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US10127157B2 (en) 2014-10-06 2018-11-13 SK Hynix Inc. Sizing a cache while taking into account a total bytes written requirement
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
CN105701028B (zh) 2014-11-28 2018-10-09 国际商业机器公司 分布式存储系统中的磁盘管理方法和设备
US9852076B1 (en) 2014-12-18 2017-12-26 Violin Systems Llc Caching of metadata for deduplicated LUNs
US10013169B2 (en) 2014-12-19 2018-07-03 International Business Machines Corporation Cooperative data deduplication in a solid state storage array
US20160179399A1 (en) 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
US10282211B2 (en) 2015-01-09 2019-05-07 Avago Technologies International Sales Pte. Limited Operating system software install and boot up from a storage area network device
US9916275B2 (en) 2015-03-09 2018-03-13 International Business Machines Corporation Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
KR101927233B1 (ko) 2015-03-16 2018-12-12 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US10069916B2 (en) 2015-05-26 2018-09-04 Gluent, Inc. System and method for transparent context aware filtering of data requests
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US9696931B2 (en) 2015-06-12 2017-07-04 International Business Machines Corporation Region-based storage for volume data and metadata
US9588571B2 (en) 2015-07-08 2017-03-07 Quanta Computer Inc. Dynamic power supply management
US9529601B1 (en) 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
WO2017039702A1 (en) 2015-09-04 2017-03-09 Hewlett Packard Enterprise Development Lp Secure login information
US10120573B2 (en) 2015-09-14 2018-11-06 Microsoft Technology Licensing, Llc. Modular sequential writing of data to data storage devices
CN105278876B (zh) 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
US10120811B2 (en) 2015-09-29 2018-11-06 International Business Machines Corporation Considering a frequency of access to groups of tracks and density of the groups to select groups of tracks to destage
US10031774B2 (en) 2015-10-15 2018-07-24 Red Hat, Inc. Scheduling multi-phase computing jobs
US20170147499A1 (en) 2015-11-25 2017-05-25 Sandisk Technologies Llc Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device
US20170161202A1 (en) 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
US20170177259A1 (en) 2015-12-18 2017-06-22 Intel Corporation Techniques to Use Open Bit Line Information for a Memory System
JP6517684B2 (ja) 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
CN107037976B (zh) 2016-02-03 2020-03-20 株式会社东芝 存储装置及其工作方法
US10235198B2 (en) 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US20170249162A1 (en) 2016-02-25 2017-08-31 Red Hat Israel, Ltd. Safe transmit packet processing for network function virtualization applications
US10452490B2 (en) 2016-03-09 2019-10-22 Commvault Systems, Inc. Data management and backup of distributed storage environment
US10700702B2 (en) * 2016-03-24 2020-06-30 International Business Machines Corporation Updating prefix codes for pseudo-dynamic data compression
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
US10684795B2 (en) 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
JP6606039B2 (ja) * 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
US10275165B2 (en) * 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US11644992B2 (en) 2016-11-23 2023-05-09 Samsung Electronics Co., Ltd. Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
US10445016B2 (en) * 2016-12-13 2019-10-15 International Business Machines Corporation Techniques for storage command processing
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US10516760B2 (en) 2017-03-17 2019-12-24 Verizon Patent And Licensing Inc. Automatic bootstrapping and dynamic configuration of data center nodes
US10275170B2 (en) 2017-04-10 2019-04-30 Sandisk Technologies Llc Folding operations in memory systems with single address updates
US10613944B2 (en) 2017-04-18 2020-04-07 Netapp, Inc. Systems and methods for backup and restore of distributed master-slave database clusters
US10474397B2 (en) 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
US10521375B2 (en) 2017-06-22 2019-12-31 Macronix International Co., Ltd. Controller for a memory system
US10275162B2 (en) 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
US10838902B2 (en) 2017-06-23 2020-11-17 Facebook, Inc. Apparatus, system, and method for performing hardware acceleration via expansion cards
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10956279B2 (en) 2017-12-04 2021-03-23 International Business Machines Corporation Managing big data on document based NoSQL databases
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
US10606693B2 (en) 2017-12-28 2020-03-31 Micron Technology, Inc. Memory controller implemented error correction code memory
CN110058794B (zh) 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
US10199066B1 (en) 2018-03-01 2019-02-05 Seagate Technology Llc Write management of physically coupled storage areas
US10585819B2 (en) 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10649657B2 (en) 2018-03-22 2020-05-12 Western Digital Technologies, Inc. Log-based storage for different data types in non-volatile memory
US11138026B2 (en) 2018-05-04 2021-10-05 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US10437670B1 (en) 2018-05-24 2019-10-08 International Business Machines Corporation Metadata hardening and parity accumulation for log-structured arrays
KR20190139082A (ko) 2018-06-07 2019-12-17 삼성전자주식회사 메모리 장치의 비트 에러율 균등화 방법
US11599557B2 (en) 2018-06-12 2023-03-07 Open Text Corporation System and method for persistence and replication of changes to a data store
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10776263B2 (en) 2018-06-27 2020-09-15 Seagate Technology Llc Non-deterministic window scheduling for data storage systems
US11150836B2 (en) 2018-06-28 2021-10-19 Seagate Technology Llc Deterministic optimization via performance tracking in a data storage system
US11086529B2 (en) 2018-09-26 2021-08-10 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery

Also Published As

Publication number Publication date
US11074124B2 (en) 2021-07-27
US20210026731A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US10642522B2 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
CN112286714A (zh) 在基于nand的读取源存储中提高大数据分析吞吐量的方法和系统
US10860555B2 (en) Method and apparatus for two tier data deduplication using weighted graphs
US10380014B2 (en) Address translation for a non-volatile memory storage device
CN115114059B (zh) 使用区来管理归因于存储装置故障的容量减小
WO2014056381A1 (zh) 数据冗余实现方法及装置
US20210320592A1 (en) Address Translation for Storage Device
US20210278998A1 (en) Architecture and design of a storage device controller for hyperscale infrastructure
US11200159B2 (en) System and method for facilitating efficient utilization of NAND flash memory
KR20180052739A (ko) 고체 상태 드라이브 컨트롤러를 사용한 데이터 중복 제거
US11494115B2 (en) System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
CN110795497A (zh) 分布式存储系统中的协同压缩
US11656942B2 (en) Methods for data writing and for data recovery, electronic devices, and program products
US11520500B2 (en) Managing capacity reduction when downshifting multi-level memory cells
US20200089784A1 (en) Method and system for reduced data movement compression using in-storage computing and a customized file system
US11385833B2 (en) Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
CN115114055B (zh) 管理归因于存储装置故障的容量减小和恢复
US10387252B2 (en) Synchronously storing data in a plurality of dispersed storage networks
US11487465B2 (en) Method and system for a local storage engine collaborating with a solid state drive controller
US20180365261A1 (en) Fingerprinting data for more aggressive de-duplication
US11061834B2 (en) Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US11243890B2 (en) Compressed data verification
CN115114054A (zh) 管理发生故障的多层级存储器单元的存储空间减小和再用
US20170371741A1 (en) Technologies for providing file-based resiliency
US11476874B1 (en) Method and system for facilitating a storage server with hybrid memory for journaling and data storage

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