CN110673952B - 一种面向高并发读应用的数据处理方法及装置 - Google Patents
一种面向高并发读应用的数据处理方法及装置 Download PDFInfo
- Publication number
- CN110673952B CN110673952B CN201910834132.7A CN201910834132A CN110673952B CN 110673952 B CN110673952 B CN 110673952B CN 201910834132 A CN201910834132 A CN 201910834132A CN 110673952 B CN110673952 B CN 110673952B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- value
- pointer value
- storage space
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 230000015654 memory Effects 0.000 claims abstract description 62
- 230000008859 change Effects 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 33
- 239000003550 marker Substances 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims 3
- 230000008569 process Effects 0.000 abstract description 31
- 230000004044 response Effects 0.000 abstract description 11
- 238000013507 mapping Methods 0.000 abstract description 9
- 230000007717 exclusion Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000000926 separation method Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向高并发读应用的数据处理方法及装置,所述方法包括:在内存中划分存储空间分别存储全部待处理数据,建立位置存储关系表和数据变化状态变量,所述位置存储关系表包含每条数据的位置标记值和存储指针值;当接收到更改数据指令时,通过HASH算法对数据进行映射得到位置标记值,根据位置标记值查找存储指针值。根据存储标记值选择不同的存储空间分别进行读取和写入;写入操作结束后更新存储指针值和数据变化状态变量。通过划分存储空间和设置位置指针值,将高并发读应用中的读写操作分离,在数据处理过程中无需使用互斥锁,提高了系统的响应速度。
Description
技术领域
本发明涉及内存管理领域,特别涉及一种面向高并发读应用的数据处理方法及装置。
背景技术
当前,随着计算机技术的不断发展,许多新的应用程序相继出现,高并发读应用就是其中之一,被广泛地应用于各种配置应用。高并发读应用在运行时会使用内存缓存配置信息、用户信息等重要信息,并通过多个进程不断访问内存中的数据,主要完成的工作就是对内存数据的读取和写入,其中读取操作占了大多数。因此,高并发读应用运行时可以启动多个进程,其中大部分是读取进程,少部分是写入进程和其他进程,通过这些进程对内存数据进行操作。在多个进程对同一条数据进行操作时,应用会先对这条内存数据加互斥锁,并进行第一进程。在该进程结束后,解锁相应的内存并完成后续进程。
为了完成对内存数据的读取和写入操作,上述方法通过对内存加互斥锁将不同的进程分开,实现了读取和写入的分离。但是,在读取进程数很大的情况下,应用会频繁地对内存数据进行加锁解锁。而对内存加锁解锁的过程会消耗大量时间,大幅度降低系统响应速度。
另外,高并发读应用在对内存数据进行写入后,需要将修改后的数据回传至存储数据库,更新数据库中储存的数据。当前技术为了更新存储数据库,会在写入进程结束后,立刻将数据库中的数据和内存数据进行同步。而每次同步都会对数据库进行访问,进一步增加进程的持续时间,降低系统响应速度。
发明内容
有鉴于此,本申请提供了一种面向高并发读应用的数据处理方法及装置,旨在不对内存数据进行加锁的情况下完成读写操作,并减少数据库访问次数,提升系统响应速度。
为了实现上述目的,本申请提供了以下技术方案:
一种面向高并发读应用的数据处理方法,该方法包括:
在内存中划分至少两个存储空间存储全部数据并建立位置存储关系表和数据变化状态变量;其中,所述位置存储关系表包含每条数据的位置标记值和存储指针值,所述位置标记值是对每条数据经过运算得到的,所述存储指针值指向数据的具体存储位置;
接收到对目标数据的处理指令后,计算所述目标数据的位置标记值并根据所述位置标记值查找存储指针值;
当所述处理指令为更改指令时,选择所述存储指针值指向的存储空间进行读取操作,并选择一个所述存储指针值指向的存储空间以外的其他存储空间进行写入操作,在所述写入操作结束后,更改存储指针值指向写入数据的存储空间并更新所述数据变化状态变量。
可选地,在内存中划分存储空间并建立位置存储关系表包括:
在内存中划分第一、第二存储空间,将应用中全部数据分别复制到所述第一、第二存储空间;
通过HASH算法对每条数据进行处理,得到与所述数据对应的位置标记值;
根据所述数据所在的存储空间,确定与数据对应的存储指针值,所述存储指针值用0/1表示;
建立位置存储关系表,所述位置存储关系表包括位置标记值和存储指针值。
可选地,计算所述数据的位置标记值并根据所述位置标记值查找存储指针值包括:
通过HASH算法对所述目标数据进行处理,得到与其对应的位置标记值;
根据所述位置标记值,在所述位置存储关系表中查找目标数据对应的存储指针值;
可选地,所述处理指令包括:更改、新增、读取和删除指令。
可选地,该方法进一步包括:
当所述处理指令为读取指令时,根据存储指针值读取对应存储空间的数据;
当所述处理指令为新增指令时,计算所述新增主键的位置标记值,在第一存储空间中存储新增数据,存储完成后,设置对应的存储指针值为0并更新所述数据变化状态变量为新增状态;
当所述处理指令为删除指令时,根据存储指针值删除全部存储空间的数据并更新所述数据变化状态变量为删除状态。
可选地,该方法进一步包括:
周期性检测数据变化状态变量的更新状态,同步更新至数据库。
一种面向高并发读应用的数据处理装置,所述装置包括:
存储单元,用于划分第一、第二存储空间,复制数据并建立位置存储关系表和数据变化状态变量;
查找单元,用于计算位置标记值并查找存储指针值;
操作单元,用于根据存储指针值完成操作指令并更新数据变化状态变量及存储指针值。
可选地,所述查找单元包括:
内存划分单元,用于根据全部数据的大小从内存中划分出第一存储空间和第二存储空间;
数据复制单元,用于将全部数据复制到第一存储空间和第二存储空间;
建立单元,用于计算每条数据对应的位置标记值并建立相应的存储关系表和数据变化状态变量。
可选地,所述查找单元包括:
HASH运算单元,用于计算所述数据的位置标记值;
下标查找单元,用于根据位置标记值查找存储指针值;
可选地,所述操作单元包括:
指令判断单元,用于判断当前指令;
执行单元,用于完成当前指令;
更新单元,用于更新数据变化状态变量即存储指针值。
本发明实施例提供了一种面向高并发读应用的数据处理方法及装置。通过在内存中划分多个存储空间,并根据HASH处理后的数据及其存储位置建立了位置存储关系表,位置存储关系表中还包括数据变化状态变量。进行数据修改时读取原存储空间中的数据并把修改后的数据写入另一存储空间。两份内存交替进行读与写,从而实现内存中的读写分离,并能实时响应用户请求,提高系统性能。另外,还通过实时更新数据变化状态变量的更新代替数据库的实时更新,可批量更新数据至内存,减少了与数据库交互次数进一步提升系统响应速度。
附图说明
为更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一实施例提供的内存管理方法流程图;
图2为一实施例提供的内存管理方法中初始化操作的流程图;
图3为一实施例提供的内存管理方法中更改数据操作的流程图;
图4为一实施例提供的内存管理方法中删除数据操作的流程图;
图5为一实施例提供的内存管理装置的一种结构示意图。
具体实施方式
目前,对于高并发读应用中的大量读写指令,每条指令之间需要对内存中的待处理数据进行加锁、解锁等操作,这些操作相对较为复杂,需要多个部分的配合,会大大降低应用的响应速度。为解决这个问题,可以采用双数据策略对其进行改进,将指令中的读取和写入两种操作分开进行。同时还可以建立数据存储位置和数据本身之间的关联关系表,便于查找数据的具体存储位置。
为了给出提高高并发读应用系统响应速度的实现方案,本发明实施例提供了一种面向高并发读应用的数据处理方法及装置,以下结合说明书附图对本发明的优选实施例进行说明。
图1为一实施例提供的内存管理方法流程图
101:在内存中划分至少两个存储空间并建立位置存储关系表和数据变化状态变量。
对于本实施例中内存管理方法流程图,需要在内存中划分至少两个存储空间并分别存储全部数据。同时,建立位置存储关系表和数据变化状态变量。其中位置存储关系表包括位置标记值和存储指针值。所述位置标记值可以是对每条数据进行某种数学运算得到的,存储指针值可以指向数据的具体存储空间。
102:接收到处理指令后,计算所述数据的位置标记值并根据所述位置标记值查找存储指针值。
系统接收到对目标数据的处理指令后,对所述目标数据采用相同算法进行处理得到相应的位置标记值。并根据得到的位置标记值,回到位置存储关系表中查找与位置标记值对应的存储指针值。
103:当所述处理指令为更改指令时,选择存储指针值指向的存储空间进行读取操作,并选择一个所述存储指针值指向的存储空间以外的其他存储空间进行写入操作,在所述写入操作结束后,更改存储指针值指向写入数据的存储空间并更新所述数据变化状态变量。
本发明中处理指令可以是更改、读取、新增、删除等指令,本实施例中当处理指令为更改指令时,可以读取存储指针值指向存储空间的数据。将更改后的数据写入存储指针值不指向的某个存储空间。实现了高并发读应用中读取和写入操作的分离。
为了进一步说明图1中各个步骤,下面结合其他实施例进行进一步的描述。
图2为一实施例提供的内存管理方法中初始化操作的流程图,包括:
201:获取全部待处理数据。
202:在内存空间中划分两个大小一致的存储空间,均存储全部待处理数据。
203:根据每条待处理数据的主键HASH计算其对应的位置标记值。
204:以每个位置标记值对应数据的存储位置作为存储指针值,建立位置存储关系表及数据变化状态变量。
在高并发读应用运行中,会将大量待处理的数据放入内存中进行处理。本发明在内存中划分出两个大小一致的第一存储空间和第二存储空间,并且将待处理数据分别复制到两个存储空间,获得完全相同的两个数据,称为第一数据和第二数据。
对于高并发读应用,一次不可能处理全部待处理数据,在运行的过程中会多次启动多个进程,每个进程会对一小部分数据进行处理,包括读取、更改,删除、新增等。如果将每个进程一次处理的数据称为一条数据,那么可以认为全部待处理数据由N条数据组成。
HASH算法是一种广义的散列算法,主体思路是通过某种规律将数据中的关键字段映射成一个固定长度的散列值。相当于将关键字段映射成另一段任意格式的数据。因此采用HASH算法对数据进行映射,可以得到位置标记值。
得到位置标记值后,根据位置标记值对应数据的具体存储位置得到存储指针值,并将存储指针值和对应的位置标记值存入位置存储关系表。如某条数据存储在第一存储空间,则设置其存储指针值为“0”,存储在第二存储空间则设置其存储指针值为“1”。得到存储指针值后,将数据对应的存储指针值、位置标记值存储至位置存储关系表中。所述位置存储关系表可以是BitMap、链表等,具体存在形式本发明不做要求。
当高并发读应用第一次运行时,会将全部待处理数据复制到第一、第二存储空间,此时存储指针值可以为0或1中的任意一个,具体赋值不影响后续操作。
在通过HASH算法进行映射时,有可能将不同数据映射至相同位置,得到相同的位置标记值,也就是产生“碰撞”现象。针对此情况,可以采用碰撞率低的算法实现,如MurmurHash、CityHash等。同时在存储是尽可能多的增加位置标记值的长度。
图3一实施例提供的内存管理方法中更改数据操作的流程图,包括:
301:接受某条数据的更改指令。
302:通过HASH算法映射位置标记值并查找存储指针值。
根据存储指针值的具体取值完成不同的操作。
当存储指针值为0时,
303-1:读取第一存储空间中对应的数据;
304-1:将更改后的数据写入第二存储空间对应的位置。
当存储指针值为1时,
303-2:读取第二存储空间中对应的数据;
304-2:将更改后的数据写入第一存储空间对应的位置。
305:更新数据对应的数据变化状态变量为更改状态,更新位置指针值指向另一存储空间。
在高并发读应用运行过程中,会产生大量进程对数据进行处理,其中读取操作占了绝大多数,但是仍然有很多更改操作。现有技术在更改进程进行时,会在内存数据上创建互斥锁,防止其他进程进行更改或者读取。但是建立和解除互斥锁的过程会占用较长时间,降低系统响应速度。本实施例通过双数据策略上实现了读取和写入的分离,提高了系统响应速度。
在接收到某条数据的更改指令后,会先对数据进行处理,提取其中关键字并通过HASH算法映射得到其位置标记值并查找存储指针值。HASH 算法具有不可逆性和可重复性,无法通过映射后的数据还原得到原始数据。但是相同的原始数据采用相同映射规则,得到的结果必然是相同的。因此,本实施例中对待处理数据中的关键字进行HASH映射,必然可以得到唯一的位置标记值,可以用于在位置存储关系表中查找对应的存储指针值。
在位置存储关系表中,存储有每一条数据对应的存储指针值,表示了该数据的具体存储位置。存储指针值用一位二进制数“0”、“1”表示,当存储指针值为“0”时,代表数据储存在第一存储空间;当存储指针值为“1”时,代表数据储存在第二存储空间。同时,存储指针值还表示了另一存储空间中的数据是无用的、可修改的。
当存储指针值为“0”时,读取第一存储空间中的数据进行后续处理,并将更改后的数据储存至第二存储空间;当存储指针值为“1”时,读取第二存储空间中的数据进行后续处理,并将更改后的数据储存至第一存储空间。可以看到,本实施例中无论存储指针值的具体取值,读取和写入的操作均在不同存储空间进行,实现了读和写的分离,确保了数据处理过程中无需对内存加锁就可进行更改。
在完成对数据的更改后,将所述数据的存储指针值指向另一存储空间。即当存储指针值为“0”时,更改指针值为“1”;当存储指针值为“1”时,更改指针值为“0”。通过更改存储指针值,可以让新的存储指针值指向新的存储空间,而在更改数据时,最新的数据被写入同一个存储空间。因此通过更改存储指针值可以实现位置存储关系表的更新,让位置指针值始终关联最新修改的内存数据。
数据变化状态变量是一个用于表示数据修改状态的变量,可以存储在内存其他位置,本发明不做具体限定。本实施例在更改结束后更新数据变化状态变量为更改状态。表示本段数据已被更改。当数据库周期扫描内存时,检测到数据对应的数据变化状态变量为修改状态,即可将内存中更新后的数据同步至数据库。不需要随着内存中数据的更改而实时同步至数据库。
在一个例子中,当操作指令为读取指令,所述方法还包括:
接受读取数据指令。
通过HASH算法映射位置标记值并查找存储指针值。
根据存储指针值读取对应存储空间的数据。
在一个例子中,当操作指令为新增指令,所述方法还包括:
接受新增数据指令及新增数据。
通过HASH算法映射位置标记值。
储存新增数据到第一存储空间并设置其存储指针值为“0”。
将新增数据对应的位置标记值及存储指针值保存到位置存储关系表。
图4为一实施例提供的内存管理方法中删除数据操作的流程图,包括:
401:接受某条数据的删除指令。
402:通过HASH算法映射位置标记值并查找存储指针值。
403:删除第一、第二存储空间中对应的数据;
404:更新数据对应数据变化状态变量为删除状态并删除位置存储关系表中的元素。
在需要删除某条数据时,根据利用HASH算法对删除指令中的关键字进行映射,得到位置标记值。利用位置标记值在位置存储关系表中查找对应的位置指针值,删除第一、第二存储空间中全部的对应数据。并在删除结束后更改数据变化状态变量。
本发明采用了双数据策略,所述数据在第一存储空间及第二存储空间均有存储,但是位置指针值具有唯一性,永远指向最新的数据,因此读取、更改等操作需要根据位置指针值进行。但是删除数据时,为了最大限度地阶跃内存空间,需要将第一存储空间和第二存储空间的全部数据进行删除。将有用数据和冗余数据一同删除,实现内存空间的高利用率。
在一个实施例中,所述方法还包括:
周期性检测数据变化状态变量的更新状态,同步更新至数据库。
对于现有技术,当内存中的某个数据被进程修改后,系统会立刻将更改后的数据上传至数据库,并且对数据库中的数据进行修改和替换。当修改的数据较多时,应用会频繁地连接后台数据库并上传数据。这些操作不但会大量占用内存空间,还会降低系统响应速度。
本实施例通过建立数据变化状态变量,在更改后临时存储对应数据的更改状态。周期性检测数据变化状态变量的更新状态,并同步至数据库。如果在某一周期内,有某条数据发生了修改,那么数据变化状态变量也会发生变化。数据库检测到数据变化状态变量的变化,从位置存储关系表中获取对应数据的存储指针值,获取对应存储空间中正确的数据。通过周期性的扫描同步代替了现有技术中的实时同步,减少了对数据库的访问,提升了系统响应速度。
图5为一实施例提供的内存管理装置的一种结构示意图,包括:
存储单元501,用于划分第一、第二存储空间,复制数据并建立位置存储关系表和数据变化状态变量;
查找单元502,用于计算位置标记值并查找存储指针值;
操作单元503,用于根据存储指针值完成操作指令并更新数据变化状态变量及存储指针值。
在一个例子中,所述查找单元包括:
内存划分单元,用于根据全部数据的大小从内存中划分出第一存储空间和第二存储空间;
数据复制单元,用于将全部数据复制到第一、第二存储空间;
建立单元,用于计算每条数据对应的位置标记值并建立相应的存储关系表和数据变化状态变量。
在一个例子中,所述查找单元包括:
HASH运算单元,用于计算所述数据的位置标记值;
指针查找单元,用于根据位置标记值查找存储指针值;
在一个例子中,所述操作单元包括:
指令判断单元,用于判断当前指令为更改、读取、新增、删除等;
执行单元,用于完成当前指令;
更新单元,用于更新数据变化状态变量及存储指针值。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种面向高并发读应用的数据处理方法,其特征在于,该方法包括:
在内存中划分至少两个存储空间存储数据并建立位置存储关系表;其中,所述位置存储关系表包含每条数据的位置标记值和存储指针值,所述位置标记值是对每条数据经过运算得到的,所述存储指针值指向数据的具体存储位置;
接收到对目标数据的处理指令后,计算所述目标数据的位置标记值并根据所述位置标记值查找存储指针值;
当所述处理指令为更改指令时,选择所述存储指针值指向的存储空间进行读取操作,并选择一个所述存储指针值指向的存储空间以外的存储空间进行写入操作;
其中,在内存中划分存储空间并建立位置存储关系表包括:
在内存中划分第一、第二存储空间,将应用数据分别复制到所述第一、第二存储空间;
通过HASH算法对每条数据进行处理,得到与所述数据对应的位置标记值;
根据所述数据所在的存储空间,确定与数据对应的存储指针值;所述存储指针值用0或1表示;
建立位置存储关系表,所述位置存储关系表包括位置标记值和存储指针值。
2.根据权利要求1所述的方法,其特征在于,计算所述数据的位置标记值并根据所述位置标记值查找存储指针值包括:
通过HASH算法对所述目标数据进行处理,得到与其对应的位置标记值;
根据所述位置标记值,在所述位置存储关系表中查找目标数据对应的存储指针值。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在建立位置存储关系表时,建立和每条数据对应的数据变化状态变量;其中所述数据变化状态变量用于表示数据的更改情况,且和数据对应的位置存储值相关联。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括:
当所述处理指令为更改指令时,在所述写入操作结束后,更改存储指针值指向写入数据的存储空间并更新所述数据变化状态变量;
当所述处理指令为读取指令时,根据存储指针值读取对应存储空间的数据;
当所述处理指令为新增指令时,计算新增主键的位置标记值,在第一存储空间中存储新增数据,存储完成后,设置对应的存储指针值为0并更新所述数据变化状态变量为新增状态;
当所述处理指令为删除指令时,根据存储指针值删除存储空间的数据并更新所述目标数据变化状态变量为删除状态。
5.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
周期性检测数据变化状态变量的更新状态,同步更新至数据库。
6.一种面向高并发读应用的数据处理装置,其特征在于,所述装置包括:
预处理单元,用于在内存中划分至少两个存储空间存储数据并建立位置存储关系表;其中,所述位置存储关系表包含每条数据的位置标记值和存储指针值,所述位置标记值是对每条数据经过运算得到的,所述存储指针值指向数据的具体存储位置;
查找单元,用于接收到对目标数据的处理指令后,计算所述目标数据的位置标记值并根据所述位置标记值查找存储指针值;
操作单元,用于当所述处理指令为更改指令时,选择所述存储指针值指向的存储空间进行读取操作,并选择一个所述存储指针值指向的存储空间以外的存储空间进行写入操作;
其中,所述预处理单元,用于通过HASH算法对每条数据进行处理,得到与所述数据对应的位置标记值;根据所述数据所在的存储空间,确定与数据对应的存储指针值;所述存储指针值用0或1表示;建立位置存储关系表,所述位置存储关系表包括位置标记值和存储指针值。
7.根据权利要求6所述的装置,所述预处理单元包括:
HASH运算单元,用于通过HASH算法对所述目标数据进行处理,得到与其对应的位置标记值;
下标查找单元,用于根据所述位置标记值,在所述位置存储关系表中查找目标数据对应的存储指针值。
8.根据权利要求6所述的装置,所述操作单元包括:
处理指令判断单元,用于判断当前处理指令;
执行单元,用于完成当前指令;
更新单元,用于更新数据变化状态变量及存储指针值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834132.7A CN110673952B (zh) | 2019-09-04 | 2019-09-04 | 一种面向高并发读应用的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910834132.7A CN110673952B (zh) | 2019-09-04 | 2019-09-04 | 一种面向高并发读应用的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673952A CN110673952A (zh) | 2020-01-10 |
CN110673952B true CN110673952B (zh) | 2023-01-10 |
Family
ID=69076034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910834132.7A Active CN110673952B (zh) | 2019-09-04 | 2019-09-04 | 一种面向高并发读应用的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673952B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630276A (zh) * | 2009-08-18 | 2010-01-20 | 深圳市融创天下科技发展有限公司 | 一种高效的内存访问方法 |
CN103559103A (zh) * | 2013-11-06 | 2014-02-05 | 华为技术有限公司 | 数据复制方法和装置 |
CN105095261A (zh) * | 2014-05-08 | 2015-11-25 | 北京奇虎科技有限公司 | 数据插入方法和装置 |
CN105653609A (zh) * | 2015-12-24 | 2016-06-08 | 中国建设银行股份有限公司 | 基于内存的数据处理方法及装置 |
CN108351860A (zh) * | 2015-11-20 | 2018-07-31 | 微软技术许可有限责任公司 | 低延迟的基于rdma的分布式存储装置 |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储系统 |
US20190129639A1 (en) * | 2017-10-31 | 2019-05-02 | EMC IP Holding Company LLC | Optimizing inline deduplication during copies |
-
2019
- 2019-09-04 CN CN201910834132.7A patent/CN110673952B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630276A (zh) * | 2009-08-18 | 2010-01-20 | 深圳市融创天下科技发展有限公司 | 一种高效的内存访问方法 |
CN103559103A (zh) * | 2013-11-06 | 2014-02-05 | 华为技术有限公司 | 数据复制方法和装置 |
CN105095261A (zh) * | 2014-05-08 | 2015-11-25 | 北京奇虎科技有限公司 | 数据插入方法和装置 |
CN108351860A (zh) * | 2015-11-20 | 2018-07-31 | 微软技术许可有限责任公司 | 低延迟的基于rdma的分布式存储装置 |
CN105653609A (zh) * | 2015-12-24 | 2016-06-08 | 中国建设银行股份有限公司 | 基于内存的数据处理方法及装置 |
US20190129639A1 (en) * | 2017-10-31 | 2019-05-02 | EMC IP Holding Company LLC | Optimizing inline deduplication during copies |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110673952A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6998928B2 (ja) | データを記憶およびクエリするための方法、装置、設備、および媒体 | |
US10338917B2 (en) | Method, apparatus, and system for reading and writing files | |
US9952783B2 (en) | Data processing method and apparatus, and shared storage device | |
US7769792B1 (en) | Low overhead thread synchronization system and method for garbage collecting stale data in a document repository without interrupting concurrent querying | |
CN109690522B (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
CN112363979B (zh) | 一种基于图数据库的分布式索引方法和系统 | |
US7634517B1 (en) | System and method for dynamically updating a document repository without interrupting concurrent querying | |
US20220300456A1 (en) | System and methods for providing fast cacheable access to a key-value device through a filesystem interface | |
CN111316255B (zh) | 数据存储系统以及用于提供数据存储系统的方法 | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
US20150067005A1 (en) | Path resolver for client access to distributed file systems | |
US20170083537A1 (en) | Mapping logical identifiers using multiple identifier spaces | |
JP2017503277A (ja) | データベースシステムにおけるオンライン分析処理のためのデータを維持する方法および装置 | |
CN106294205A (zh) | 缓存数据处理方法及装置 | |
US7617226B1 (en) | Document treadmilling system and method for updating documents in a document repository and recovering storage space from invalidated documents | |
CN112000426A (zh) | 一种数据处理方法及装置 | |
CN114385636A (zh) | 持久内存动态哈希索引方法、系统、设备及存储介质 | |
CN106789632A (zh) | 一种大规模分布式存储系统的节点路由的方法 | |
CN112395213B (zh) | 一种基于内存面向热点数据的aceh索引结构及方法 | |
CN110673952B (zh) | 一种面向高并发读应用的数据处理方法及装置 | |
CN117349235A (zh) | 一种基于LSM-Tree的KV存储系统、电子设备、介质 | |
US10970285B2 (en) | Grid topology change in a distributed data grid when iterating on the contents of the data grid | |
CN109542872B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
US10073874B1 (en) | Updating inverted indices | |
CN116049306A (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 |