CN113253925B - 一种读写性能优化方法及装置 - Google Patents

一种读写性能优化方法及装置 Download PDF

Info

Publication number
CN113253925B
CN113253925B CN202110481138.8A CN202110481138A CN113253925B CN 113253925 B CN113253925 B CN 113253925B CN 202110481138 A CN202110481138 A CN 202110481138A CN 113253925 B CN113253925 B CN 113253925B
Authority
CN
China
Prior art keywords
request
map
state
read
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110481138.8A
Other languages
English (en)
Other versions
CN113253925A (zh
Inventor
王润强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data Technologies 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202110481138.8A priority Critical patent/CN113253925B/zh
Publication of CN113253925A publication Critical patent/CN113253925A/zh
Application granted granted Critical
Publication of CN113253925B publication Critical patent/CN113253925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及分布式存储技术领域,特别涉及一种读写性能优化方法及装置。该方法包括:接收目标客户端发送的业务命令,并判断所述业务命令的类型;若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理;在所述读/写请求执行完成后,若object‑map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object‑map;否则,通知所述其它客户端更新object‑map。

Description

一种读写性能优化方法及装置
技术领域
本申请涉及分布式存储技术领域,特别涉及一种读写性能优化方法及装置。
背景技术
Ceph是开源的软件定义存储,在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
在支持object-map特性之前,组成image的各数据对象的存在状态是未知的。当需要做一些遍历image所有数据对象的操作时,即使组成image的真实存在的数据对象非常稀疏,执行类似于克隆分离、已使用容量计算等操作时,依然需要遍历整个image的所有数据对象,导致执行时间较长。
引入object-map特性可以有效缓解上述问题,就是将image中所有数据对象的存在状态记录在一个独立的元数据对象中,也即rbd_object_map对象。每个数据对象的状态使用两个比特位进行表示。
虽然引入object-map特性,解决了遍历image所有数据对象的耗时问题。但维护object-map也需要付出一定的性能代价。实际应用中,IO请求会修改object-map,因此多客户端场景下发IO请求时,客户端首先需要竞争到exclusive-lock锁,才能下发IO写数据,将多客户端的并发IO请求限制为串行下发。为了保证多客户端场景下的object-map准确性,所有涉及object-map的操作,首先需要获取exclusive-lock,重新加载object-map,或者将请求发送到持有exclusive-lock的客户端去执行,在多客户端场景,严重影响了image的写IO性能。对于上述问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种读写性能优化方法及装置,用以解决现有技术中存在的多客户端场景下IO性能低的问题。
第一方面,本申请提供了一种读写性能优化方法,应用于分布式存储块设备,所述方法包括:
接收目标客户端发送的业务命令,并判断所述业务命令的类型;
若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理;
在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,通知所述其它客户端更新object-map。
可选地,所述业务命令为管理流请求,所述方法还包括:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
可选地,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
可选地,基于所述管理流请求调整object-map中各对象的状态之后,所述方法还包括:
向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
可选地,所述业务命令为存储空间回收请求,所述方法还包括:
基于所述存储空间回收请求确定待回收的各对象;
分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;
通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
第二方面,本申请提供了一种读写性能优化装置,应用于分布式存储块设备,所述装置包括:
接收单元,用于接收目标客户端发送的业务命令;
判断单元,用于判断所述业务命令的类型;
处理单元,若所述判断单元判定所述业务命令为目标对象的读/写请求,则所述处理单元基于所述业务命令对所述目标对象进行读/写处理;
通知单元,在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,所述通知单元通知所述其它客户端更新object-map。
可选地,所述业务命令为管理流请求,所述处理单元还用于:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
可选地,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
可选地,基于所述管理流请求调整object-map中各对象的状态之后,所述装置还包括:
发送单元,用于向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
可选地,所述业务命令为存储空间回收请求,所述处理单元还用于:
基于所述存储空间回收请求确定待回收的各对象;
分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;
通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
第三方面,本申请实施例提供一种读写性能优化装置,该读写性能优化装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
综上可知,本申请实施例提供的读写性能优化方法,应用于分布式存储块设备,所述方法包括:接收目标客户端发送的业务命令,并判断所述业务命令的类型;若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理;在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,通知所述其它客户端更新object-map。
采用本申请实施例提供的读写性能优化方法,针对多客户端场景,多客户端可以同时处理IO请求,多客户端下发的IO请求,无需进行串行处理,大幅度提升多客户端场景下image的IO性能。同时,根据当前IO处理导致的object-map的具体变化,以判断是否需要通知其它客户端进行object-map的更新,保障了object-map的准确性和有效性。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种读写性能优化方法的详细流程图;
图2为本申请实施例提供的一种object-map的状态示意图;
图3为本申请实施例提供的一种锁状态转换的过程示意图;
图4为本申请实施例提供的一种object-map刷新过程示意图;
图5为本申请实施例提供的另一种object-map刷新过程示意图;
图6为本申请实施例提供的一种读写性能优化装置的结构示意图;
图7为本申请实施例提供的另一种读写性能优化装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图1所示,为本申请实施例提供的一种读写性能优化方法的详细流程图,该方法应用于分布式存储块设备,该方法包括以下步骤:
步骤100:接收目标客户端发送的业务命令,并判断所述业务命令的类型。
本申请以Ceph分布式存储为例来阐述本申请的分布式存储***中读写性能优化方法的实施例。块存储组件(RADOS Block Device,RBD)在Ceph中被称之为Image,每个image卷都是由众多对象组成,每个对象大小相同,默认代销为4MB。Image卷在开启object-map特性后,会生成object-map对象,记录image包括的每个对象的状态,由2个bit位标识,示例性的,参阅图2所示,为本申请实施例提供的一种object-map的状态示意图,其中,
0x00:当前对象无数据;
0x01:当前对象有数据;
0x10:当前对象数据待清除;
0x11:当前对象数据受快照保护。
也就是说,若object-map中一个数据对象的状态值为0X00,则表征该数据对象无数据,若状态值为0X01,则表征该数据对象有数据,若状态值为0X10,则表征该数据对象的数据待删除,若状态值为0X11,则表征该数据对象的数据受快照保护。
实际应用中,客户端发送的业务命令可以为不同类型的业务命令,例如,读/写请求,管理流请求,存储空间回收请求等。
那么,分布式存储块设备在接收到目标客户端发送的业务命令时,首先判断该业务命令的类型。
步骤110:若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理。
若判定目标客户端发送的业务命令为目标对象的读/写请求,则根据该读/写请求对目标对象进行读写处理。例如,若是写数据操作,则将待写入数据写入目标对象,若是读数据操作,则从目标对象读取目标数据。
步骤120:在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,通知所述其它客户端更新object-map。
本申请实施例中,所述其它状态包括:无数据状态,待删除状态和快照保护状态。
具体地,object-map中维护有image包括的各对象的状态,那么,在针对目标对象执行完读/写操作后,可能会改变目标对象的状态。例如,若目标对象在object-map中的初始状态0X00(目标对象无数据),那么,在执行完写操作后,目标对象变为有数据,此时,就需要在object-map中将目标对象的状态调整为0X01。显然,若针对目标对象执行读操作,则无需调整目标对象的状态。
本申请实施例中,若object-map中目标对象的状态由其它状态(对象无数据:0X00,对象数据待删除:0X10,对象数据受快照保护:0X11)调整为对象有数据(0X01),此时,无需通知除所述目标客户端之外的其它客户端更新object-map,若objec-map中目标对象的状态由一个状态(对象无数据:0X00,对象有数据:0X01,对象数据待删除:0X10,对象数据受快照保护:0X11)调整为另一个状态(对象无数据:0X00,对象数据待删除:0X10,对象数据受快照保护:0X11),此时,就需要通知除所述目标客户端之外的其它客户端对本地的object-map进行更新处理。
具体地,可以通过watch-notify机制更新object-map,以维护object-map的准确性,达到保证object-map准确的情况下,实现多客户端读/写请求并发的情况。
也就是说,在执行客户端下发的读/写请求时,无需持有独占所(exclusive-lock),即可以多客户端并发读/写请求。制定预设规则,在确定OSD维护的object-map的更新内容满足预设条件时,触发客户端进行本地object-map的更新操作,以保障逻辑正确。
进一步地,若所述业务命令为管理流请求,则上述读写性能优化方法还可以包括以下步骤:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
具体地,所述管理流请求指的是:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
在基于所述管理流请求调整object-map中各对象的状态之后,所述读写性能方法还包括以下步骤:向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
具体的,可以通过watch-notify机制更新object-map。
更进一步的,若所述业务命令为存储空间回收请求,则所述读写性能优化方法还包括以下步骤:
基于所述存储空间回收请求确定待回收的各对象;分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
实际应用中,在处理回收存储空间的Discard类IO请求时,无需关心当前object-map状态,最终会在object-map中将被回收的对象的状态更新为0x00(对象无数据状态)。
下面结合具体应用场景对本申请实施例提供的读写性能优化过程进行详细说明。示例性的,参阅图3所示,为本申请实施例提供的一种锁状态转换的过程示意图,具体的:
1、独占锁的初始状态为UNLOCK,当管理流申请锁,锁信息写入OSD,初始化object-map,锁状态转换为LOCKED,此时,由于独占锁被占用,且已写入OSD中,其他客户端不能进行业务处理(管理流和IO流);
2、当管理流处理完成后,释放锁,锁信息从OSD移除,销毁object-map,锁状态转换为UNLOCK;
3、锁状态转换为UNLOCK之后,若IO流申请锁,初始化object-map,锁状态转换为IO-LOCKED,此时,锁信息不写入OSD,其他客户端仍可以获取该锁进行业务处理(IO流);
4、锁状态在转换为IO-LOCKED之后,若需要处理管理流,则管理流申请锁,锁信息写入OSD,初始化object-map,锁状态转换为LOCKED。
实际应用中,当执行完一个客户端发送的管理流请求之后,会刷新OSD中的object-map,此时,就需要通知客户端获取刷新后的object-map,以确保客户端本地维护的object-map的有效性。示例性的,参阅图4所示,为本申请实施例提供的一种object-map刷新过程示意图,管理流命令修改object-map后,通知其他image客户端刷新内存的object-map。管理流命令通常会改变object-map所有对象的值,在管理流命令执行完成后,通过watch-notify机制通知其他image客户端刷新事件,其他image客户端收到刷新通知后,在处理新IO之前,从OSD重新加载新的object-map到内存,再处理IO请求。
示例性的,参阅图5所示,为本申请实施例提供的另一种object-map刷新过程示意图,Discard类IO修改object-map后,通知其他客户端刷新内存的object-map。Discard类IO只改变discard对象的object-map值,在discard请求完成后,通过watch-notify机制通知其他image客户端discard处理的对象位置,其他image客户端获取object-map内存锁后,直接在内存将对应对象的object-map状态修改为0x00。
基于与上述应用于备份服务器的方法实施例同样的发明构思,示例性的,参阅图6所示,为本申请实施例提供的一种读写性能优化装置的结构示意图,该读写性能优化装置应用于分布式存储块设备,所述装置包括:
接收单元60,用于接收目标客户端发送的业务命令;
判断单元61,用于判断所述业务命令的类型;
处理单元62,若所述判断单元61判定所述业务命令为目标对象的读/写请求,则所述处理单元62基于所述业务命令对所述目标对象进行读/写处理;
通知单元63,在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,所述通知单元63通知所述其它客户端更新object-map。
可选地,所述业务命令为管理流请求,所述处理单元62还用于:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
可选地,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
可选地,基于所述管理流请求调整object-map中各对象的状态之后,所述装置还包括:
发送单元,用于向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
可选地,所述业务命令为存储空间回收请求,所述处理单元62还用于:
基于所述存储空间回收请求确定待回收的各对象;
分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;
通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
进一步地,本申请实施例提供的读写性能优化装置,从硬件层面而言,所述读写性能优化装置的硬件架构示意图可以参见图7所示,所述读写性能优化装置可以包括:存储器70和处理器71,
存储器70用于存储程序指令;处理器71调用存储器70中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种备份服务器,包括用于执行上述应用于备份服务器的方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于备份服务器的方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种读写性能优化方法,其特征在于,应用于分布式存储块设备,所述方法包括:
接收目标客户端发送的业务命令,并判断所述业务命令的类型;
若判定所述业务命令为目标对象的读/写请求,则基于所述业务命令对所述目标对象进行读/写处理,在执行所述读/写请求时,无需持有独占锁;
在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,通知所述其它客户端更新object-map。
2.如权利要求1所述的方法,其特征在于,所述业务命令为管理流请求,所述方法还包括:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
3.如权利要求2所述的方法,其特征在于,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
4.如权利要求2或3所述的方法,其特征在于,基于所述管理流请求调整object-map中各对象的状态之后,所述方法还包括:
向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
5.如权利要求1所述的方法,其特征在于,所述业务命令为存储空间回收请求,所述方法还包括:
基于所述存储空间回收请求确定待回收的各对象;
分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;
通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
6.一种读写性能优化装置,其特征在于,应用于分布式存储块设备,所述装置包括:
接收单元,用于接收目标客户端发送的业务命令;
判断单元,用于判断所述业务命令的类型;
处理单元,若所述判断单元判定所述业务命令为目标对象的读/写请求,则所述处理单元基于所述业务命令对所述目标对象进行读/写处理,在执行所述读/写请求时,无需持有独占锁;
通知单元,在所述读/写请求执行完成后,若object-map中所述目标对象的状态不变/由其它状态调整为有数据状态,则不通知除所述目标客户端之外的其它客户端更新object-map;否则,所述通知单元通知所述其它客户端更新object-map。
7.如权利要求6所述的装置,其特征在于,所述业务命令为管理流请求,所述处理单元还用于:
将独占锁配置给所述目标客户端发送的所述管理流请求,并基于所述独占锁,执行所述目标客户端发送的所述管理流请求,以及基于所述管理流请求调整object-map中各对象的状态,得到更新后的object-map。
8.如权利要求7所述的装置,其特征在于,所述其它状态包括:无数据状态,待删除状态和快照保护状态;
所述管理流请求包括:分布式存储块设备的扩容请求,元数据设置请求,元数据删除请求,分布式存储块设备快照的创建请求、快照的删除请求、快照的回滚请求。
9.如权利要求7或8所述的装置,其特征在于,基于所述管理流请求调整object-map中各对象的状态之后,所述装置还包括:
发送单元,用于向所述其它客户端发送object-map更新通知,以使得所述其它客户端在处理完当前读/写请求之后,处理下一个读/写请求之前,加载所述更新后的object-map。
10.如权利要求6所述的装置,其特征在于,所述业务命令为存储空间回收请求,所述处理单元还用于:
基于所述存储空间回收请求确定待回收的各对象;
分别将object-map中所述待回收的各对象的状态调整为无数据状态,得到更新后的object-map;
通知所述其它客户端将本地维护的所述待回收的各对象的状态分别调整为无数据状态。
CN202110481138.8A 2021-04-30 2021-04-30 一种读写性能优化方法及装置 Active CN113253925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110481138.8A CN113253925B (zh) 2021-04-30 2021-04-30 一种读写性能优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110481138.8A CN113253925B (zh) 2021-04-30 2021-04-30 一种读写性能优化方法及装置

Publications (2)

Publication Number Publication Date
CN113253925A CN113253925A (zh) 2021-08-13
CN113253925B true CN113253925B (zh) 2022-08-30

Family

ID=77223682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110481138.8A Active CN113253925B (zh) 2021-04-30 2021-04-30 一种读写性能优化方法及装置

Country Status (1)

Country Link
CN (1) CN113253925B (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100055201A (ko) * 2008-11-17 2010-05-26 엘지전자 주식회사 플래시 메모리장치, 및 데이터 기록방법
CN110231913A (zh) * 2018-03-05 2019-09-13 中兴通讯股份有限公司 数据处理方法、装置及设备、计算机可读存储介质
US11178246B2 (en) * 2018-08-25 2021-11-16 Panzura, Llc Managing cloud-based storage using a time-series database
CN111858402A (zh) * 2020-06-12 2020-10-30 苏州浪潮智能科技有限公司 一种基于cache的读写数据处理方法及***
CN111857602B (zh) * 2020-07-31 2022-10-28 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质
CN112596960B (zh) * 2020-11-25 2023-06-13 新华三云计算技术有限公司 一种分布式存储服务切换方法及装置
CN112612791B (zh) * 2020-12-22 2022-05-27 新华三大数据技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN113253925A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN102945278B (zh) 一种数据库记录重做日志的方法和装置
CN111737265B (zh) 区块数据访问方法、区块数据存储方法及装置
US9003228B2 (en) Consistency of data in persistent memory
CN112000426B (zh) 一种数据处理方法及装置
CN112783831B (zh) 一种文件迁移方法及装置
CN114265670B (zh) 一种内存块整理方法、介质及计算设备
US10127114B2 (en) Method of file system design and failure recovery with non-volatile memory
CN107544869B (zh) 一种数据恢复方法和装置
CN109614055B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
US8903804B2 (en) Data existence judging device and data existence judging method
CN113204407A (zh) 一种内存超配管理方法及装置
CN114721594A (zh) 一种分布式存储方法、装置、设备及机器可读存储介质
CN112925606A (zh) 一种内存管理方法、装置及设备
CN113704189A (zh) 一种文件管理方法及装置
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
CN113253925B (zh) 一种读写性能优化方法及装置
CN113467719A (zh) 数据写入方法及装置
CN116204124B (zh) 一种基于冲突锁的数据处理方法、***及电子设备
US20170177615A1 (en) TRANSACTION MANAGEMENT METHOD FOR ENHANCING DATA STABILITY OF NoSQL DATABASE BASED ON DISTRIBUTED FILE SYSTEM
CN115033869A (zh) 一种文件防卸载方法及装置
CN112800057B (zh) 一种指纹表管理方法及装置
CN109791541B (zh) 日志序列号生成方法、装置及可读存储介质
CN111984554B (zh) 一种数据处理方法及装置
CN112988460B (zh) 一种虚拟机的数据备份方法及装置
CN113703666A (zh) 一种数据读写方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant