CN107797758B - 数据存储方法、数据访问方法及装置 - Google Patents
数据存储方法、数据访问方法及装置 Download PDFInfo
- Publication number
- CN107797758B CN107797758B CN201610809970.5A CN201610809970A CN107797758B CN 107797758 B CN107797758 B CN 107797758B CN 201610809970 A CN201610809970 A CN 201610809970A CN 107797758 B CN107797758 B CN 107797758B
- Authority
- CN
- China
- Prior art keywords
- data
- heat
- determining
- storage
- storage unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013500 data storage Methods 0.000 claims abstract description 33
- 210000004027 cell Anatomy 0.000 claims description 17
- 210000000352 storage cell Anatomy 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
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
本发明公开了一种数据存储方法、数据访问方法及装置,属于数据存储领域。所述方法包括:确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
Description
技术领域
本发明实施例涉及数据存储领域,特别涉及一种数据存储方法、数据访问方法及装置。
背景技术
大数据的存储系统中通常包括多个用于存储数据的存储单元,该多个存储单元与一个服务器相连;或者,该存储系统是多个服务器互相连接组成的存储集群,存储集群中的每个服务器与一个或多个存储单元相连。
在大数据的存储系统中,数据可以被存储在任意一个存储单元中,存储单元提供读写能力,用户通过访问存储单元来访问存储单元中存储的数据。
在实现本发明实施例的过程中,发明人发现现有技术至少存在以下问题:当存储单元中存储的数据的访问需求较大时,单个的存储单元提供的读写能力无法满足用户对该数据的访问需求,影响数据的正常访问。
发明内容
为了解决将数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足较大的数据访问需求的问题,本发明实施例提供了一种数据存储方法、数据访问方法及装置。所述技术方案如下:
根据本发明实施例的第一方面,提供一种数据存储方法,该方法包括:
确定数据的热度等级;
根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数;
将数据存储至M个存储单元中,每个存储单元中均存储有数据。
根据本发明实施例的第二方面,提供一种数据访问方法,该方法包括:
确定待访问的数据的热度等级;
根据热度等级确定与数据对应的存储单元,存储单元是用于存储数据的存储单元中的一个;
根据数据的数据标识从存储单元中访问数据。
根据本发明实施例的第三方面,提供一种数据存储装置,该装置包括:
第一确定模块,用于确定数据的热度等级;
第二确定模块,用于根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等级1的整数;
存储模块,用于将数据存储至M个存储单元中,每个存储单元中均存储有数据。
根据本发明实施例的第四方面,提供一种数据访问装置,该装置包括:
第一确定模块,用于确定待访问的数据的热度等级;
第二确定模块,用于根据热度等级确定与数据对应的存储单元,存储单元是用于存储数据的存储单元中的一个;
访问模块,用于根据数据的数据标识从存储单元中访问数据。
本发明实施例提供的技术方案带来的有益效果是:
通过确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一示例性实施例提供的实施环境的示意图;
图2是本发明另一示例性实施例提供的实施环境的示意图;
图3是本发明一示例性实施例提供的数据存储方法的流程图;
图4是本发明一示例性实施例提供的数据访问方法的流程图;
图5是本发明另一示例性实施例提供的数据存储方法的流程图;
图6A是本发明一示例性实施例提供的数据存储方法的示意图;
图6B是本发明一示例性实施例提供的数据存储方法的示意图;
图7是本发明另一示例性实施例提供的数据访问方法的流程图;
图8是本发明一示例性实施例提供的数据存储装置的框图;
图9是本发明一示例性实施例提供的数据访问装置的框图;
图10是本发明一示例性实施例提供的存储设备的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明一示例性实施例示出的一种实施环境的示意图,该实施环境包括:存储单元110和服务器120。
存储单元110具有数据存储能力,可选的,存储单元110是磁盘、磁盘阵列或其他存储介质,或者,存储单元110是DAS(Direct-Attached Storage,开放系统的直连式存储)、NAS(Network Attached Storage,网络附属存储)、SAN(Storage Area Network,存储域网络)或其他存储系统。
当存储单元110是磁盘或磁盘阵列时,存储单元110通过IDE(Integrated DriveElectronics,电子集成驱动器)接口与服务器120相连;当存储单元110是DAS时,存储单元110通过SCSI(Small Computer System Interface,小型计算机系统接口)与服务器120相连;当存储单元110是NAS时,存储单元110通过以太网与服务器120相连;当存储单元110是SAN时,存储单元110通过FC(Fibre Channel,光纤通道)与服务器120相连。
在本发明实施例中,与一个服务器120相连的存储单元110通常包含多个。
服务器120通常与一个或若干个终端设备130相连,服务器120用于为终端设备130提供数据存储服务和数据访问服务,终端设备130是诸如手机、平板电脑、便携式计算机和台式计算机之类的终端设备。
终端设备130向服务器120发送数据存储请求,数据存储请求中包括需要存储的数据,则服务器120根据数据存储请求将数据存储至一个或多个存储单元110中;和/或,终端设备130向服务器120发送数据访问请求,数据访问请求中包括数据标识,服务器120根据数据访问请求从存储单元110中获取与数据标识对应的数据并返回给终端设备130。
可选的,多个服务器可以互相连接构成存储集群,则该存储集群中的每一个服务器还可以将数据存储至与其他服务器相连的存储单元中,和/或,从与其他服务器相连的存储单元中获取数据。比如,在图2所示的存储集群中,服务器221可以从与服务器222相连的存储单元210中获取数据,图2仅示例性的示出了与服务器222相连的一个存储单元210,实际实现时,存储集群中的每一个服务器都可以与一个或多个存储单元相连。
需要说明的是,本发明实施例中的存储单元与服务器相连,但在实际实现时,当存储单元是存储介质时,存储单元也可以内置于服务器中,本实施例对此不作限定。
图3是根据一示例性实施例示出的一种数据存储方法的流程图,该方法可以应用于图1或图2所示的服务器中,包括如下几个步骤:
在步骤301中,确定数据的热度等级。
其中,热度等级是数据的热度值所对应的热度等级,热度值是数据被访问的频率;可选的,热度值与热度等级成正相关关系,则数据在单位时间内被访问的次数越多,数据的热度值越大,数据对应的热度等级越高。
服务器根据单位时间内接收到的用于请求访问数据的数据访问请求的个数确定该数据的热度值,比如,单位时间是1分钟,服务器在单位时间内接收到的请求访问数据A的数据访问请求的个数是800个,则服务器确定数据A的热度值为800。
可选的,数据的热度值与热度等级之间存在预设对应关系,一个热度等级通常对应于一个热度值的区间,服务器在确定数据的热度值后,根据该预设对应关系确定该热度值对应的热度等级;比如,总共包括3个热度等级,热度值为[0,1000)对应热度等级3,热度值为[1000,2000)对应热度等级2,热度值为[2000,3000)对应热度等级1,热度等级1高于热度等级2,热度等级2高于热度等级3,则当服务器确定数据的热度值为800时,确定数据的热度等级为热度等级3。本实施例中的热度等级以热度等级1、热度等级2、热度等级3……的形式进行表示,在实际实现时也可以用其他形式对热度等级进行表示,本实施例对此不作限定。
需要说明的是,本发明实施例中所涉及的热度等级的含义均可以结合上述热度等级的定义和举例,本发明实施例对此不再赘述。
在步骤302中,根据热度等级确定M个存储单元。
其中,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数。
在步骤303中,将数据存储至M个存储单元中,每个存储单元中均存储有数据。
综上所述,本发明实施例提供的数据存储方法,通过确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
图4是根据一示例性实施例示出的一种数据访问方法的流程图,该方法可以应用于图1或图2所示的服务器中,该方法包括如下几个步骤:
在步骤401中,确定待访问的数据的热度等级。
在步骤402中,根据热度等级确定与数据对应的存储单元。
其中,确定得到的存储单元是用于存储该数据的存储单元中的一个。
在步骤403中,根据数据的数据标识从存储单元中访问数据。
综上所述,本发明实施例提供的数据访问方法,通过确定待访问的数据的热度等级,根据热度等级确定与数据对应的存储单元,并根据数据的数据标识从存储单元中访问数据;解决了将数据存储在单个存储单元中时,所有用户都通过访问该存储单元来获取该数据,对于访问需求较大的数据,访问的用户较多,会导致访问失败的问题;达到了在对数据进行访问时,根据热度等级从存储该数据的存储单元中确定一个存储单元,从确定得到的存储单元中访问数据,保证了数据的访问性能的效果。
图5是根据一示例性实施例示出的一种数据存储方法的流程图,该方法可以应用于图1或图2所示的服务器中,该方法包括如下几个步骤:
在步骤501中,确定数据的热度等级。
在步骤502中,根据热度等级确定热度参数的总个数N。
该方法包括如下几个步骤:
1、确定热度等级对应的存储份数H。
可选的,热度等级与存储份数之间也存在预定对应关系,不同的热度等级对应不同的存储份数,且存储份数与热度等级成正相关关系,热度等级越高,存储份数越多,H为大于等于1的整数。比如,在上述示例性的例子中,热度等级3对应的存储份数为1,热度等级2对应的存储份数为2,热度等级3对应的存储份数为3。
2、确定存储单元的总个数K。
其中,存储单元的总个数是服务器所能访问的存储单元的个数;在图1所示的实施环境中,存储单元的总个数是与服务器相连的存储单元的总个数,在图2所示的实施环境中,存储单元的总个数是与存储集群中的每一个服务器相连的存储单元的总个数。
3、若存储份数小于等于存储单元的总个数,则确定N=H。
4、若存储份数大于存储单元的总个数,则确定N=K。
当热度等级较高时,热度等级对应的存储份数大于存储单元,则N=K,即最多在每个存储单元中存储该数据。
在步骤503中,确定N个热度参数中的第i个热度参数,并根据数据和第i个热度参数确定第i个存储单元,1≤i≤N,i的起始值为1。
N个热度参数中的每个热度参数均不相同,可选的,第i个热度参数Pi=i-1,则N个热度参数分别为0、1、2……N-1。
可选的,数据和第i个热度参数两者与第i个存储单元之间存在预设对应关系,根据该预设对应关系确定得到的第i个存储单元可以是第i个存储单元的存储单元标识,存储单元标识可以是存储单元的地址。
可选的,该预设对应关系由预设的函数对应关系或对应关系表来表示,通常来说,对于同一个数据,当热度参数不同时,确定得到的存储单元也不同;对于不同的数据,确定得到的存储单元可以是相同的。比如,数据A和第1个热度参数对应于存储单元A,数据A和第2个热度参数对应于存储单元B,数据B和第5个热度参数也对应于存储单元B。
可选的,预设的函数对应关系是Hash(哈希)函数,则服务器通过计算Si=HASH(F+Pi)确定第i个存储单元,其中,F是数据,Pi是第i个热度参数,Si是第i个存储单元。则确定得到的N个存储单元S={Hash(F+0),Hash(F+1),…Hash(F+N-1)}。
可选的,预设的对应关系表是哈希表,则服务器通过查找该哈希表确定与F+Pi所对应的第i个存储单元。
在步骤504中,当i<N时,令i=i+1,再次执行确定N个热度参数中的第i个热度参数,并根据数据和第i个热度参数确定第i个存储单元的步骤。
在步骤505中,将数据存储至M个存储单元中,每个存储单元中均存储有数据。
该步骤可以是在执行若干次上述步骤503和步骤504之后,当i达到N时执行的,则当i<N时,执行上述步骤504,当i=N时,执行步骤505;或者,该步骤是在每次执行上述步骤503之后执行的,服务器将数据存储至每次确定得到的第i个存储单元中,则当i<N时,该步骤与步骤504同时执行。本发明实施例以服务器在每次确定一个存储单元后,将数据存储至确定得到的存储单元中的实施方式为例进行说明。
可选的,当数据的热度等级发生变化时,该方法还包括步骤506或者包括步骤507:
在步骤506中,在检测到热度参数的总个数从N增加至N+1时,将数据存储至新增的第N+1个存储单元中,N≥1。
服务器确定第N+1个存储单元的方法请参考步骤503,本实施例对此不再赘述。
在步骤507中,在检测到热度参数的总个数从N减少至N-1时,删除第N个存储单元中的该数据,N≥2。
当热度参数的总个数从N减少至N-1时,根据上述方法确定得到的存储单元的集合为S={Hash(F+0),Hash(F+1),…Hash(F+N-2)},用户在访问该数据时,通过访问该集合中的一个存储单元获取该数据,因此,为了保证通过Hash(F+0),Hash(F+1),…Hash(F+N-2)确定得到的存储单元中的每一个存储单元都能够被用户正确访问,将通过Hash(F+N-1)确定得到的第N个存储单元中的该数据进行删除。
需要说明的是,当热度参数的总个数从N减少至N-1时,服务器也可以不删除第N个存储单元中的数据,而是后续不再对该存储单元中的该数据执行访问和修改等操作,使该存储单元中的该数据自动失效。
综上所述,本发明实施例提供的数据存储方法,通过确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
本发明实施例提供的数据存储方法,热度等级较高的数据存储在个数较多的存储单元中,热度等级较低的数据存储在个数较少的存储单元中,在保证了访问性能的前提下,提高了对存储单元中的存储空间的利用率,提高了存储效率。
本发明实施例提供的数据存储方法,当数据的热度等级变化时,服务器只需在新增加的存储单元中增加该数据或者将最后增加的一个存储单元中的数据进行删除,数据存储的变化较小,减少服务器的负荷。
在一个示例性的例子中,如图6A所示,假设总共包括4个热度等级,热度等级4、热度等级3、热度等级2和热度等级1的热度等级依次升高。服务器确定数据F~数据Q这12个数据的热度等级均为热度等级4,热度等级4对应的存储份数为1份,即热度参数为1个,则服务器确定每个数据对应的一个存储单元,并将每个数据存储至数据对应的存储单元中,比如,在图6A中,将数据F、数据G和数据H存储至存储单元1,将数据I、数据J和数据K存储至存储单元2,将数据L、数据M和数据N存储至存储单元3,将数据O、数据P和数据Q存储至存储单元4。
服务器确定数据B~数据E这4个数据的热度等级均为热度等级3,热度等级3对应的存储份数为2份,即热度参数为2个。则服务器根据数据B和2个热度参数确定得到的2个存储单元分别为S1和S3,服务器根据数据C和2个热度参数确定得到的2个存储单元分别为S2和S4,服务器根据数据D和2个热度参数确定得到的2个存储单元分别为S1和S2,服务器根据数据E和2个热度参数确定得到的2个存储单元分别为S3和S4;并将数据B、数据C、数据D和数据E分别存储至各自对应的两个存储单元中。
服务器确定数据A的热度等级均为热度等级1,热度等级1对应的存储份数为4份,即热度参数为4个,则服务器根据数据A和4个热度参数依次确定得到的4个存储单元分别为S1、S2、S3和S4中,服务器将数据A存储至这4个存储单元中。
当服务器检测到数据A的热度等级下降为热度等级2时,将存储单元S4中的数据A进行删除;同时,当服务器检测到数据B的热度等级上升至热度等级2时,假设服务器根据数据B和新增的热度参数确定得到新增的存储单元为S4,则图6A所示的存储示意图可以变成图6B所示的存储示意图。
请参考图7,其示出了本发明一示例性实施例提供的数据访问方法,该方法可以应用于图1或图2所示的服务器中,该方法包括如下几个步骤:
在步骤701中,确定待访问的数据的热度等级。
该步骤的实现方式可以结合上述步骤501,本实施例对此不再赘述。
在步骤702中,根据热度等级确定热度参数的总个数N。
其中,N为大于等于1的整数,该步骤的实现方式可以结合上述步骤502,本实施例对此不再赘述。
在步骤703中,从N个热度参数中确定一个目标热度参数。
可选的,目标热度参数与访问该数据的访问终端相对应,则服务器在接收到访问终端发送的访问请求时,确定访问终端的终端标识,终端标识是访问终端的IP(InternetProtocol,网络协议)地址、MAC地址和序列号等;其中,访问终端是向服务器发送数据访问请求的终端设备。则服务器通过计算Q=HASH(V)%N确定与访问终端对应的目标热度参数。其中,Q是热度参数,V是访问终端的终端标识。
可选的,目标热度参数是根据热度等级随机生成的,则服务器通过计算Q=RANDOM()%N确定目标热度参数。其中,Q是热度参数,H是热度等级。
在步骤704中,根据数据和目标热度参数确定存储单元。
其中,确定得到的存储单元是用于存储数据的存储单元中的一个。
可选的,S=HASH(F+Q)。其中,S是与数据对应的存储单元,F是数据,Q是目标热度参数。确定得到的与数据对应的存储单元S是{Hash(F+0),Hash(F+1),…Hash(F+N-1)}中的一个。
在步骤705中,根据数据的数据标识从存储单元中访问数据。
需要说明的是,当目标热度参数是根据热度等级随机生成的热度参数时,服务器也可以同时生成多个目标热度参数,并确定多个存储单元,访问多个存储单元获取该数据,并接收响应速度最快的存储单元返回的数据。
综上所述,本发明实施例提供的数据访问方法,通过确定待访问的数据的热度等级,根据热度等级确定与数据对应的存储单元,并根据数据的数据标识从存储单元中访问数据;解决了将数据存储在单个存储单元中时,所有用户都通过访问该存储单元来获取该数据,对于访问需求较大的数据,访问的用户较多,会导致访问失败的问题;达到了在对数据进行访问时,根据热度等级从存储该数据的存储单元中确定一个存储单元,从确定得到的存储单元中访问数据,保证了数据的访问性能的效果。
图8是根据一示例性实施例示出的一种数据存储装置的框图,该数据存储装置可以通过软件或硬件或两者的结合实现成为图1或图2所示的实施环境中的服务器的全部或者一部分,该装置至少包括:
第一确定模块810,用于确定数据的热度等级;
第二确定模块820,用于根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数;
存储模块830,用于将数据存储至M个存储单元中,每个存储单元中均存储有数据。
可选的,第二确定模块820包括:
第一确定单元,用于确定N个热度参数中的第i个热度参数,根据热度等级确定热度参数的总个数N,存储单元的个数M与热度参数的总个数N相等。
第二确定单元,用于根据数据和第i个热度参数确定第i个存储单元,1≤i≤N,i的起始值为1;
第二确定单元,还用于当i<N时,令i=i+1,再次执行确定N个热度参数中的第i个热度参数,并根据数据和第i个热度参数确定第i个存储单元的步骤。
可选的,第一确定单元包括:
第一确定子单元,用于确定热度等级对应的存储份数H。
第二确定子单元,用于确定存储单元的总个数K。
第三确定子单元,用于若存储份数小于等于存储单元的总个数,则确定N=H。
第三确定子单元,还用于若存储份数大于存储单元的总个数,则确定N=K。
其中,不同的热度等级对应不同的存储份数,且存储份数与热度等级成正相关关系。
可选的,第二确定单元,还用于计算:Si=HASH(F+Pi),其中,F是数据,Pi是第i个热度参数,Si是第i个存储单元。
可选的,该装置还包括:第一更新模块,用于在检测到热度参数的总个数从N增加至N+1时,将数据存储至新增的第N+1个存储单元中,N≥1。
或者,第二更新模块,用于在检测到热度参数的总个数从N减少至N-1个时,删除第N个存储单元中的该数据,N≥2。
综上所述,本发明实施例提供的数据存储装置,通过确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
图9是根据一示例性实施例示出的一种数据访问装置的框图,该数据访问装置可以通过软件或硬件或两者的结合实现成为图1或图2所示的实施环境中的服务器的全部或者一部分,该装置至少包括:
第一确定模块910,用于确定待访问的数据的热度等级。
第二确定模块920,用于根据热度等级确定与数据对应的存储单元,存储单元是用于存储数据的存储单元中的一个。
访问模块930,用于根据数据的数据标识从存储单元中访问数据。
可选的,第二确定模块920,包括:
第一确定单元,用于根据热度等级确定热度参数的总个数N,N为大于等于1的整数。
第二确定单元,用于从N个热度参数中确定一个目标热度参数。
第三确定单元,用于根据数据和目标热度参数确定存储单元。
可选的,第二确定单元,还用于计算Q=HASH(V)%N,其中,Q是目标热度参数,V是访问终端的终端标识。
可选的,第二确定单元,还用于计算Q=RANDOM()%N,其中,Q是目标热度参数,H是热度等级。
可选的,第三确定单元,还用于计算S=HASH(F+Q),其中,S是与数据对应的存储单元,F是数据,Q是目标热度参数。
综上所述,本发明实施例提供的数据访问装置,通过确定数据的热度等级,根据热度等级确定M个存储单元,存储单元的个数M与热度等级成正相关关系,M为大于等于1的整数,将数据存储至M个存储单元中,每个存储单元中均存储有数据;解决了将访问需求较大的数据存储在单个存储单元中时,单个存储单元提供的读写能力无法满足用户对数据的访问需求而影响数据的正常访问的问题;由于确定得到的存储单元的个数与数据的热度等级成正相关关系,因此达到了将热度等级高的数据存储在更多个存储单元中,由多个存储单元协同提供读写服务,保证了数据的访问性能。
请参考图10,其示出了本发明一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的数据存储方法和数据访问方法。具体来讲:
服务器1000包括中央处理单元(CPU)1001、包括随机存取存储器(RAM)1002和只读存储器(ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。服务器1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量服务器1007。
基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
大容量服务器1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。大容量服务器1007及其相关联的计算机可读介质为服务器1000提供非易失性存储。也就是说,大容量服务器1007可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性服务器。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量服务器1007可以统称为存储器。
根据本发明的各种实施例,服务器1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1000可以通过连接在系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述方法的指令。
需要说明的是:上述实施例提供的数据存储装置在存储数据,以及,上述实施例提供的数据访问装置在访问数据,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储装置以及数据存储方法实施例、数据访问装置以及数据访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种数据存储方法,其特征在于,所述方法包括:
确定数据的热度等级;
根据所述热度等级确定M个存储单元,所述存储单元的个数M与所述热度等级成正相关关系,M为大于等于1的整数;
将所述数据存储至所述M个存储单元中,每个所述存储单元中均存储有所述数据,
所述根据所述热度等级确定M个存储单元,包括:
根据所述热度等级确定热度参数的总个数N,所述存储单元的个数M与所述热度参数的总个数N相等;
确定N个所述热度参数中的第i个热度参数,并根据所述数据和所述第i个热度参数确定第i个存储单元,1≤i≤N,i的起始值为1;
当i<N时,令i=i+1,再次执行所述确定N个所述热度参数中的第i个热度参数,并根据所述数据和所述第i个热度参数确定第i个存储单元的步骤。
2.根据权利要求1所述的方法,其特征在于,所述根据所述热度等级确定热度参数的总个数N,包括:
确定所述热度等级对应的存储份数H;
确定存储单元的总个数K;
若所述存储份数小于等于所述存储单元的总个数,则确定N=H;
若所述存储份数大于所述存储单元的总个数,则确定N=K;
其中,不同的热度等级对应不同的存储份数,且所述存储份数与所述热度等级成正相关关系。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述数据和所述第i个热度参数确定第i个存储单元,包括:
Si=HASH(F+Pi)
其中,F是所述数据,Pi是所述第i个热度参数,Si是所述第i个存储单元。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在检测到所述热度参数的总个数从N增加至N+1时,将所述数据存储至新增的第N+1个存储单元中,N≥1;
或者,
在检测到所述热度参数的总个数从N减少至N-1个时,删除第N个存储单元中的所述数据,N≥2。
5.一种数据访问方法,其特征在于,所述方法包括:
确定待访问的数据的热度等级;
根据所述热度等级确定与所述数据对应的存储单元,所述存储单元是用于存储所述数据的存储单元中的一个;
根据所述数据的数据标识从所述存储单元中访问所述数据,
所述根据所述热度等级确定与所述数据对应的存储单元,包括:
根据所述热度等级确定热度参数的总个数N,N为大于等于1的整数;
从N个所述热度参数中确定一个目标热度参数;
根据所述数据和所述目标热度参数确定所述存储单元。
6.根据权利要求5所述的方法,其特征在于,所述从N个所述热度参数中确定一个目标热度参数,包括:
Q=HASH(V)%N
其中,Q是所述目标热度参数,V是访问终端的终端标识。
7.根据权利要求5所述的方法,其特征在于,所述从N个所述热度参数中确定一个目标热度参数,包括:
Q=RANDOM()%N
其中,Q是所述目标热度参数。
8.根据权利要求5-7任一所述的方法,其特征在于,所述根据所述数据和所述目标热度参数确定所述存储单元,包括:
S=HASH(F+Q)
其中,S是与所述数据对应的所述存储单元,F是所述数据,Q是所述目标热度参数。
9.一种数据存储装置,其特征在于,所述装置包括:
第一确定模块,用于确定数据的热度等级;
第二确定模块,用于根据所述热度等级确定M个存储单元,所述存储单元的个数M与所述热度等级成正相关关系,M为大于等于1的整数;
存储模块,用于将所述数据存储至所述M个存储单元中,每个所述存储单元中均存储有所述数据,
所述第二确定模块包括:
第一确定单元,用于根据所述热度等级确定热度参数的总个数N,所述存储单元的个数M与所述热度参数的总个数N相等;
第二确定单元,用于确定N个所述热度参数中的第i个热度参数,并根据所述数据和所述第i个热度参数确定第i个存储单元,1≤i≤N,i的起始值为1;
所述第二确定单元,还用于当i<N时,令i=i+1,再次执行所述确定N个所述热度参数中的第i个热度参数,并根据所述数据和所述第i个热度参数确定第i个存储单元的步骤。
10.根据权利要求9所述的装置,其特征在于,所述第一确定单元包括:
第一确定子单元,用于确定所述热度等级对应的存储份数H;
第二确定子单元,用于确定存储单元的总个数K;
第三确定子单元,用于若所述存储份数小于等于所述存储单元的总个数,则确定N=H;
所述第三确定子单元,还用于若所述存储份数大于所述存储单元的总个数,则确定N=K;
其中,不同的热度等级对应不同的存储份数,且所述存储份数与所述热度等级成正相关关系。
11.根据权利要求9或10所述的装置,其特征在于,所述第二确定单元,还用于计算:
Si=HASH(F+Pi)
其中,F是所述数据,Pi是所述第i个热度参数,Si是所述第i个存储单元。
12.根据权利要求9或10所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于在检测到所述热度参数的总个数从N增加至N+1时,将所述数据存储至新增的第N+1个存储单元中,N≥1;
或者,
第二更新模块,用于在检测到所述热度参数的总个数从N减少至N-1个时,删除第N个存储单元中的所述数据,N≥2。
13.一种数据访问装置,其特征在于,所述装置包括:
第一确定模块,用于确定待访问的数据的热度等级;
第二确定模块,用于根据所述热度等级确定与所述数据对应的存储单元,所述存储单元是用于存储所述数据的存储单元中的一个;
访问模块,用于根据所述数据的数据标识从所述存储单元中访问所述数据,
所述第二确定模块,包括:
第一确定单元,用于根据所述热度等级确定热度参数的总个数N,N为大于等于1的整数;
第二确定单元,用于从N个所述热度参数中确定一个目标热度参数;
第三确定单元,用于根据所述数据和所述目标热度参数确定所述存储单元。
14.根据权利要求13所述的装置,其特征在于,所述第二确定单元,还用于计算:
Q=HASH(V)%N
其中,Q是所述目标热度参数,V是访问终端的终端标识。
15.根据权利要求13所述的装置,其特征在于,所述第二确定单元,还用于计算:
Q=RANDOM()%N
其中,Q是所述目标热度参数。
16.根据权利要求13-15任一所述的装置,其特征在于,所述第三确定单元,还用于计算:
S=HASH(F+Q)
其中,S是与所述数据对应的所述存储单元,F是所述数据,Q是所述目标热度参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610809970.5A CN107797758B (zh) | 2016-09-07 | 2016-09-07 | 数据存储方法、数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610809970.5A CN107797758B (zh) | 2016-09-07 | 2016-09-07 | 数据存储方法、数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797758A CN107797758A (zh) | 2018-03-13 |
CN107797758B true CN107797758B (zh) | 2019-07-30 |
Family
ID=61530958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610809970.5A Active CN107797758B (zh) | 2016-09-07 | 2016-09-07 | 数据存储方法、数据访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107797758B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259945B (zh) * | 2018-04-19 | 2020-09-15 | 腾讯音乐娱乐科技(深圳)有限公司 | 处理播放多媒体数据的播放请求的方法和装置 |
CN108810144A (zh) * | 2018-06-14 | 2018-11-13 | 北京中飞艾维航空科技有限公司 | 一种数据传输方法、服务器及存储介质 |
CN111443867B (zh) * | 2020-03-24 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN104182184A (zh) * | 2014-08-27 | 2014-12-03 | 浪潮电子信息产业股份有限公司 | 一种分布式块存储克隆方法 |
CN104270402A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种异构集群存储自适应数据负载的方法 |
-
2016
- 2016-09-07 CN CN201610809970.5A patent/CN107797758B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN102609360A (zh) * | 2012-01-12 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN104270402A (zh) * | 2014-08-25 | 2015-01-07 | 浪潮电子信息产业股份有限公司 | 一种异构集群存储自适应数据负载的方法 |
CN104182184A (zh) * | 2014-08-27 | 2014-12-03 | 浪潮电子信息产业股份有限公司 | 一种分布式块存储克隆方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107797758A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102693B (zh) | 对象处理方法和装置 | |
CN107077497B (zh) | 复合分区函数 | |
US20130227047A1 (en) | Methods for managing content stored in cloud-based storages | |
WO2022143540A1 (zh) | 区块链索引的存储方法、装置、计算机设备及介质 | |
US10171604B2 (en) | System and method for pushing network information | |
US11314451B2 (en) | Method and apparatus for storing data | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
US20210117822A1 (en) | System and method for persistent storage failure prediction | |
CN107797758B (zh) | 数据存储方法、数据访问方法及装置 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
CN111475108A (zh) | 一种分布式存储方法、计算机设备及计算机可读存储介质 | |
CN113886496A (zh) | 区块链的数据同步方法、装置、计算机设备和存储介质 | |
CN111142799A (zh) | 分布式存储方法及装置、网络节点及存储介质 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN111193804B (zh) | 分布式存储方法及装置、网络节点及存储介质 | |
CN111125257B (zh) | 词典更新方法、装置、设备和存储介质 | |
CN115774621B (zh) | 一种请求处理方法、系统、设备及计算机可读存储介质 | |
CN110020129B (zh) | 点击率校正方法、预估方法、装置、计算设备及存储介质 | |
CN110022348B (zh) | 用于动态备份会话的系统和方法 | |
CN111147556A (zh) | 一种负载均衡方法、装置、设备及存储介质 | |
CN110703997A (zh) | 云存储系统及数据存储方法、装置、设备、计算机介质 | |
US11816088B2 (en) | Method and system for managing cross data source data access requests | |
CN110677919B (zh) | 基于无线接入点分享确定收益的方法与设备 | |
US11714805B1 (en) | Method and system for streaming data from portable storage devices |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210917 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2 East 403 room, SEG science and technology garden, Futian District, Guangdong, Shenzhen 518000, China Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |