CN111857600A - 一种数据读写方法及装置 - Google Patents
一种数据读写方法及装置 Download PDFInfo
- Publication number
- CN111857600A CN111857600A CN202010749856.4A CN202010749856A CN111857600A CN 111857600 A CN111857600 A CN 111857600A CN 202010749856 A CN202010749856 A CN 202010749856A CN 111857600 A CN111857600 A CN 111857600A
- Authority
- CN
- China
- Prior art keywords
- data
- flag
- partition
- memory
- bit
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000005192 partition Methods 0.000 claims abstract description 142
- 230000015654 memory Effects 0.000 claims abstract description 123
- 238000010586 diagram Methods 0.000 description 5
- 230000007717 exclusion Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
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
本申请提供了一种数据读写方法及装置。所述方法包括:对于写操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可将数据存储至第一存储分区,当标志位是第二标志时,可将数据存储至第二存储分区;对于读操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可从第二存储分区中读取数据,当标志位是第二标志时,可从第一存储分区中读取数据。如此,在同时接收到多个写操作请求时,可将不同的写操作请求写入不同的存储分区;在同时接收到写操作请求和读操作请求时,也可以将读写分离,进而能够避免进程拥堵、访问延时的问题,大大提高数据读取的效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据读写方法及装置。
背景技术
随着集成电路的快速发展,存储器的集成度越来越高,存储器的容量也越来越大。随之而言的是存储器的并发性问题,当多个进程同时访问同一存储区域时,例如,进程1和进程2同时将数据写入同一存储区域时,容易出现写入碰撞,导致数据出错的问题。
目前大多采用加互斥锁的方法解决上述问题,即在每个存储区域上加互斥锁,保证这个存储区域在同一时间只允许一个进程访问。但是,随着进程数量的增多,互斥锁必然造成进程排队的现象,进而导致进程拥堵、访问超时等问题。
基于此,目前亟需一种数据读写方法,用于解决互斥锁带来的进程拥堵、访问超时的问题。
发明内容
本申请提供了一种数据读写方法及装置,可用于解决互斥锁带来的进程拥堵、访问超时的技术问题。
第一方面,本申请实施例提供一种数据读写方法,所述方法应用于存储器,所述存储器包括多个存储区域,每个存储区域划分为标志位、第一存储分区和第二存储分区;所述方法包括:
接收用户的写操作请求,所述写操作请求包括待写入数据的标识和待写入数据的内容;
根据所述待写入数据的标识,从所述多个存储区域中确定所述待写入数据的标识对应的第一目标存储区域;
查询所述第一目标存储区域中的标志位;
如果所述标志位是第一标志,则将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区后,将所述标志位修改为第二标志;
如果所述标志位是所述第二标志,则将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区后,将所述标志位修改为所述第一标志;
接收用户的读操作请求,所述读操作请求包括待读取数据的标识;
根据所述待读取数据的标识,从所述多个存储区域中确定所述待读取数据的标识对应的第二目标存储区域;
查询所述第二目标存储区域中的标志位;
如果所述标志位是所述第一标志,则从所述第二目标存储区域中第二存储分区中读取数据;
如果所述标志位是所述第二标志,则从所述第二目标存储区域中第一存储分区中读取数据。
结合第一方面,在第一方面的一种可实现方式中,每个存储区域还划分为第一校验位和第二校验位,所述第一校验位用于对所述第一存储分区内的数据进行校验,所述第二校验位用于对所述第二存储分区内的数据进行校验。
结合第一方面,在第一方面的一种可实现方式中,将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区之后,所述方法还包括:
采用第一校验位对存储于第一存储分区的数据进行校验;
将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区之后,所述方法还包括:
采用第二校验位对存储于第二存储分区的数据进行校验。
结合第一方面,在第一方面的一种可实现方式中,所述标志位占用1个字节,所述第一存储分区占用的字节数量与所述第二存储分区占用的字节数量相同。
结合第一方面,在第一方面的一种可实现方式中,所述存储器为内存、缓存或硬盘。
第二方面,本申请实施例提供一种数据读写装置,所述装置应用于存储器,所述存储器包括多个存储区域,每个存储区域划分为标志位、第一存储分区和第二存储分区;所述装置包括:
接收单元,用于接收用户的写操作请求,所述写操作请求包括待写入数据的标识和待写入数据的内容;
处理单元,根据所述待写入数据的标识,从所述多个存储区域中确定所述待写入数据的标识对应的第一目标存储区域;
查询单元,用于查询所述第一目标存储区域中的标志位;
所述处理单元,还用于在所述标志位是第一标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区后,将所述标志位修改为第二标志;在所述标志位是所述第二标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区后,将所述标志位修改为所述第一标志;
所述接收单元,还用于接收用户的读操作请求,所述读操作请求包括待读取数据的标识;
所述处理单元,还用于根据所述待读取数据的标识,从所述多个存储区域中确定所述待读取数据的标识对应的第二目标存储区域;
所述查询单元,还用于查询所述第二目标存储区域中的标志位;
所述处理单元,还用于在所述标志位是所述第一标志时,从所述第二目标存储区域中第二存储分区中读取数据;在所述标志位是所述第二标志时,则从所述第二目标存储区域中第一存储分区中读取数据。
结合第二方面,在第二方面的一种可实现方式中,每个存储区域还划分为第一校验位和第二校验位,所述第一校验位用于对所述第一存储分区内的数据进行校验,所述第二校验位用于对所述第二存储分区内的数据进行校验。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元还用于:
采用第一校验位对存储于第一存储分区的数据进行校验;
采用第二校验位对存储于第二存储分区的数据进行校验。
结合第二方面,在第二方面的一种可实现方式中,所述标志位占用1个字节,所述第一存储分区占用的字节数量与所述第二存储分区占用的字节数量相同。
结合第二方面,在第二方面的一种可实现方式中,所述存储器为内存、缓存或硬盘。
第三方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的数据读写方法。
第四方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机程序,当数据读写装置的至少一个处理器执行所述计算机程序时,数据读写装置执行第一方面所述的数据读写方法。
采用本申请实施例提供的方法,对于写操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可将数据存储至第一存储分区,当标志位是第二标志时,可将数据存储至第二存储分区;对于读操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可从第二存储分区中读取数据,当标志位是第二标志时,可从第一存储分区中读取数据。如此,即便同时接收到多个写操作请求,也可以将不同的写操作请求写入不同的存储分区,从而能够避免进程拥堵、访问延时的问题,大大提高数据写入的效率;即便同时接收到写操作请求和读操作请求,也可以将读写分离,避免出现读写碰撞的情况,进而能够避免进程拥堵、访问延时的问题,大大提高数据读取的效率。
附图说明
图1为本申请实施例适用的一种存储器的结构示意图;
图2为本申请实施例提供的一种数据写入方法所对应的流程示意图;
图3为本申请实施例提供的一种数据读取方法所对应的流程示意图;
图4为本申请实施例提供的一种数据读写方法所对应的整体性的流程示意图;
图5为本申请实施例提供的一种数据读写装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面首先结合图1对本申请实施例适用的存储器进行介绍。
请参考图1,其示例性示出了本申请实施例适用的一种存储器的结构示意图。该存储器1可以包括多个存储区域,例如图1中示出的存储区域11和存储区域12。其中,每个存储区域可以划分为标志位、第一存储分区和第二存储分区,例如,存储区域11可划分为标志位111、第一存储分区112和第二存储分区113;存储区域12可划分为标志位121、第一存储分区122和第二存储分区123。
本申请实施例中,标志位占用1个字节,第一存储分区占用的字节数量与第二存储分区占用的字节数量相同。
需要说明的是,本申请实施例中,存储器可以是内存、缓存或硬盘,具体不做限定。
标志位(标志位111或标志位121)可以显示不同的标志,比如可以显示第一标志和第二标志,其中,在执行写操作时,第一标志与第一存储分区相对应,表示可将数据存储至第一存储分区,第二标志与第二存储分区相对应,表示可将数据存储至第二存储分区;在执行读操作时,第一标志与第二存储分区相对应,表示可从第二存储分区中读取数据,第二标志与第一存储分区相对应,表示可从第一存储分区中读取数据。
具体实施过程中,可参考图2,其示例性示出了本申请中存储区域的一种示例示意图中,该存储区域可被划分为标志位(即“Tag_Flag”)、第一存储分区(即“Data1”)和第二数据分区(即“Data1’”)。
Tag_Flag的数值可以为0或1,在执行写操作时,如果Tag_Flag=0,则将数据存储至Data1,如果Tag_Flag=1,则将数据存储至Data1’;在执行读操作时,如果Tag_Flag=0,则从Data1’中读取数据,如果Tag_Flag=1,则从Data1中读取数据。
第一存储分区(第一存储分区112或第一存储分区122)与第二存储分区(第二存储分区113或第二存储分区123)在存储器1中的不同区域,但是,第一存储分区与第二存储分区在容量上可以是相同的,第一存储分区和第二存储分区是用于对相同数据标识的数据进行存储。
进一步地,如图1所示,每个存储区域还划分为第一校验位和第二校验位,例如,存储区域11还可划分为第一校验位114和第二校验位115;存储区域12还可划分为第一校验位124和第二校验位125。其中,第一校验位用于对第一存储分区内的数据进行校验,第二校验位用于对第二存储分区内的数据进行校验。
基于图1所示的存储器,图2示例性示出了本申请实施例提供的一种数据写入方法所对应的流程示意图。如图2所示,具体包括如下步骤:
步骤201,接收用户的写操作请求。
步骤202,根据待写入数据的标识,从多个存储区域中确定待写入数据的标识对应的第一目标存储区域。
步骤203,查询第一目标存储区域中的标志位。
步骤204,判断标志位是第一标志还是第二标志,如果标志位是第一标志,则执行步骤205;否则,执行步骤207。
步骤205,将待写入数据的内容存储至第一目标存储区域中的第一存储分区。
步骤206,将标志位修改为第二标志。
步骤207,将待写入数据的内容存储至第一目标存储区域中的第二存储分区。
步骤208,将标志位修改为第一标志。
采用本申请实施例提供的方法,对于写操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可将数据存储至第一存储分区,当标志位是第二标志时,可将数据存储至第二存储分区。如此,即便同时接收到多个写操作请求,也可以将不同的写操作请求写入不同的存储分区,从而能够避免进程拥堵、访问延时的问题,大大提高数据写入的效率。
具体来说,步骤201中,写操作请求可以包括待写入数据的标识和待写入数据的内容。
如表1所示,为待写入数据的标识和待写入数据的内容的一种示例。其中,待写入数据的标识为数据A时,对应的待写入数据的内容可以是数据内容A-1,也可以是数据内容A-2;待写入数据的标识为数据B时,对应的待写入数据的内容可以是数据内容B-1。
待写入数据的标识 | 待写入数据的内容 |
数据A | 数据内容A-1 |
数据A | 数据内容A-2 |
数据B | 数据内容B-1 |
步骤202中,不同的数据标识对应存储器中不同的存储区域。以图1示出的存储器为例,假设数据标识为数据A时,对应存储区域11,数据标识为数据B时,对应存储区域12。以表1示出的内容为例,如果接收到的写操作请求中,待写入数据的标识为数据A,那么,第一目标存储区域就是存储区域11;类似地,如果接收到的写操作请求中,待写入数据的标识为数据B,那么,第一目标存储区域就是存储区域12。
步骤203至步骤208中,假设接收到的写操作请求中,待写入数据的标识为数据A,待写入数据的数据内容为数据内容A-1,通过步骤202可以确定,第一目标存储区域是图1中示出的存储区域11,进而,查询存储区域11中的标志位111,如果标志位111是第一标志,则将数据内容A-1存储至第一存储分区112,以及将标志位111修改为第二标志;如果标志位111是第二标志,则将数据内容A-1存储至第二存储分区113,以及将标志位111修改为第一标志。
在执行步骤208之后,如果待写入数据的内容存储至第一存储分区中,则可以采用第一校验位对存储于第一存储分区的数据进行校验。
如果待写入数据的内容存储至第二存储分区中,则可以采用第二校验位对存储于第二存储分区的数据进行校验。
第一校验位和第二校验位可以采用crc8数据校验方法,解析数据的正确性。
基于图1所示的存储器,图3示例性示出了本申请实施例提供的一种数据读取方法所对应的流程示意图。如图3所示,具体包括如下步骤:
步骤301,接收用户的读操作请求。
步骤302,根据待读取数据的标识,从多个存储区域中确定待读取数据的标识对应的第二目标存储区域。
步骤303,查询第二目标存储区域中的标志位。
步骤304,判断标志位是第一标志还是第二标志,如果标志位是第一标志,则执行步骤305;否则,执行步骤306。
步骤305,从第二目标存储区域中第二存储分区中读取数据。
步骤306,从第二目标存储区域中第一存储分区中读取数据。
采用本申请实施例提供的方法,对于读操作请求,可以根据标志位确定具体的存储分区,当标志位是第一标志时,可从第二存储分区中读取数据,当标志位是第二标志时,可从第一存储分区中读取数据。如此,即便同时接收到写操作请求和读操作请求,也可以将读写分离,避免出现读写碰撞的情况,进而能够避免进程拥堵、访问延时的问题,大大提高数据读取的效率。
步骤301中,读操作请求包括待读取数据的标识。
步骤302中,不同的数据标识对应存储器中不同的存储区域。以图1示出的存储器为例,假设数据标识为数据A时,对应存储区域11,数据标识为数据B时,对应存储区域12。以表1示出的内容为例,如果接收到的读操作请求中,待读取数据的标识为数据A,那么,第二目标存储区域就是存储区域11;类似地,如果接收到的读操作请求中,待读取数据的标识为数据B,那么,第二目标存储区域就是存储区域12。
步骤303至步骤306中,假设接收到的读操作请求1中,待读取数据的标识为数据A,通过步骤302可以确定,第二目标存储区域是图1中示出的存储区域11,进而,查询存储区域11中的标志位111,如果标志位111是第一标志,则从第二存储分区113中读取数据,如果标志位111是第二标志,则从第一存储分区112中读取数据。
由于读操作并不会涉及对存储器中存储的数据进行修改,因此,即便同时执行多个读操作,也不会产生数据延迟、进程堵塞的问题。
考虑到实际实施过程中,可能出现同时接收到写操作请求和读操作请求的情形,也可能出现同时接收到两个写操作请求的情形,下面分别对这两种情形进行描述。
情形一:同时接收到写操作请求和读操作请求
假设接收到的写操作请求中,待写入数据的标识为数据A,待写入数据的数据内容为数据内容A-1,通过步骤202可以确定,第一目标存储区域是图1中示出的存储区域11。
假设接收到的读操作请求中,待读取数据的表述为数据A,通过步骤302可以确定,第二目标存储区域也是图1中示出的存储区域11。
此时,如果是写操作请求先查询标志位111的话,写操作请求查询到标志位111是第一标志,则将数据内容A-1存储至第一数据分区112,以及将标志位111修改为第二标志。在读操作请求查询标志位111时,该标志位111已经被写操作请求修改为第二标志,因此,读操作请求查询到的标志位是第二标志,则从第一数据分区112中读取数据,从而可以保证读取到的数据是最新的数据。
相反地,如果是读操作请求先查询标志位111的话,读操作请求查询到标志位111是第一标志,则从第二数据分区113中读取数据。在写操作请求查询标志位111时,该标志位111仍是第一标志,则将数据内容A-1存储至第一数据分区112,以及将标志位111修改为第二标志,以便后续接收到读操作请求时,能够读取到最新的数据。
如此,当同时接收到写操作请求和读操作请求时,采用本申请实施例提供的方法,可以将读写操作进行分离,有效避免了数据读写碰撞的问题。
需要说明的是,这里的同时指的是间隔很短的时间段内,存储器自身性能的限制,将写操作请求和读操作请求视为同时接收到的请求。
情形二:同时接收到两个写操作请求
假设接收到的写操作请求1中,待写入数据的标识为数据A,待写入数据的数据内容为数据内容A-1,通过步骤202可以确定,第一目标存储区域是图1中示出的存储区域11。
假设接收到的写操作请求2中,待写入数据的标识为数据A,待写入数据的数据内容为数据内容A-2,通过步骤202可以确定,第一目标存储区域也是图1中示出的存储区域11。
此时,如果是写操作请求1先查询标志位111的话,写操作请求查询到标志位111是第一标志,则将数据内容A-1存储至第一数据分区112,以及将标志位111修改为第二标志。在写操作请求2查询标志位111时,该标志位111已经被写操作请求1修改为第二标志,因此,写操作请求2查询到的标志位是第二标志,则将数据内容A-2存储至第二存储分区113,以及将标志位111修改为第一标志。
相反地,如果是写操作请求2先查询标志位111的话,写操作请求查询到标志位111是第一标志,则将数据内容A-2存储至第一数据分区112,以及将标志位111修改为第二标志。在写操作请求1查询标志位111时,该标志位111已经被写操作请求1修改为第二标志,因此,写操作请求1查询到的标志位是第二标志,则将数据内容A-1存储至第二存储分区113,以及将标志位111修改为第一标志。
如此,当同时接收到两个写操作请求时,采用本申请实施例提供的方法,可以将两个写操作请求写到的数据内容存储至不同的存储分区,避免数据延时、进程堵塞的问题。
需要说明的是,这里的同时指的是间隔很短的时间段内,存储器自身性能的限制,将写操作请求1和写操作请求2视为同时接收到的请求。
为了更加清楚地描述本申请实施例提供的数据读写方法,下面结合图4,对数据读写方法进行完整描述,具体包括如下步骤:
步骤401,判断接收得到的请求是写操作请求还是读操作请求,如果是写操作请求,则执行步骤402;否则,执行步骤409。
步骤402,根据待写入数据的标识,从多个存储区域中确定待写入数据的标识对应的第一目标存储区域。
步骤403,查询第一目标存储区域中的标志位。
步骤404,判断标志位是第一标志还是第二标志,如果标志位是第一标志,则执行步骤405;否则,执行步骤407。
步骤405,将待写入数据的内容存储至第一目标存储区域中的第一存储分区。
步骤406,将标志位修改为第二标志。
步骤407,将待写入数据的内容存储至第一目标存储区域中的第二存储分区。
步骤408,将标志位修改为第一标志。
步骤409,根据待读取数据的标识,从多个存储区域中确定待读取数据的标识对应的第二目标存储区域。
步骤410,查询第二目标存储区域中的标志位。
步骤411,判断标志位是第一标志还是第二标志,如果标志位是第一标志,则执行步骤412;否则,执行步骤413。
步骤412,从第二目标存储区域中第二存储分区中读取数据。
步骤413,从第二目标存储区域中第一存储分区中读取数据。
如此,当同时接收到写操作请求和读操作请求时,采用本申请实施例提供的方法,可以将读写操作进行分离,有效避免了数据读写碰撞的问题;当同时接收到两个写操作请求时,采用本申请实施例提供的方法,可以将两个写操作请求写到的数据内容存储至不同的存储分区,避免数据延时、进程堵塞的问题。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5示例性示出了本申请实施例提供的一种数据读写装置的结构示意图。如图5所示,该装置具有实现上述数据读写方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置应用于存储器,该存储器包括多个存储区域,每个存储区域划分为标志位、第一存储分区和第二存储分区,该装置可以包括:接收单元501,处理单元502和查询单元503。
接收单元501,用于接收用户的写操作请求,所述写操作请求包括待写入数据的标识和待写入数据的内容;
处理单元502,根据所述待写入数据的标识,从所述多个存储区域中确定所述待写入数据的标识对应的第一目标存储区域;
查询单元503,用于查询所述第一目标存储区域中的标志位;
所述处理单元502,还用于在所述标志位是第一标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区后,将所述标志位修改为第二标志;在所述标志位是所述第二标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区后,将所述标志位修改为所述第一标志;
所述接收单元501,还用于接收用户的读操作请求,所述读操作请求包括待读取数据的标识;
所述处理单元502,还用于根据所述待读取数据的标识,从所述多个存储区域中确定所述待读取数据的标识对应的第二目标存储区域;
所述查询单元503,还用于查询所述第二目标存储区域中的标志位;
所述处理单元502,还用于在所述标志位是所述第一标志时,从所述第二目标存储区域中第二存储分区中读取数据;在所述标志位是所述第二标志时,则从所述第二目标存储区域中第一存储分区中读取数据。
结合第二方面,在第二方面的一种可实现方式中,每个存储区域还划分为第一校验位和第二校验位,所述第一校验位用于对所述第一存储分区内的数据进行校验,所述第二校验位用于对所述第二存储分区内的数据进行校验。
结合第二方面,在第二方面的一种可实现方式中,所述处理单元502还用于:
采用第一校验位对存储于第一存储分区的数据进行校验;
采用第二校验位对存储于第二存储分区的数据进行校验。
结合第二方面,在第二方面的一种可实现方式中,所述标志位占用1个字节,所述第一存储分区占用的字节数量与所述第二存储分区占用的字节数量相同。
结合第二方面,在第二方面的一种可实现方式中,所述存储器为内存、缓存或硬盘。
如此,即便同时接收到多个写操作请求,也可以将不同的写操作请求写入不同的存储分区,从而能够避免进程拥堵、访问延时的问题,大大提高数据写入的效率;即便同时接收到写操作请求和读操作请求,也可以将读写分离,避免出现读写碰撞的情况,进而能够避免进程拥堵、访问延时的问题,大大提高数据读取的效率。
本申请实施例提供的电子设备包括:存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,以实现上述实施例所述的数据读写方法。
本实施例中,处理器和存储器可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本申请实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。
本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,当数据读写装置的至少一个处理器执行所述计算机程序时,数据读写装置执行上述实施例所述的数据读写方法。
所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于服务构建装置和服务加载装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (10)
1.一种数据读写方法,其特征在于,所述方法应用于存储器,所述存储器包括多个存储区域,每个存储区域划分为标志位、第一存储分区和第二存储分区;所述方法包括:
接收用户的写操作请求,所述写操作请求包括待写入数据的标识和待写入数据的内容;
根据所述待写入数据的标识,从所述多个存储区域中确定所述待写入数据的标识对应的第一目标存储区域;
查询所述第一目标存储区域中的标志位;
如果所述标志位是第一标志,则将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区后,将所述标志位修改为第二标志;
如果所述标志位是所述第二标志,则将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区后,将所述标志位修改为所述第一标志;
接收用户的读操作请求,所述读操作请求包括待读取数据的标识;
根据所述待读取数据的标识,从所述多个存储区域中确定所述待读取数据的标识对应的第二目标存储区域;
查询所述第二目标存储区域中的标志位;
如果所述标志位是所述第一标志,则从所述第二目标存储区域中第二存储分区中读取数据;
如果所述标志位是所述第二标志,则从所述第二目标存储区域中第一存储分区中读取数据。
2.根据权利要求1所述的方法,其特征在于,每个存储区域还划分为第一校验位和第二校验位,所述第一校验位用于对所述第一存储分区内的数据进行校验,所述第二校验位用于对所述第二存储分区内的数据进行校验。
3.根据权利要求2所述的方法,其特征在于,将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区之后,所述方法还包括:
采用第一校验位对存储于第一存储分区的数据进行校验;
将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区之后,所述方法还包括:
采用第二校验位对存储于第二存储分区的数据进行校验。
4.根据权利要求1所述的方法,其特征在于,所述标志位占用1个字节,所述第一存储分区占用的字节数量与所述第二存储分区占用的字节数量相同。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述存储器为内存、缓存或硬盘。
6.一种数据读写装置,其特征在于,所述装置应用于存储器,所述存储器包括多个存储区域,每个存储区域划分为标志位、第一存储分区和第二存储分区;所述装置包括:
接收单元,用于接收用户的写操作请求,所述写操作请求包括待写入数据的标识和待写入数据的内容;
处理单元,根据所述待写入数据的标识,从所述多个存储区域中确定所述待写入数据的标识对应的第一目标存储区域;
查询单元,用于查询所述第一目标存储区域中的标志位;
所述处理单元,还用于在所述标志位是第一标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第一存储分区后,将所述标志位修改为第二标志;在所述标志位是所述第二标志时,将所述待写入数据的内容存储至所述第一目标存储区域中的第二存储分区后,将所述标志位修改为所述第一标志;
所述接收单元,还用于接收用户的读操作请求,所述读操作请求包括待读取数据的标识;
所述处理单元,还用于根据所述待读取数据的标识,从所述多个存储区域中确定所述待读取数据的标识对应的第二目标存储区域;
所述查询单元,还用于查询所述第二目标存储区域中的标志位;
所述处理单元,还用于在所述标志位是所述第一标志时,从所述第二目标存储区域中第二存储分区中读取数据;在所述标志位是所述第二标志时,则从所述第二目标存储区域中第一存储分区中读取数据。
7.根据权利要求6所述的装置,其特征在于,每个存储区域还划分为第一校验位和第二校验位,所述第一校验位用于对所述第一存储分区内的数据进行校验,所述第二校验位用于对所述第二存储分区内的数据进行校验。
8.根据权利要求7所述的装置,其特征在于,所述处理单元还用于:
采用第一校验位对存储于第一存储分区的数据进行校验;
采用第二校验位对存储于第二存储分区的数据进行校验。
9.根据权利要求6所述的装置,其特征在于,所述标志位占用1个字节,所述第一存储分区占用的字节数量与所述第二存储分区占用的字节数量相同。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述存储器为内存、缓存或硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749856.4A CN111857600B (zh) | 2020-07-30 | 2020-07-30 | 一种数据读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749856.4A CN111857600B (zh) | 2020-07-30 | 2020-07-30 | 一种数据读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857600A true CN111857600A (zh) | 2020-10-30 |
CN111857600B CN111857600B (zh) | 2024-04-16 |
Family
ID=72945983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010749856.4A Active CN111857600B (zh) | 2020-07-30 | 2020-07-30 | 一种数据读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857600B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282240A (zh) * | 2021-05-24 | 2021-08-20 | 深圳市盈和致远科技有限公司 | 存储空间数据读写方法、设备、存储介质及程序产品 |
CN114116530A (zh) * | 2021-12-06 | 2022-03-01 | 海光信息技术股份有限公司 | 存储控制方法及装置、数据处理方法及装置以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677243A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 数据写入装置及方法 |
CN106708443A (zh) * | 2017-01-03 | 2017-05-24 | 北京百度网讯科技有限公司 | 数据读写方法及装置 |
US20180203637A1 (en) * | 2017-01-16 | 2018-07-19 | Fujitsu Limited | Storage control apparatus and storage control program medium |
CN109298935A (zh) * | 2018-09-06 | 2019-02-01 | 华泰证券股份有限公司 | 一种多进程单写多读无锁共享内存的方法及应用 |
CN110941394A (zh) * | 2019-11-13 | 2020-03-31 | 通号城市轨道交通技术有限公司 | 列车自动控制系统数据读写方法及装置 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
-
2020
- 2020-07-30 CN CN202010749856.4A patent/CN111857600B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677243A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 数据写入装置及方法 |
CN106708443A (zh) * | 2017-01-03 | 2017-05-24 | 北京百度网讯科技有限公司 | 数据读写方法及装置 |
US20180203637A1 (en) * | 2017-01-16 | 2018-07-19 | Fujitsu Limited | Storage control apparatus and storage control program medium |
CN109298935A (zh) * | 2018-09-06 | 2019-02-01 | 华泰证券股份有限公司 | 一种多进程单写多读无锁共享内存的方法及应用 |
CN110941394A (zh) * | 2019-11-13 | 2020-03-31 | 通号城市轨道交通技术有限公司 | 列车自动控制系统数据读写方法及装置 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282240A (zh) * | 2021-05-24 | 2021-08-20 | 深圳市盈和致远科技有限公司 | 存储空间数据读写方法、设备、存储介质及程序产品 |
CN114116530A (zh) * | 2021-12-06 | 2022-03-01 | 海光信息技术股份有限公司 | 存储控制方法及装置、数据处理方法及装置以及存储介质 |
CN114116530B (zh) * | 2021-12-06 | 2022-09-13 | 海光信息技术股份有限公司 | 存储控制方法及装置、数据处理方法及装置以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111857600B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行系统及方法 | |
CN110995776B (zh) | 区块链的区块分发方法、装置、计算机设备和存储介质 | |
CN109976669B (zh) | 一种边缘存储方法、装置和存储介质 | |
CN111857600B (zh) | 一种数据读写方法及装置 | |
CN112395322B (zh) | 一种基于分级缓存的列表数据显示方法、装置及终端设备 | |
US20240143188A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
US20170161397A1 (en) | Method for hash collision detection based on the sorting unit of the bucket | |
CN112559386A (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
CN106326014A (zh) | 一种资源访问方法及装置 | |
CN114968127A (zh) | 对象计算存储系统、数据处理方法、客户端及存储介质 | |
CN110806979B (zh) | 接口返回值的校验方法、装置、设备及存储介质 | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
US7380180B2 (en) | Method, system, and apparatus for tracking defective cache lines | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
CN115858417A (zh) | 缓存数据处理方法、装置、设备及存储介质 | |
CN115774724A (zh) | 并发请求的处理方法、装置、电子设备及存储介质 | |
CN106339270B (zh) | 数据校验方法及装置 | |
CN111625199B (zh) | 提升固态硬盘数据通路可靠性的方法、装置、计算机设备及存储介质 | |
CN114265637A (zh) | 档案管理系统配置方法、系统、电子设备以及存储介质 | |
CN115599532A (zh) | 一种访问索引的方法以及计算机集群 | |
CN112015672A (zh) | 一种存储系统中数据处理方法、装置、设备及存储介质 | |
CN112650445B (zh) | 一种固态硬盘执行Trim的方法和设备 | |
CN111435331A (zh) | 存储卷写数据方法、装置、电子设备及机器可读存储介质 | |
CN115793976A (zh) | 数据存储方法、装置、电子设备和可读存储介质 | |
CN116414733B (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 |