CN107526542A - 对象存储装置及其操作方法 - Google Patents

对象存储装置及其操作方法 Download PDF

Info

Publication number
CN107526542A
CN107526542A CN201710450282.9A CN201710450282A CN107526542A CN 107526542 A CN107526542 A CN 107526542A CN 201710450282 A CN201710450282 A CN 201710450282A CN 107526542 A CN107526542 A CN 107526542A
Authority
CN
China
Prior art keywords
memory
value
object data
controller
stored
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.)
Withdrawn
Application number
CN201710450282.9A
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107526542A publication Critical patent/CN107526542A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/13File access structures, e.g. distributed indices
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding 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/0638Organizing or formatting or addressing of data
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/465Structured object, e.g. database record

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种控制器包括:接口单元,所述接口单元被配置为接收对对象数据的访问请求;和变址单元,所述变址单元被配置成确定是否划分所述对象数据,并且当所述对象数据被划分时,将所述对象数据的第一部分存储在第一存储器中且将所述对象数据的第二部分存储在第一和第二存储空间中,其中所述第一和第二存储空间具有比所述第一存储器的延迟时间长的延迟时间。

Description

对象存储装置及其操作方法
本申请要求于2016年6月15日在韩国知识产权局提交的第10-2016-0074735号韩国专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
本发明构思涉及一种存储装置,更具体地,涉及一种对象存储装置或者键值存储器以及对象存储装置或者键值存储器的操作方法。
背景技术
取决于数据管理单元,存储可以指基于对象存储或基于块存储。基于对象存储(例如,对象存储)识别用于存储和管理呈对象形式的数据的存储结构。例如诸如动态图像、图像等的多媒体数据、文件之类的对象可以是具有随机大小的数据。基于对象存储可以用于管理对象。
发明内容
根据本发明构思的示例性实施例,提供一种控制器,包括:接口单元,所述接口单元被配置为接收对对象数据的访问请求;和变址单元,所述变址单元被配置为确定是否划分所述对象数据,并且当所述对象数据被划分时,将所述对象数据的第一部分存储在第一存储器中且将所述对象数据的第二部分存储在第一和第二存储空间中,其中所述第一和第二存储空间具有比所述第一存储器的延迟时间长的延迟时间。
根据本发明构思的示例性实施例,提供一种非易失存储器存储装置,包括:具有第一延迟时间的第一存储器;第一和第二存储空间,所述第一和第二存储空间具有比所述第一延迟时间长的第二延迟时间;和控制器,所述控制器配置为响应对象数据的访问请求确定是否划分所述对象数据,当所述对象数据被划分成第一和第二部分时,将所述第一部分存储在第一存储器中且将所述第二部分存储在第一和第二存储空间中。
根据本发明构思的示例性实施例,提供一种对象缓存服务器,包括:处理器;电源;网络设备;第一存储器,第一和第二存储空间,所述第一和第二存储空间中的每一个具有比所述第一存储器的延迟时间长的延迟时间;和控制器,所述控制器配置为响应对象数据的访问请求确定是否划分所述对象数据,当所述对象数据被划分时,将所述对象数据的第一部分存储在第一存储器中且将所述对象数据的第二部分存储在第一和第二存储空间中。
根据本发明构思的示例性实施例,提供一种写入方法,包括:接收写请求和对象数据;当所述对象数据的大小大于阈值时将所述对象数据划分成第一和第二部分值;将所述第一部分值存储在具有第一延迟时间的第一存储器中;将所述第二部分值以顺序的方式存储在第一和第二存储空间中,其中所述第一和第二存储空间中的每一个具有比所述第一延迟时间长的第二延迟时间。
根据本发明构思的示例性实施例,提供一种写入方法,包括:接收写请求和对象数据;将所述对象数据写入具有第一延迟时间的第一存储器;确定所述对象数据的大小;当所述对象数据的大小超过阈值时将所述对象数据划分成第一部分值和第二部分值;以及其中将所述第二部分值存储到具有比所述第一延迟时间长的第二延迟时间的第一和第二存储空间。
根据本发明构思的示例性实施例,提供一种读取方法,包括:在第一阶段接收读请求和键;在第二阶段根据所述键索引对象数据的存储地址;在第三阶段从第一存储器读取对象数据的第一部分值并且在第四阶段发送所读取的第一部分值;以及在第四阶段从具有比第一存储器的延迟时间长的延迟时间的第一存储空间和第二存储空间中的一个读取对象数据的第二部分值,并且在第五阶段发送所述第二部分值。
附图说明
通过结合附图进行的以下详细描述,将更明确地理解本发明的示例性实施例,其中:
图1示出根据本发明构思的示例性实施例的网络系统;
图2是根据本发明构思的示例性实施例的对象存储装置的方块图;
图3示出根据本发明构思的示例性实施例的图2中所示的第一存储器;
图4示出根据本发明构思的示例性实施例的图2中所示的第二存储器;
图5是根据本发明构思的示例性实施例的图2中所示的第二存储器的方块图;
图6是根据本发明构思的示例性实施例的图2中所示的控制器的方块图;
图7示出根据本发明构思的示例性实施例的图6中所示的由变址单元执行的操作;
图8是根据本发明构思的示例性实施例的图6中所示的变址单元的方块图;
图9是根据本发明构思的示例性实施例的图2中所示的控制器的方块图;
图10是根据本发明构思的示例性实施例的对象存储装置的操作方法的流程图;
图11、12和13示出根据本发明构思的示例性实施例的关于图2的对象存储装置的写入操作;
图14是根据本发明构思的示例性实施例的示出应用服务器和缓存服务器之间操作的流程图;
图15是根据本发明构思的示例性实施例的对象存储装置的操作方法的流程图;
图16和17示出根据本发明构思的示例性实施例的关于图2中所示的对象存储装置的读操作;
图18A示出根据本发明构思的示例性实施例的由图17的对象存储装置执行的读操作;
图18B示出根据比较示例的由对象存储装置执行的读操作;
图19是示出根据本发明构思的示例性实施例的应用服务器和缓存服务器之间操作的流程图;
图20是根据本发明构思的示例性实施例的对象存储装置的方块图;
图21示出根据本发明构思的示例性实施例的关于图20的对象存储装置的写入操作;
图22示出根据本发明构思的示例性实施例的关于图20中所示的对象存储装置的读操作;
图23示出根据本发明构思的示例性实施例的由图20中所示的对象存储装置执行的读操作;
图24是根据本发明构思的示例性实施例的对象存储装置的方块图;
图25示出根据本发明构思的示例性实施例的关于图24的对象存储装置的写入操作;
图26示出根据本发明构思的示例性实施例的关于图24的对象存储装置的读操作;
图27示出根据本发明构思的示例性实施例的由图24中所示的对象存储装置执行的读操作;
图28是根据本发明构思的示例性实施例的对象存储装置的方块图;
图29示出根据本发明构思的示例性实施例的关于图28的对象存储装置的写入操作;
图30示出根据本发明构思的示例性实施例的关于图28的对象存储装置的读操作;以及
图31是根据本发明构思的示例性实施例的计算机系统的方块图。
具体实施方式
图1示出根据本发明构思的示例性实施例的网络系统10。
参考图1,网络系统10可包括客户端组11和数据中心12。客户端组11可以包括多个客户端设备C,并且客户端设备C可以通过诸如英特网的第一网络NET1与数据中心12通信。客户端设备C可以包括各种电子设备,诸如智能手机、智能平板、笔记本电脑、个人计算机、智能照相机、智能电视等。
数据中心12对应收集各种类型的数据并且提供服务的平台。数据中心12可以包括应用服务器组12a、数据库服务器组12b和对象缓存服务器组12c。应用服务器组12a、数据库服务器组12b和对象缓存服务器组12c可以经由诸如本地局域网(LAN)或英特网的第二网络NET2彼此通信。
应用服务器组12a可以包括多个应用服务器设备AS。应用服务器设备AS可以处理经由第一网络NET1从客户端组11接收的请求,并且可以根据来自客户端组11的请求访问数据库服务器组12b或者对象缓存服务器组12c。例如,应用服务器设备AS可以经由第二网络NET2将客户端组11请求存储的多个数据项存储在数据库服务器组12b中,并且可以将一些存储在数据库服务器组12b中的数据项存储在对象缓存服务器组12c中。另外,应用服务器设备AS可以经由第二网络NET2从对象缓存服务器组12c获得客户端组11请求读取的数据,并且当所请求的数据不在对象缓存服务器组12c中时,应用服务器设备AS可以经由第二网络NET2从数据库服务器组12b获得客户端组11请求读取的数据。
数据库服务器组12b可以包括多个数据库服务器设备DS。数据库服务器设备DS可以存储由应用服务器设备AS处理的数据并且可以根据来自应用服务器设备AS的请求将数据提供给应用服务器设备AS。每一个数据库服务器设备DS可以提供非易失性大容量存储器。
对象缓存服务器组12c可以包括多个对象缓存服务器设备OCS。对象缓存服务器设备OCS暂时地存储存储在数据库服务器设备DS中的数据或者从数据库服务器设备DS读取的数据。这样,对象缓存服务器设备OCS可以起到应用服务器设备AS和数据库服务器设备DS之间的缓存器的作用。对象缓存服务器设备OCS可以以比数据库服务器设备DS快的响应速度响应从应用服务器组12a接收的请求。在这种情况下,每个对象缓存服务器设备OCS可以提供高速存储。
根据本实施例,每个对象缓存服务器设备OCS可以包括异质性存储器(heterogeneous memories)。在本实施例中,每个对象缓存服务器设备OCS可以包括具有第一等待时间的第一存储器和具有比第一等待时间长的第二等待时间的第二存储器。每个对象缓存服务器设备OCS可以同时对第一存储器和第二存储器执行读操作,并且可以在从具有快速响应速度的第一存储器读取的数据被传输的同时连续地对第二存储器执行读操作。
例如,响应于从一个应用服务器设备AS接收的写请求,对象缓存服务器设备OCS接收写请求并且可以将对象的头部分存储在第一存储器中并且可以同样地将对象的尾部分存储在第二存储器中。对象缓存服务器设备OCS可以响应于来自应用服务器设备AS的写请求同时对第一和第二存储器执行读操作,可以先传输从具有快速读取速度的第一存储器读取的对象的头部分,然后传输从具有慢速读取速度的第二存储器读取的对象的尾部分。因此,对象缓存服务器设备OCS可以增加与第二存储器的存储容量对应的存储容量,同时对象缓存服务器设备OCS可以维持其快速响应速度。在下文中,将参考图2至30详细描述对象缓存服务器设备OCS的各个实施例。
图2是根据本发明构思的示例性实施例的对象存储装置100的方块图。
参考图2,用于通过对象单元管理数据的对象存储装置100可以包括第一存储器110、第二存储器120和控制器130。在本实施例中,对象存储装置100可以被用作对象缓存装置或对象缓存系统。例如,对象存储装置100可以是图1中所示的对象缓存服务器设备OCS。然而,发明构思不限于缓存装置,在本发明构思的示例性实施例中,对象存储装置100可以作为通过对象单元管理数据的任何装置或系统使用。另外,在本发明构思的示例性实施例中,对象存储装置100不限于服务器装置而是可以实现为存储器模块或存储模块。
第一和第二存储器110和120可以是具有不同硬件属性的异质性存储器。第一和第二存储器110和120中的每一个均可以实现为存储器芯片。例如,硬件属性可以包括延迟时间、存储器带宽、存储器功率损耗等。延迟时间可以是读取延迟时间、写入延迟时间、列地址选通脉冲(CAS)延迟时间,行地址选通脉冲(RAS)延迟时间等。
在本实施例中,第一存储器110可以具有第一延迟时间,并且第二存储器120可以具有比第一延迟时间长的延迟时间。因此,第一存储器110可以具有比第二存储器120短的响应时间。例如,第一存储器110可以包括动态随机存取存储器(DRAM)或相变化随机存取存储器(PRAM)。例如,第二存储器120可以包括NAND闪存或磁盘驱动器。
在本发明构思的示例性实施例中,第一存储器110可以是易失性存储器,而第二存储器120可以是非易失性存储器。在本发明构思的示例性实施例中,第一和第二存储器110和120可以是易失性存储器。在本发明构思的示例性实施例中,第一和第二存储器110和120可以是非易失性存储器。例如,易失性存储器可以包括DRAM、移动式DRAM、同步DRAM(SDRAM)、双倍数据率(DDR)DRAM、低功率双倍数据率(LPDDR)SDRAM、图形用双倍数据率(GDDR)SDRAM、Rambus DRAM(RDRAM)等。例如,非易失性存储器可以包括NAND闪存、NOR闪存、PRAM、磁随机存取存储器(MRAM)、电阻随机存取存储器(ReRAM)、铁电随机存取存储器(FRAM)等。
根据本实施例,第一存储器110可以配置为对象的第一部分,且第二存储器120可以包括第一和第二存储空间121和122用于重复存储对象的第二部分。对象可以包括对象数据。对象数据可以包括动态图像、图像或流类型文件。例如,对象的第二部分可以被复制并存储在第一和第二存储空间121和122的每一个中。因此,重复存储可以被理解为冗余存储或补充存储。控制器130可以基于对象的标识符(ID)或键索引对象的存储地址,并且可以根据存储地址控制关于对象的写入操作和读取操作。例如,控制器130可以在索引结构中存储所存第一部分的第一存储地址和所重复存储的第二部分的第二存储地址。
图3示出在图2中所示的第一存储器110的示例110A。参考图3,第一存储器110A可以包括多个为同质性(homogeneous)存储器的存储器。在本实施例中,第一存储器110A可以包括多个DRAM,并且例如多个DRAM可以配置成四级RANK1至RANK4。多个DRAM中的每一个均可以独立地被控制器(例如图2的控制器130)访问,并且属于不同级的一些DRAM可以同时被控制器以并行的方式访问。
图4示出在图2中所示的第二存储器120的示例120A。参考图4,第二存储器120A可以是NAND闪存并且可以实现为单个芯片。第二存储器120A可以包括第一和第二存储空间121A和122A,并且第一和第二存储空间121A和122A可以分别对应第一和第二晶片(dies)。根据本实施例,对象的第二部分可以被复制并且可以被存储在包括在第一存储空间121A中的至少一页和包括在第二存储空间122A中的至少一页的每一个中。
在本发明构思的示例性实施例中,图2的第一和第二存储空间121和122可以分别位于不同平面。例如,图2的第一存储空间121可以对应第一平面PL0的区域,且图2的第二存储空间122可以对应第二平面PL1的区域。这样,对象的第二部分可以被复制并且可以被存储在包括在第一平面PL0中的至少一页和包括在第二平面PL1中的至少一页的每一个中。
在本发明构思的示例性实施例中,图2的第一和第二存储空间121和122可以分别位于同一平面的不同块中。例如,图2的第一存储空间121可以对应第一块BLK0的区域,且图2的第二存储空间122可以对应第二块BLK1的区域。这样,对象的第二部分可以被复制并且可以被存储在包括在第一块BLK0中的至少一页和包括在第二块BLK1中的至少一页的每一个中。在图4中,例如PL可以表示平面且PG可以表示页。
图5是在图2中所示的第二存储器120的示例120B的方块图。参考图5,第二存储器120B可以包括第一和第二存储空间121B和122B和控制逻辑电路CLC。第一存储空间121B可以包括第一存储单元阵列1211、第一行译码器1212和第一页缓冲区1213。第二存储空间122B可以包括第二存储单元阵列1221、第二行译码器1222和第二页缓冲区1223。
包括在第一存储空间121B中的第一存储单元阵列1211和包括在第二存储空间122B中的第二存储单元阵列1221可以被彼此独立地控制或者可以被同时控制。因此,控制器(例如图2的控制器130)可以相对于第一和第二存储空间121B和122B并行控制操作。这样,对象的第二部分可以被复制并且可以被存储在包括在第一存储单元阵列1211中的至少一页和包括在第二存储单元阵列1221中的至少一页的每一个中。这里,第一和第二存储单元阵列1211和1221可以被称为存储器平面(memory plane)。
回头参考图2,在本实施例中,对象存储装置100可以是键值存储器。键值存储器是一种通过使用键值对(key-value pair)快速且简单处理数据的装置。这样,键值对标识具有唯一性的键值对和对应键的数据值。在键值对中,键可以被表达为文件名、统一资源标识符(URL)或诸如散列的字符串,并且值可以是诸如图像、用户优选文件或文档等的数据。这样,根据数据类型,可以改变值的大小。
在下文中,将描述其中对象存储装置100为键值存储器的本发明构思的示例性实施例。这里,对象存储装置100可以实质等同于键值存储器。然而,对象存储装置100不限于键值存储器,并且可以应用于通过对象单元管理数据的任何对象缓存系统或任何对象存储系统。因此,对象存储装置100可以通过对象单元以与键值对不同的方式管理数据。
图6是在图2中所示的第二控制器130的实例130A的方块图。参考图6,控制器130A可以包括接口单元131、变址单元132和加载/存储单元133。接口单元131、变址单元132和加载/存储单元133中的每一个可以是知识产权(IP)。
接口单元131可以根据第一数据格式与外部源通讯,并且可以根据第二数据格式与内部源例如变址单元132通讯。例如,第一数据格式可以是允许接口单元131经由图1的第二网络NET2与应用服务器AS通讯的以太网方案。例如,第二数据格式可以是外围部件互联网快速(peripheral component internet express,PCIe)格式或由对象缓存服务器装置的制造商定义的供应商格式。
接口单元131可以接收来自外部设备的访问请求(例如写请求或读请求)。在本实施例中,当访问请求是写请求时,接口单元131可以接收包括对应写请求的设置命令(例如SET)、键和值的数据包。在本实施例中,当访问请求是读请求时,接口单元131可以接收包括对应读请求的获取命令(例如GET)和键的数据包。
变址单元132可以基于对象的ID或键索引对象的存储地址。变址单元132可以基于传输带宽和第二存储器120的读取时间预先确定相对于对象大小的阈值,第二存储器120的响应速度相对缓慢。换句话说,第二存储器120的响应速度比第一存储器110慢。例如,变址单元132可以将传输带宽和第二存储器120的读取时间相乘所获得的值确定为阈值。阈值可以被预先确定或适应性地调整。
在本实施例中,变址单元132可以将对象的大小与阈值作比较。当对象的大小比阈值大时,变址单元132可以将对象划分成多个部分并且可以将待存储的部分的存储地址存储在索引结构中。另外,当对象的大小比阈值大时,变址单元132可以在索引结构中搜索所存储部分的每个存储地址。
变址单元132划分对象的条件不限于对象的大小。例如,变址单元132可以根据不同的条件划分对象。例如,变址单元132可以基于第一和第二存储器110和120的信息、对象的读/写操作的数目、经由接口单元131接收的访问请求、控制器130A的电源运行模式、或划分操作的优先级来划分对象。
另外,变址单元132可以根据每个条件的阈值来确定是否划分对象和多个所划分部分的数目。当对象不被划分时,变址单元132可以确定用第一存储器110和第二存储器120中的哪一个来存储对象。当对象被划分时,变址单元132可以确定对象将仅被存储在第一存储器110的多个存储地址中,被存储在第二存储器120的多个存储地址中,或者被存储在第一和第二存储器110和120的多个存储地址中。另外,变址单元132可以确定第二存储器120在晶片单元、平面单元或者芯片单元中的存储地址。
在本发明构思的示例性实施例中,变址单元132可以基于第一和第二存储器110和120的信息划分对象。在这种情况下,第一和第二存储器110和120的信息可以是第一存储器110的状态、第二存储器120的剩余存储容量等。例如,当第二存储器120的剩余存储容量等于或大于存储容量阈值,则变址单元132可划分对象。在本发明构思的示例性实施例中,根据对象的读/写历史,基于对象的读/写操作的数目,变址单元132可将对象划分成多个部分。例如,当对象被频繁读或者写,变址单元132可确定不划分对象而是把该对象存储在第一存储器110中。在本发明构思的示例性实施例中,基于经由接口单元131接收的访问请求,变址单元132可将对象划分成多个部分。例如,变址单元132可从主机接收请求或命令以指示(instruct)对象的划分。
在本发明构思的示例性实施例中,变址单元132可预处理对象的划分。例如,如在图12中所示,变址单元132可划分对象并且可以确定第一和第二存储器110和120的存储地址。在本发明构思的示例性实施例中,变址单元132可预处理对象的存储,并且接着可以处理对象的划分。例如,如在图13中所示,变址单元132可以不划分对象而是可以确定第一存储器110的存储地址以先存储该对象,然后可以划分对象以允许第二存储器120存储存储在第一存储器110中的对象的一部分,并且可以确定第二存储器120的存储地址。
图7示出在图6中所示的变址单元132的操作示例。参考图6和7,变址单元132可以从接口单元131接收键和值,可以基于键通过执行哈希计算生成索引,并且可以基于所生成的索引在哈希表HT中存储对象的存储地址。另外,变址单元132可以从接口单元131接收键,可以基于键通过执行哈希计算生成索引,并且可以基于所生成的索引在哈希表HT中搜索对象的存储地址。哈希表HT可以被存储在第一存储器110的区域中。
参考图2和6,在本实施例中,当接收写请求时,变址单元132可以将接收值的大小与阈值作比较。作为比较的结果,当值的大小比阈值大时,变址单元132可以将值划分成多个部分值并且可以将待存储的部分值的存储地址存储在索引结构中。例如,存储地址可以分别对应响应速度相对快的第一存储器110的区域和响应速度相对慢的第二存储器120的区域。当值的大小等于或小于阈值时,变址单元132可以不划分该值并且在索引结构中存储待存储的值的单个存储地址。例如,单个存储地址可以对应响应速度相对快的第一存储器110的区域。
在本实施例中,当接收读请求时,变址单元132可以通过使用所接收到的键在索引结构中搜索所存值的存储地址。当根据所接收的键的值的大小大于阈值时,变址单元132可以搜索与该值对应的已存部分值的存储地址。例如,找到的存储地址可以分别对应响应速度相对快的第一存储器110的区域和响应速度相对慢的第二存储器120的区域。当根据所接收的键的值的大小等于或小于阈值时,变址单元132可以搜索所存值的单个存储地址。例如,找到的单个存储地址可以对应响应速度相对快的第一存储器110的区域。
下面,将详细描述变址单元132的操作,该操作对应于值的大小大于阈值的情况。当接收写请求时,变址单元132可以将值划分成第一值和第二值,可以将所存第一值的存储地址存储为第一存储器110的区域,并且可以将所重复存储的第二值的存储地址存储为第二存储器120的区域。当接收读请求时,变址单元132可以搜索第一存储器110关于所存第一值的存储地址,以及第二存储器120关于所重复存储的第二值的存储地址。另外,变址单元132可以基于第二存储器120的操作状态选择找到的第二存储器120的存储地址中的一个。例如,变址单元132可以选择存储地址以允许从第二存储器120的第一和第二存储空间121和122中的一个读取第二值。
基于与由变址单元132索引的结果对应的存储地址,加载/存储单元133可以控制从第一存储器110或第二存储器120检索数据的加载操作,和将数据存储在第一存储器110或第二存储器120的存储地址中的存储操作。在本实施例中,当索引结果对应单个存储地址时,加载/存储单元133可以控制从第一存储器110检索数据的加载操作,和将数据存储在第一存储器110的存储地址中的存储操作。
图8是在图6中所示的变址单元132的示例132a的方块图。参考图8,变址单元132a可包括译码器1321、哈希计算器1322、哈希表管理器1323和存储器分配器1324。
当接收写请求时,译码器1321通过解密从接口单元131接收的数据来提取键K和值V,并且将所提取的键K和值V输出到哈希计算器1322。另外,译码器1321可以从值V生成请求大小RS和请求计数RC,并且将请求大小RS和请求计数RC输出到存储器分配器1324。在读请求的情况下,译码器1321通过解密从接口单元131接收的数据来提取键K,并且将所提取的键K输出到哈希计算器1322。
哈希计算器1322可以从译码器1321接收键K或键K和值V。哈希计算器1322可以通过对所接收的键K执行哈希操作生成哈希数据HD。例如,哈希计算器1322可以对所接收的键K执行完全哈希操作或部分哈希操作。哈希计算器1322可以向哈希表管理器1323输出哈希数据HD和键K,或哈希数据HD、键K和值V。
存储器分配器1324可以从译码器1321接收请求大小RS和请求计数RC。存储器分配器1324可以分配由请求大小RS和请求计数RC请求的存储空间,并且将所分配存储空间的地址ADDR输出到哈希表管理器1323。例如,请求大小RS和请求计数RC可以识别为写入操作请求的存储空间。
当接收写请求时,哈希表管理器1323可以从哈希计算器1322接收键K、值V和哈希数据HD,并且从存储器分配器1324接收地址ADDR。哈希表管理器1323可以控制加载/存储单元133更新存储在由哈希数据HD指示的存储器中的哈希表HT。存储器可以是第一和第二存储器110和120中的一个。
当接收读请求时,哈希表管理器1323可以从哈希计算器1322接收键K和哈希数据HD。哈希表管理器1323可以控制加载/存储单元133读取由哈希数据HD指示的存储器中的哈希表HT。存储器可以是第一和第二存储器110和120中的一个。基于哈希表HT,哈希表管理器1323可以根据键K提取地址ADDR。
图9是在图2中所示的第二控制器130的示例130B的方块图。参考图9,控制器130B可以包括处理单元134、RAM135、主机接口136和存储器接口137。处理单元134、RAM135、主机接口136和存储器接口137可以经由总线138彼此通信。
处理单元134可以包括中央处理单元、微处理机等,且可以控制由控制器130B执行的操作。根据本实施例,变址模块135a或在执行索引操作中使用的数据可以被加载至RAM135。
主机接口136可以在主机(例如图1的应用服务器设备AS中的一个)和控制器130B之间提供接口。例如,主机接口136可以对应于图6的接口单元131。第一存储器接口137a可以在控制器130B和第一存储器110之间提供接口。第二存储器接口137b可以在控制器130B和第二存储器120之间提供接口。例如,第一和第二存储器接口137a和137b可以对应于图6的加载/存储单元133。
图10是根据本发明构思的示例性实施例的对象存储装置的操作方法的流程图。参考图10,根据本实施例的对象存储装置的操作方法说明了通过对象单元向对象存储装置写入数据的操作,并且包括例如按时间顺序在图2的对象存储装置100中执行的过程。以上参考图1至9作出的描述同样适用于本实施例,因此不做赘述。
在操作S110中,接收对象和写请求。例如,包括在控制器130中的接口单元131可以从主机接收对象和写请求。例如,对象可以包括键值对,并且写请求可以包括设置命令(例如SET)。
在操作S120中,确定对象的大小是否大于阈值。例如,变址单元132可以将对象的大小与阈值作比较。例如,当对象包括键值对时,变址单元132可以确定对象的大小是否大于阈值。作为确定的结果,当对象的大小大于阈值时,执行操作S140,并且当对象的大小等于或小于阈值时,执行操作S130。
在本发明构思的示例性实施例中,由对象存储装置执行的操作方法进一步包括在操作S110或S120之前确定阈值。在本实施例中,可以基于其响应速度相对慢的第二存储器120的第二延迟时间来确定阈值。例如,可以基于通过将第二存储器120的读取时间与对象存储装置100的传输带宽相乘所获得的值来确定阈值。这样,所确定的阈值越小,可以被存储在第二存储器120中的数据就越多,因此对象存储装置100的存储容量可以进一步增加。
在操作S130中,对象被存储在第一存储器110中。例如,变址单元132可以将对象的存储地址索引到第一存储器110的存储空间,并且加载/存储单元133可以控制第一存储器110将对象写入第一存储器110。现在将参考图11详细描述操作S130。
图11示出根据本发明构思的示例性实施例的关于图2的对象存储装置100的写入操作。
参考图11,控制器130接收一对键K和值V,并且可以根据所接收的一对键K和值V确定值V的大小。当值V的大小等于或小于阈值时,控制器130可以控制第一存储器110将值V写入到第一存储器110。在这种情况下,当值V的大小等于或小于阈值,对象存储装置100可以将对象存储在其写入速度相对快的第一存储器110中,并且可以不访问其写入速度相对慢的第二存储器120。因此,对象存储装置100的写入操作速度可以维持迅速。
根据本实施例,当接收到关于值V的读请求时,对象存储装置100可以不访问其响应速度相对慢的第二存储器120而是访问其写入速度相对快的第一存储器110并读取值V。因此,对象存储装置100的读操作速度也可以维持迅速。
回头参考图10,在操作S140中,对象被划分成至少第一和第二部分。例如,变址单元132可以将对象划分成至少第一部分和第二部分,可以将用于存储第一部分的第一存储地址索引到第一存储器110的存储空间,并且可以将用于重复存储第二部分的第二存储地址索引到第二存储器120的存储空间。在这种情况下,变址单元132可以在索引结构中存储第一存储地址和第二存储地址。这里,变址单元132可以将对象划分成三个部分或更多部分。
在操作S150中,第一部分被存储在第一存储器110中。例如,加载/存储单元133可以控制第一存储器110将第一部分存储在第一存储器110的存储空间中,所述存储空间对应第一存储地址。在操作S160中,第二部分被重复存储在第二存储器的第一和第二存储空间中。例如,加载/存储单元133可以控制第二存储器120将第二部分重复存储在第一和第二存储空间121和122中。换句话说,第二部分可以被存储在第一和第二存储空间121和122两者中。
在本实施例中,操作S160可包括确定是否第一和第二存储空间121和122均处于空闲状态,并且当第一和第二存储空间121和122均处于空闲状态时将第二部分以顺序方式重复存储在第一和第二存储空间121和122中。这里,空闲状态指其中当前未对第一和第二存储空间121和122执行写入操作、读操作或者删除操作的状态。现在将参考图12和13详细描述操作S140至S160。
图12示出根据本发明构思的示例性实施例的关于图2的对象存储装置100的写入操作。
参考图12,控制器130接收一对键K和值V,并且可以根据所接收的一对键K和值V确定值V的大小。当值V的大小大于阈值时,控制器130可以将值V划分成第一部分值V0和第二部分值V1。在本实施例中,第一部分值V0可对应于值V的头部分,且第二部分值V1可以对应于值V的尾部分。然而,发明构思不限于此,且控制器130可以不同的方式(variously)改变从值V划分的部分值数目。换句话说,值V可以被划分成两部分以上。
此后,控制器130可以控制第一存储器110将第一部分值V0写入到第一存储器110,并且可以控制第二存储器120将第二部分值V1写入到第二存储器120的第一和第二存储空间121和122中的每一个中。根据本实施例,当对象的大小大于阈值时,第一部分值V0可以被存储在其响应速度相对快的第一存储器110中,且第二部分值V1可以被存储在其响应速度相对慢的第二存储器120中。这样,可以通过第二存储器120的存储容量来增加对象存储装置100的存储容量。在这种情况下,根据本实施例,控制器130可以先划分值V,然后可以控制所划分的第一部分值V0和第二部分值V1的存储。
另外,控制器130可以确定第一和第二存储空间121和122是否均处于空闲状态,并且当第一和第二存储空间121和122均处于空闲状态时,控制器130可以控制第二存储器120以顺序的方式将第二部分值V1存储到第一和第二存储空间121和122中。例如,当第一和第二存储空间121和122均处于空闲状态时,第二部分值V1可以先被存储在第一存储空间121中,然后可以被存储在第二存储空间122中。由于在第一和第二存储空间121和122上顺序地执行写入操作,如果之后对第二部分执行读操作,可以确保针对第一和第二存储空间121和122之一的即时读操作。因此,当对第二部分执行读操作时,不会发生额外的延迟。
如果第二部分值V1不被重复存储在第二存储器120中,在对正在存储第二部分值V1的块执行写、读、或删除操作时,不能够对第二部分值V1执行读操作。另外,对第二部分值V1的读操作可能发生额外的延迟,使得对象存储装置的读取功能可能恶化。然而,根据本实施例,由于第二部分值V1被重复地存储在第二存储器120的第一和第二存储空间121和122中,对第二部分值V1的读操作不会发生额外延迟。
图13示出根据本发明构思的示例性实施例的关于图2的对象存储装置100的写入操作。
参考图13,根据本实施例的写入操作可以对应图12中所示的写入操作的修改示例。在下文中,主要描述图12和13的示例之间的不同,而不包括重复描述。控制器130可以接收一对键K和值V,并且可以控制第一存储器110将值V写入到第一存储器110。此后,控制器130可以将指示了关于对象的写入操作已经完成的应答信息发送给主机。在这种情况下,根据本实施例,无论对象的大小,对象可以首先被存储在其操作速度快的第一存储器110中,然后应答信息可以被发送给主机。
然后,控制器130可以确定值V的大小,并且当值V的大小大于阈值时,控制器130可以将值V划分成第一部分值V0和第二部分值V1。此后,控制器130可以控制第一和第二存储器110和120将存储在第一存储器110中的值V的第二部分值V1刷新到第一和第二存储空间121和122。换句话说,将第二部分值V1从第一存储器110移除并且将其存储到第二存储器120的第一和第二存储空间121和122中。在本实施例中,控制器130可以确定第一和第二存储空间121和122是否均处于空闲状态,并且作为确定的结果,当第一和第二存储空间121和122均处于空闲状态时,控制器130可以控制第二存储器120以顺序的方式将第二部分值V1存储到第一和第二存储空间121和122中。在这种情况下,根据本实施例,控制器130可以先存储值V,然后可以控制值V的划分和第一部分值V0和第二部分值V1的存储。
图14是根据本发明构思的示例性实施例的说明应用服务器200和缓存服务器100A之间操作的流程图。
参考图14,缓存服务器100A是图2的对象存储装置100的示例,并且可以对应于图1的对象缓存服务器设备OCS中的一个。应用服务器200可以对应于图1的应用服务器设备AS中的一个。
在操作S210中,应用服务器200将写请求、键和值发送到缓存服务器100A。应用服务器200可以经由第二网络(例如图1的第二网络NET2)将写请求、键和值发送到缓存服务器100A。这里,写请求可以包括设置命令。可以根据键来改变值的大小。
在操作S220中,缓存服务器100A确定值的大小是否大于阈值TH。作为确定的结果,当值的大小大于阈值TH时,缓存服务器100A可以执行操作S250,并且当值的大小等于或小于阈值TH时,缓存服务器100A可以执行操作S230。然而,发明构思不限于此,并且在本发明构思的示例性实施例中,如果值的大小大于阈值TH,缓存服务器100A可以执行操作S230和S240,然后可以执行操作S250。在这种情况下,可以不执行操作S280。
在操作S230中,缓存服务器100A将值V存储在第一存储器中。在操作S240中,缓存服务器100A将指示写入操作完成的应答信息发送到应用服务器200。缓存服务器100A可以经由第二网络(例如图1的第二网络NET2)将应答信息发送到应用服务器200。然而,发明构思不限于此,在本发明构思的示例性实施例中,可以在执行操作S220之前执行操作S230和S240。
在操作S250中,缓存服务器100A将值V划分成第一部分值V0和第二部分值V1。在操作S260中,缓存服务器100A将第一部分值V0存储在第一存储器(例如,相对快的存储器)中。在操作S270中,缓存服务器100A将第二部分值V1重复存储在第二存储器(例如,相对慢的存储器)的第一和第二存储空间中。在操作S280中,缓存服务器100A将指示写入操作完成的应答信息发送到应用服务器200。缓存服务器100A可以经由第二网络(例如图1的第二网络NET2)将应答信息发送到应用服务器200。
图15是根据本发明构思的示例性实施例的对象存储装置的操作方法的流程图。参考图15,根据本实施例的对象存储装置的操作方法指示了通过对象单元向对象存储装置写入数据的操作,并且可以包括例如按时间顺序在图2的对象存储装置100中执行的过程。以上参考图1至14作出的描述同样适用于本实施例,因此不做赘述。
在操作S310中,接收读请求。例如,包括在控制器130中的接口单元131可以从主机接收读请求。例如,控制器130可以接收连同键一起的读请求,并且读请求可以包括获取命令(例如GET)。
在操作S320中,搜索所存储对象的存储地址。例如,变址单元132可以通过使用所接收的键搜索存储在索引结构中的对象的存储地址。在操作S330中,确定是否对象的所有部分均存储在第一存储器110中。换句话说,确定所找到的存储地址是否为单一存储地址。作为确定的结果,如果对象的所有部分均存储在第一存储器110中,则可以执行操作S340,如果否,则可以执行操作S350。
在本发明构思的示例性实施例中,由对象存储装置执行的操作方法进一步包括在操作S310或S320之前确定阈值。另外,在发明构思的示例性实施例中,可以在配置对象存储装置的同时执行阈值的确定。在本实施例中,可以基于其响应速度相对慢的第二存储器120的第二延迟时间来确定阈值。例如,可以基于通过将第二存储器120的读取时间与对象存储装置100的传输带宽相乘所获得的值来确定阈值。在这种情况下,所确定的阈值越小,可以被存储在第二存储器120中的数据就越多,因此对象存储装置100的存储容量可以进一步增加。因此,当减少第二存储器120的读取时间时,可以增加对象存储装置100的存储容量。另外,通过将数据重复存储在第二存储器120中来减少第二存储器120的读取时间,从而可以增加对象存储装置100的存储效率。
在操作S340中,从第一存储器110读取对象并且所读取的对象被发送到外部源。例如,通过使用所找到的存储地址,加载/存储单元133可以根据从第一存储器110所接收的键读取值,并且将所读取的值发送至主机。现在将参考图16详细描述操作S340。
图16示出根据本发明构思的示例性实施例的关于图2中所示的对象存储装置100的读操作。
参考图16,控制器130可以接收键并且通过使用所接收的键来搜索值V的存储地址。作为搜索的结果,当值V的全部部分的存储地址均对应于第一存储器110时,控制器130可以控制第一存储器110从第一存储器110读取值V。然后,控制器130可以将所读取的值V发送至外部源。如上文参考图11所描述的,当值V的大小等于或小于阈值时,值V可以不被划分并且可以存储在第一存储器110中。
在这种情况下,当对象的大小等于或小于阈值,控制器130可以通过访问其读取速度相对快的第一存储器100来读取值V,并且在这种情况下控制器130可以不访问其读取速度相对慢的第二存储器120。因此,对象存储装置100的读操作速度可以维持迅速。
回头参考图15,在操作S350中,在第一阶段期间,从第一存储器110读取第一部分,并且所读取的第一部分被发送至外部源。在操作S360中,在第一阶段期间,从第二存储器120的第一和第二存储空间121和122中的一个读取第二部分。可以同时或时间非常接近地执行操作S350和S360。在操作S370中,所读取的第二部分被发送至外部源。可以在执行操作S350和S360之后执行操作S370。
在本实施例中,操作S360可以包括在空闲状态下选择存储空间并且从所选存储空间读取第二部分,所述存储空间来自第一和第二存储空间121和122中。这里,空闲状态指其中当前未对第一和第二存储空间121和122执行写入操作、读操作或者删除操作的状态。现在将参考图17详细描述操作S350至S370。
图17示出根据本发明构思的示例性实施例的关于图2中所示的对象存储装置100的读操作。
参考图17,控制器130可以接收键并且通过使用所接收的键来搜索值V的存储地址。作为搜索的结果,当值V的第一和第二部分值V0和V1的存储地址分别对应第一和第二存储器110和120时,控制器130可以控制第一和第二存储器110和120以同时执行关于第一和第二存储器110和120的读操作。
例如,控制器130可以控制第一存储器110从第一存储器110读取第一部分值V0,并且可以控制第二存储器120从第二存储器120的第一和第二存储空间121和122的一个中读取第二部分值V1。第一部分值V0可以对应于值V的头部分,且第二部分值V1可以对应于值V的尾部分。
控制器130可以基于第二存储器120的第一和第二存储空间121和122的状态选择第一和第二存储空间121和122中的一个,并且可以从所选择的存储空间读取第二部分值V1。例如,控制器130可以选择处于空闲状态的存储空间,所述存储空间来自第一和第二存储空间121和122中。例如,第一存储空间121可以处于空闲状态而第二存储空间122可以处于繁忙状态,在这种情况下可能在包括在第二存储空间122中的块上正在执行写入操作、读操作或删除操作。控制器130可以访问所选择的第一存储空间121并且从第一存储空间121读取第二部分值V1。
图18A示出根据本发明构思的示例性实施例的根据时间的读操作,所述读操作由图17所示的对象存储装置100执行。
参考图17和18A,在第一阶段181期间,控制器130可以从外部源接收读请求RR和键K。第一阶段181可以被称为接口阶段。在第二阶段182期间,控制器130可以基于键K索引根据键K的值的存储地址。第二阶段182可以被称为索引阶段。
在第三阶段183期间,可以对第一和第二存储器110和120同时执行读操作。这里,根据第一和第二存储器110和120的读取速度和值的第一和第二部分值V0和V1的大小之间的差异,读取第一部分值V0所需的时间可以不同于读取第二部分值V1所需的时间。在本实施例中,读取第一部分值V0所需的时间可以对应读取阶段183a,且读取第二部分值V1所需的时间可以对应第三阶段183。
第三阶段183可以包括读取阶段183a和发送阶段183b。在读取阶段183a期间,可以从第一存储器110读取第一部分值V0,并且在发送阶段183b期间,可以将读取到的第一部分值V0发送至外部源。另外,在第三阶段183期间,可以从第二存储器120读取第二部分值V1。在第四阶段184期间,可以将读取到的第二部分值V1发送至外部源。
根据本实施例,第二部分值V1的读取时间(例如,第三阶段183)可以对应于第一部分值V0的读取阶段183a和第一部分值V0的发送阶段183b的总和。换句话讲,从接口的角度看,虽然关于第二存储器120的读取阶段183比关于第一存储器110的读取阶段183a长出一段额外时间,但第二存储器120的该额外时间可以被发送阶段183b隐藏。
另外,根据本实施例,在包括在第三阶段183中的发送阶段183b期间第一部分值V0可以被发送至外部源,然后在第四阶段184期间第二部分值V1可以被发送至外部源。因此,从对象存储装置100和主机之间接口的角度看,对象存储装置100可以具有读取功能,就像对象存储装置100从其读取速度相对快的第一存储器110读取全部值那样。
另外,根据本实施例,在第三阶段183期间,可以从第二存储器120的第一和第二存储空间121和122中选择处于空闲状态的存储空间,并且仅从所选存储空间读取第二部分值V1。如上文参考图12和13描述的,根据本实施例,可以以顺序的方式将第二部分值V1重复存储到第一和第二存储空间121和122中。因此,不会出现其中同时在第一和第二存储空间121和122上执行写入操作、读操作或者删除操作的阶段。因此,可以确保第一和第二存储空间121和122中的一个的空闲状态,使得在从第二存储器120读取第二部分值V1的同时不会出现额外的延迟时间。
图18B示出根据比较示例的根据时间的读操作,该读操作由对象存储装置执行。
参考图18B,根据比较示例,第一部分值V0可以被存储在第一存储器,且第二部分值V1可以被存储在第二存储器。换句话说,根据比较示例,第二部分值V1不被重复存储在第二存储器的第一和第二存储空间中。当在第三阶段183’期间对第二存储器执行读操作时,可能正在对存储在第二存储器中的第二部分值V1的存储地址执行写入操作、读操作或删除操作。
这种情况下,由于要在当前执行的写、读或删除操作完成后才可以从第二存储器读取第二部分值V1,与图18A的第三阶段183相比,第三阶段183’可能增加额外的延迟时间183c。因此,从对象存储装置和主机之间的接口角度看,对象存储装置的读取速度可能比图18A的对象存储装置100的读取速度慢。
图19是示出根据本发明构思的示例性实施例的应用服务器200和缓存服务器100A之间操作的流程图。
参考图19,缓存服务器100A是图2的对象存储装置100的示例,并且可以对应于图1的对象缓存服务器设备OCS中的一个。应用服务器200可以对应于图1的应用服务器设备AS中的一个。
在操作S410中,应用服务器200将写请求和键发送到缓存服务器100A。应用服务器200可以经由第二网络(例如图1的第二网络NET2)将写请求和键发送到缓存服务器100A。这里,读请求可以包括获取命令(例如GET)。键是指定值的唯一值。
在操作S420中,缓存服务器100A根据键搜索值的存储地址。在操作S430中,缓存服务器100A确定值的所有部分是否均存储在第一存储器中。作为确定的结果,如果值的所有部分均存储在第一存储器110中,则可以执行操作S440,如果否,则可以执行操作S460。
在操作S440中,缓存服务器100A从第一存储器读取值V。在操作S450中,缓存服务器100A将所读取的值V发送至应用服务器200。缓存服务器100A可以经由第二网络(例如图1的第二网络NET2)将值V发送到应用服务器200。当执行操作S440和S450时,应用服务器200和缓存服务器100A之间从操作终止,且不执行操作S460至S480。
在操作S460中,缓存服务器100A从第一存储器读取第一部分值V0,并且同时从第二存储器的第一和第二存储空间中的一个读取第二部分值V1。在操作S470中,缓存服务器100A将第一部分值V0发送至应用服务器200。在操作S480中,缓存服务器100A将第二部分值V1发送至应用服务器200。缓存服务器100A可以经由第二网络(例如图1的第二网络NET2)将第一和第二部分值V0和V1发送到应用服务器200。
图20是根据本发明构思的示例性实施例的对象存储装置100a的方块图。
根据图20,对象存储装置100a是图2的对象存储装置100的修改示例,且可以包括第一存储器110、第二存储器120a和控制器130a。第二存储器120a可以包括第一、第二和第三存储空间121、122和123。第一和第二存储空间121和122可以配置成重复存储对象的第二部分,且第三存储空间123可以配置成存储对象的第三部分。然而,发明构思不限于此,且第二存储器120a可进一步包括第四存储空间,且第三存储空间123和第四存储空间可配置为重复存储对象的第三部分。
在本实施例中,第一、第二和第三存储空间121、122和123可以分别位于第二存储器120a的第一、第二和第三晶片中,所述第一、第二和第三晶片彼此不同。在本发明构思的示例性实施例中,第一、第二和第三存储空间121、122和123可以分别位于第二存储器120a的第一、第二和第三平面中,所述第一、第二和第三平面彼此不同。在本发明构思的示例性实施例中,第一、第二和第三存储空间121、122和123可以分别位于第二存储器120a的第一、第二和第三块(block)中,所述第一、第二和第三块彼此不同。
在本发明构思的示例性实施例中,第一和第二存储空间121和122可以位于第二存储器120a的第一晶片中,且第三存储空间123可以位于第二存储器120a的第二晶片中。在本发明构思的示例性实施例中,第一和第二存储空间121和122可以位于第二存储器120a的第一平面中,且第三存储空间123可以位于第二存储器120a的第二平面中。在本发明构思的示例性实施例中,第一和第二存储空间121和122可以位于第二存储器120a的第一块中,且第三存储空间123可以位于第二存储器120a的第二块中。
图21示出根据本发明构思的示例性实施例的关于图20的对象存储装置100a的写入操作的示例。
参考图21,当值V的大小大于阈值时,控制器130a可以将值V划分成第一、第二和第三部分值V0、V1和V2。在本实施例中,第一部分值V0可对应于值V的头部分,且第二部分值V1可以对应于值V的中间部分,且第三部分值V2可对应于值V的尾部分。然而,发明构思不限于此,且控制器130a可以不同的方式改变从值V划分的部分值数目。例如,部分值的划分数目可以大于三且部分值可以对应于值V的其他部分。
然后,控制器130a可以将第一部分值V0存储在其响应速度相对快的第一存储器110,并且可以将第二部分值V1和第三部分值V2存储在其响应速度相对慢的第二存储器120a中。因此,可以用第二存储器120a的存储容量来增加对象存储装置100a的存储容量。
另外,控制器130a可以确定第一和第二存储空间121和122是否均处于空闲状态,并且作为确定的结果,当第一和第二存储空间121和122均处于空闲状态时,控制器130a可以控制第二存储器120a以顺序的方式将第二部分值V1存储到第一和第二存储空间121和122中。当值V的大小等于或小于阈值时,控制器130a可以不划分值V并且可以将值V的全部部分存储在第一存储器110中。
图22示出根据本发明构思的示例性实施例的关于图20中所示的对象存储装置100a的读操作。
参考图22,控制器130a可以接收键并且通过使用所接收的键来搜索值V的存储地址。作为搜索的结果,当第一、第二和第三部分值V0、V1和V2的每一个存储地址对应于第一存储器110或第二存储器120a时,控制器130a控制第一和第二存储器110和120a同时执行读操作。另外,控制器130a可以基于第二存储器120a的第一和第二存储空间121和122的状态选择第一和第二存储空间121和122中的一个,并且可以从所选择的存储空间读取第二部分值V1。
图23示出根据本发明构思的示例性实施例的根据时间的读操作,所述读操作由如图20所示的对象存储装置100a执行。
参考图22和23,在第一阶段231期间,控制器130a可以从外部源接收读请求RR和键K。在第二阶段232期间,控制器130a可以基于键K索引根据键K的值的存储地址。在第三阶段233期间,可以同时执行对第一存储器110、第二存储器120a的第一存储空间121或第二存储空间122和第二存储器120a的第三存储空间的读操作。
第三阶段233可以包括读取阶段233a和发送阶段233b。在读取阶段233a期间,可以从第一存储器读取第一部分值V0。在发送阶段233b期间,可以将读取到的第一部分值V0发送至外部源。另外,在第三阶段233期间,可以从第二存储器120a的第一存储空间121或第二存储空间122读取第二部分值V1。在第四阶段234期间,可以将读取到的第二部分值V1发送至外部源。另外,在第三阶段233和第四阶段234期间,可以从第二存储器120a的第三存储空间123读取第三部分值V2。在第五阶段235期间,可以将读取到的第三部分值V2发送至外部源。
根据本实施例,尽管关于第一存储空间121或第二存储空间122的读取阶段(换句话说,第三阶段233)比关于第一存储器110的读取阶段233a长出一段额外时间,但第一存储空间121或第二存储空间122的额外时间可以被发送阶段233b所隐藏。另外,虽然关于第三存储空间123的读取阶段(换句话说,第三阶段233和第四阶段234)比关于第一存储空间121或第二存储空间122的读取阶段长出一段额外时间,但第三存储空间123的额外时间可以被第四阶段234所隐藏。
另外,根据本实施例,在包括在第三阶段233中的发送阶段233b期间第一部分值V0可以被发送至外部源,然后在第四阶段234期间第二部分值V1可以被发送至外部源,然后在第五阶段235期间第三部分值V2可以被发送至外部源。因此,从对象存储装置100a和主机之间接口的角度看,对象存储装置100a可以具有使其从读取速度相对快的第一存储器110读取全部值的功能。
图24是根据本发明构思的示例性实施例的对象存储装置100b的方块图。
根据图24,对象存储装置100b是图2的对象存储装置100的修改示例,且可以包括第一存储器110、第二存储器120、第三存储器140和控制器130b。第一存储器110、第二存储器120和第三存储器140可以分别具有第一延迟时间、第二延迟时间和第三延迟时间。第二延迟时间和第三延迟时间中的每一个均比第一延迟时间长。在本实施例中,第二延迟时间和第三延迟时间可以彼此相等,且第二和第三存储器120和140可以是同质性存储器。例如,第二和第三存储器120和140可以是由不同芯片配置的存储器。在本发明构思的示例性实施例中,第二延迟时间和第三延迟时间可以彼此不同,且第二和第三存储器120和140可以是异质性存储器。
图25示出根据本发明构思的示例性实施例的关于图24的对象存储装置100b的写入操作的示例。
参考图25,当值V的大小大于阈值时,控制器130b可以将值V划分成第一、第二和第三部分值V0、V1和V2。然后,控制器130b可以控制第一存储器110将第一部分值V0存储在第一存储器110中,并且可以将第二部分值V1和第三部分值V2分别存储在其具有相对慢的响应速度的第二存储器120和第三存储器140中。
图26示出根据本发明构思的示例性实施例的关于图24的对象存储装置100b的读操作。
参考图26,当值V的第一、第二和第三部分值V0、V1和V2的存储地址分别对应第一、第二和第三存储器110、120和140时,控制器130b可以控制第一、第二和第三存储器110、120和140同时执行关于第一、第二和第三存储器110、120和140的读操作。另外,控制器130b可以基于第二存储器120的第一和第二存储空间121和122的状态选择第一和第二存储空间121和122中的一个,并且可以从所选择的存储空间读取第二部分值V1。
图27示出根据本发明构思的示例性实施例的根据时间的读操作,所述读操作由如图24所示的对象存储装置100b执行。
参考图26和27,在第一阶段271期间,控制器130b可以从外部源接收读请求RR和键K。在第二阶段272期间,控制器130b可以基于键K索引根据键K的值V的存储地址。
第三阶段273可以包括读取阶段273a和发送阶段273b。在读取阶段273a期间,可以从第一存储器110读取第一部分值V0。在发送阶段273b期间,可以将读取到的第一部分值V0发送至外部源。另外,在第三阶段273期间,可以从第二存储器120的第一存储空间121或第二存储空间122读取第二部分值V1。在第四阶段274期间,可以将读取到的第二部分值V1发送至外部源。另外,在第三阶段273和第四阶段274期间,可以从第三存储器140读取第三部分值V2。在第五阶段275期间,可以将读取到的第三部分值V2发送至外部源。
根据本实施例,虽然关于第二存储器120的读取阶段(换句话说,第三阶段273)比关于第一存储器110的读取阶段273a长出一段额外时间,但第二存储器120的该额外时间可以被第三阶段273b隐藏。另外,虽然关于第三存储器140的读取阶段(换句话说,第三阶段273和第四阶段274)比关于第二存储器120的读取阶段长出一段额外时间,但第三存储器140的额外时间可以被第四阶段274所隐藏。
图28是根据本发明构思的示例性实施例的对象存储装置100c的方块图。
根据图28,对象存储装置100c是图24的对象存储装置100b的修改示例,且可以包括第一存储器110、第二存储器120、第三存储器140a和控制器130c。第三存储器140a可以包括第一和第二存储空间141和142。第一和第二存储空间141和142可以配置为重复存储对象的第三部分。在本发明构思的示例性实施例中,第三存储器140a可以进一步包括第三存储空间,且该第三存储空间可以配置为存储对象的第四部分。另外,在本发明构思的示例性实施例中,第三存储器140a可以进一步包括第三和第四存储空间,且该第三和第四存储空间可以配置为重复存储对象的第四部分。
图29示出根据本发明构思的示例性实施例的关于图28的对象存储装置100c的写入操作的示例。
参考图29,当值V的大小大于阈值时,控制器130c可以将值V划分成第一、第二和第三部分值V0、V1和V2。然后,控制器130c可以将第一部分值V0存储在其响应速度相对快的第一存储器110,并且可以将第二部分值V1重复存储在其响应速度相对慢的第二存储器120中,并且将第三部分值V2重复存储在其响应速度相对慢的第三存储器140a中。
图30示出根据本发明构思的示例性实施例的关于图28的对象存储装置100c的读操作。
参考图30,当值V的第一、第二和第三部分值V0、V1和V2的存储地址分别对应第一、第二和第三存储器110、120和140a时,控制器130c可以控制第一、第二和第三存储器110、120和140a同时执行关于第一、第二和第三存储器110、120和140a的读操作。在这种情况下,控制器130c可以选择处于空闲状态的存储空间,所述存储空间来自第二存储器120的第一和第二存储空间121和122中。另外,控制器130可以选择处于空闲状态的存储空间,所述存储空间来自第三存储器130的第一和第二存储空间141和142中。
图31是根据本发明构思的示例性实施例的计算机系统1000的方块图。
参考图31,计算机系统1000可以包括处理器1100、存储器装置1200、存储装置1300、对象缓存系统1400、输入/输出(I/O)装置1500和电源1600。在本实施例中,根据上述示例性实施例中的至少一个,对象缓存系统1400可以包括对象存储装置100、100a、100b和100c中的一个。例如,每个对象缓存系统1400可以包括具有第一等待时间的第一存储器和具有比第一等待时间长的第二等待时间的第二存储器。对象缓存系统1400可以同时对第一和第二存储器执行读操作,同时对象缓存系统1400发送从其响应速度快的第一存储器读取的数据,对象缓存系统1400可以对其响应速度慢于第一存储器的第二存储器持续执行读操作。例如,图1中所示的对象缓存服务器设备OCS可以实施为计算机系统1000。
已经参考本发明的示例性实施例具体图示且描述了本发明构思,但将理解的是,在不偏离由所附权利要求限定的发明构思的精神和范围的情况下,可以在形式上和细节上进行各种改变。

Claims (25)

1.一种控制器,包括:
接口单元,所述接口单元被配置为接收对对象数据的访问请求;以及
变址单元,所述变址单元被配置成确定是否划分所述对象数据,并且当所述对象数据被划分时,将所述对象数据的第一部分存储在第一存储器中且将所述对象数据的第二部分存储在第一存储空间和第二存储空间中,
其中第一和第二存储空间具有比所述第一存储器的延迟时间长的延迟时间。
2.根据权利要求1所述的控制器,其中所述访问请求是写请求或读请求。
3.根据权利要求1所述的控制器,其中所述变址单元被配置成根据条件划分所述对象数据。
4.根据权利要求3所述的控制器,其中所述条件包括阈值、关于所述第一存储器的信息、关于第一和第二存储空间的信息、所述对象数据已经被访问的次数、所述控制器的电源操作模式、或者划分操作的优先级。
5.根据权利要求4所述的控制器,其中所述变址单元被配置成确定所述阈值,并且通过使用所述阈值划分所述对象数据。
6.根据权利要求5所述的控制器,其中通过使用所述第一存储器的带宽和所述第一存储器的读取时间来确定所述阈值。
7.根据权利要求5所述的控制器,其中通过使用第一或第二存储空间的带宽和第一或第二存储空间的读取时间来确定所述阈值。
8.根据权利要求5所述的控制器,其中当所述对象数据的大小大于所述阈值时划分所述对象数据。
9.根据权利要求5所述的控制器,其中所述阈值被预确定或被适应性地调整。
10.根据权利要求3所述的控制器,其中所述条件是所述对象数据的数据属性。
11.根据权利要求1所述的控制器,其中所述第一存储器是易失性存储器且第一或第二存储空间被包括在一个或更多个非易失存储器中。
12.根据权利要求1所述的控制器,其中所述变址单元被配置成在晶片单元、平面单元或芯片单元中确定第一或第二存储空间的存储地址。
13.根据权利要求1所述的控制器,其中所述控制器被配置为基于第一和第二存储装置中每一个的状态选择处于读操作的第一或第二存储空间中的一个。
14.一种非易失存储器装置,包括:
第一存储器,所述第一存储器具有第一延迟时间;
第一和第二存储空间,所述第一和第二存储空间具有比所述第一延迟时间长的第二延迟时间;和
控制器,所述控制器配置为响应对象数据的访问请求确定是否划分对象数据,当所述对象数据被划分成第一部分和第二部分时,将所述第一部分存储在所述第一存储器中且将所述第二部分存储在第一和第二存储空间中。
15.根据权利要求14所述的非易失存储器装置,进一步包括第三存储空间,并且当所述对象数据被划分成具有第三部分时,所述第三部分被存储在所述第三存储空间中。
16.根据权利要求15所述的非易失存储器装置,其中第一至第三存储空间被分别布置在第一、第二和第三晶片中。
17.根据权利要求15所述的非易失存储器装置,其中第一至第三存储空间被分别布置在第一、第二和第三存储器平面中。
18.根据权利要求15所述的非易失存储器装置,其中第一至第三存储空间被分别布置在第一、第二和第三存储器块中。
19.根据权利要求14所述的非易失存储器装置,其中第一和第二存储空间被包括在第二存储器中。
20.根据权利要求14所述的非易失存储器装置,其中所述控制器被配置成根据条件划分所述对象数据。
21.根据权利要求20所述的非易失存储器装置,其中所述条件包括阈值、关于所述第一存储器的信息、关于第一和第二存储空间的信息、所述对象数据已经被访问的次数、所述控制器的电源操作模式、或者划分操作的优先级。
22.一种写入方法,包括:
接收写请求和对象数据;
当所述对象数据的大小大于阈值时将所述对象数据划分成第一部分值和第二部分值;
将所述第一部分值存储在具有第一延迟时间的第一存储器中;
将所述第二部分值以顺序的方式存储在第一和第二存储空间中,
其中所述第一和第二存储空间中的每一个具有比所述第一延迟时间长的第二延迟时间。
23.根据权利要求22所述的方法,其中所述第一部分值是所述对象数据的头部分且所述第二部分值是所述对象数据的尾部分。
24.根据权利要求22所述的方法,其中当所述对象数据被进一步划分成具有第三部分值时,所述第三部分值被存储在第三存储空间中。
25.根据权利要求22所述的方法,进一步包括当所述对象数据的大小等于或小于所述阈值时将全部对象数据存储在所述第一存储器中。
CN201710450282.9A 2016-06-15 2017-06-15 对象存储装置及其操作方法 Withdrawn CN107526542A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020160074735A KR20170141538A (ko) 2016-06-15 2016-06-15 오브젝트 스토리지 장치 및 상기 오브젝트 스토리지 장치의 동작 방법들
KR10-2016-0074735 2016-06-15
US15/593,719 US20170364280A1 (en) 2016-06-15 2017-05-12 Object storage device and an operating method thereof
US15/593,719 2017-05-12

Publications (1)

Publication Number Publication Date
CN107526542A true CN107526542A (zh) 2017-12-29

Family

ID=60660141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710450282.9A Withdrawn CN107526542A (zh) 2016-06-15 2017-06-15 对象存储装置及其操作方法

Country Status (3)

Country Link
US (1) US20170364280A1 (zh)
KR (1) KR20170141538A (zh)
CN (1) CN107526542A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109164974A (zh) * 2018-06-27 2019-01-08 阿里巴巴集团控股有限公司 一种数据存储方法及装置、一种计算设备及存储介质
TWI708145B (zh) * 2019-04-30 2020-10-21 威聯通科技股份有限公司 多控制器儲存系統及儲存裝置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102535828B1 (ko) * 2018-02-06 2023-05-23 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
KR102641521B1 (ko) 2018-02-22 2024-02-28 삼성전자주식회사 키-밸류 스토리지 장치 및 이의 동작 방법
US10789387B2 (en) * 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US11580082B2 (en) 2018-11-15 2023-02-14 Western Digital Technologies, Inc. Object storage system with control entity quota usage mapping
US11204717B2 (en) 2018-11-15 2021-12-21 Western Digital Technologies, Inc. Object storage system with access control quota status check
US11157205B2 (en) * 2018-11-15 2021-10-26 Western Digital Technologies, Inc. Object storage system with control entity quota enforcement
JP7323769B2 (ja) * 2019-04-15 2023-08-09 富士通株式会社 ストレージ装置、ストレージシステムおよびプログラム
KR20210004701A (ko) * 2019-07-05 2021-01-13 삼성전자주식회사 키-밸류 기반으로 데이터를 저장하는 스토리지 장치 및 이의 동작 방법
US11894046B2 (en) * 2022-05-17 2024-02-06 Western Digital Technologies, Inc. Alignment optimization of key value pair data storage

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109164974A (zh) * 2018-06-27 2019-01-08 阿里巴巴集团控股有限公司 一种数据存储方法及装置、一种计算设备及存储介质
CN109164974B (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 一种数据存储方法及装置、一种计算设备及存储介质
TWI708145B (zh) * 2019-04-30 2020-10-21 威聯通科技股份有限公司 多控制器儲存系統及儲存裝置
US11436184B2 (en) 2019-04-30 2022-09-06 Qnap Systems, Inc. Multi-controller storage system and storage apparatus

Also Published As

Publication number Publication date
US20170364280A1 (en) 2017-12-21
KR20170141538A (ko) 2017-12-26

Similar Documents

Publication Publication Date Title
CN107526542A (zh) 对象存储装置及其操作方法
US20190042611A1 (en) Technologies for structured database query for finding unique element values
US20160132541A1 (en) Efficient implementations for mapreduce systems
US20170277628A1 (en) Technologies for memory management of neural networks with sparse connectivity
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN102073461B (zh) 输入输出请求调度方法、相关装置和存储阵列
CN105159604A (zh) 一种磁盘数据读写方法和系统
CN104102693A (zh) 对象处理方法和装置
CN110222209B (zh) 图片存储方法、查询方法、装置及存取系统
CN101470667A (zh) Linux系统平台上指定地址范围分配物理内存的方法
TW202207031A (zh) 用於記憶體通道控制器之負載平衡
CN110321331A (zh) 利用多级散列函数来确定存储地址的对象存储系统
CN107122130A (zh) 一种数据重删方法及装置
DE102018110704A1 (de) Speicherungsvorrichtung für ein vorausgehendes Verwalten einer Schreibdaten zuzuweisenden physischen Adresse
CN111159176A (zh) 一种海量流数据的存储和读取的方法和系统
CN113791730B (zh) 基于双存储池的放置组调整方法、系统、装置及存储介质
US20190303032A1 (en) Memory system, operating method thereof and computing system inclduing the memory system
US11461024B2 (en) Computing system and operating method thereof
US20160098212A1 (en) Information processor apparatus, memory control device, and control method
CN106294191A (zh) 处理表的方法、访问表的方法和装置
CN113227956B (zh) 计算瓦片
CN109634914B (zh) 一种对讲语音小文件整存散分和分叉检索的优化方法
CN111625701B (zh) 搜索方法、装置、服务器及存储介质
KR20210108487A (ko) 저장 디바이스 동작 오케스트레이션

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20171229