CN107463670A - 数据存储、读取方法及装置 - Google Patents

数据存储、读取方法及装置 Download PDF

Info

Publication number
CN107463670A
CN107463670A CN201710657523.7A CN201710657523A CN107463670A CN 107463670 A CN107463670 A CN 107463670A CN 201710657523 A CN201710657523 A CN 201710657523A CN 107463670 A CN107463670 A CN 107463670A
Authority
CN
China
Prior art keywords
storage device
user
mark
data
device group
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
Application number
CN201710657523.7A
Other languages
English (en)
Other versions
CN107463670B (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201710657523.7A priority Critical patent/CN107463670B/zh
Publication of CN107463670A publication Critical patent/CN107463670A/zh
Application granted granted Critical
Publication of CN107463670B publication Critical patent/CN107463670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据存储、读取方法及装置,其中,数据存储方法包括:存储设备组中的接口设备在接收用户通过用户设备发送的用户数据,确定所述第一索引中是否存在与所述用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则将接收的用户数据存储到具有所述存储设备组标识的存储设备组中的存储设备中。由于第一索引中每个用户标识仅对应一个存储设备组标识,因此本发明通过第一索引进行数据存储时,可以将同一用户的用户数据存储到同一存储设备组的存储设备中。本发明提高了数据提取的速度,对用户数据的维护也更加方便。

Description

数据存储、读取方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及数据存储、读取方法及装置。
背景技术
随着分布式存储系统的普及和应用,网站记录的用户身份信息、用户浏览记录等用户数据可以存储在不同的存储设备组中。现有技术将同一用户的用户数据分别存储到多个存储设备组中,例如:A地区和B地区分别设置有一个存储设备组,当用户张某在A地区登录该网站时,张某在此次登录过程中产生的用户数据将存储在A地区设置的存储设备组中。当张某在B地区登录该网站时,张某在此次登录过程中产生的用户数据将存储在B地区设置的存储设备组中。
当需要读取某用户的全部用户数据时,现有技术需要分别从不同的存储设备组中读取该用户的用户数据,数据读取速度也较慢。同时,当需要对某一用户的用户数据进行维护时,需要分别对不同的存储设备组中的用户数据进行维护,方便性不足。
发明内容
本发明实施例的目的在于提供一种数据存储、读取方法及装置,以简化用户数据读取过程并提高数据读取成功率。具体技术方案如下:
一种数据存储方法,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述方法包括:
第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;
如果存在,则将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
可选的,所述方法还包括:
如果所述第一存储设备组的接口设备中的第一索引中不存在与所述用户数据中的用户标识对应的存储设备组标识,则将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
可选的,所述将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中,包括:
确定与所述用户数据中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识;
如果是,则将所述用户数据存储到所述第一存储设备组的存储设备中;
如果不是,则将接收的用户数据发送到具有所述存储设备组标识的存储设备组以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
可选的,各存储设备组之间通过中间件进行通信。
一种数据读取方法,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述方法包括:
第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;
如果存在,则从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
可选的,所述从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,包括:
判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,
如果是,则从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,
如果不是,则从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
可选的,各存储设备组之间通过中间件进行通信。
一种数据存储装置,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述装置包括:数据接收单元、标识确定单元和第一存储单元,
所述数据接收单元,用于第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
所述标识确定单元,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述第一存储单元;
所述第一存储单元,用于将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
可选的,所述装置还包括:第二存储单元和索引更新单元,
所述第二存储单元,用于在所述第一存储设备组的接口设备中的第一索引中不存在与所述用户数据中的用户标识对应的存储设备组标识时,将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
所述索引更新单元,用于将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
可选的,所述第一存储单元包括:标识确定子单元、数据存储子单元和数据发送子单元,
所述标识确定子单元,用于确定与所述用户数据中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识;如果是,则触发所述数据存储子单元;如果不是,则触发所述数据发送子单元;
所述数据存储子单元,用于将所述用户数据存储到所述第一存储设备组的存储设备中;
所述数据发送子单元,用于将接收的用户数据发送到具有所述存储设备组标识的存储设备组以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
一种数据读取装置,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述装置包括:请求接收单元、索引确定单元和数据获取单元,
所述请求接收单元,用于第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
所述索引确定单元,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述数据获取单元;
所述数据获取单元,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
可选的,所述数据获取单元,包括:标识判断子单元、第一发送子单元和第二发送子单元,
所述标识判断子单元,用于判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,如果是,则触发所述第一发送子单元;如果不是,则触发所述第二发送子单元;
所述第一发送子单元,用于从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,
所述第二发送子单元,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
本发明实施例提供的数据存储、读取方法及装置,第一存储设备组中的接口设备接收用户数据;确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。由于第一索引中每个用户标识仅对应一个存储设备组标识,因此本发明通过第一索引进行数据存储时,可以将同一用户的用户数据存储到同一存储设备组的存储设备中。这样,当需要查找某用户的用户数据时,只需要从一个存储设备组中提取数据即可,无需从多个存储设备组中提取数据,提高了数据提取的速度。同时,由于同一用户的用户数据仅会存储到一个存储设备组中,因此对同一用户的用户数据的维护也仅限于一个存储设备组,更加方便。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式存储系统的结构示意图;
图2为本发明实施例提供的一种数据存储方法的流程图;
图3为本发明实施例提供的另一种数据存储方法的流程图;
图4为本发明实施例提供的一种数据读取方法的流程图;
图5为本发明实施例提供的一种数据存储装置的结构示意图;
图6为本发明实施例提供的一种数据读取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种数据存储方法,可以应用于如图1所示的分布式存储系统中,所述分布式存储系统包括多个存储设备组001,每个存储设备组001中均包括至少一个接口设备002及至少一个存储设备003,各所述接口设备002中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,如图2所示,该方法可以包括:
S100、第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
其中,第一存储设备组中的接口设备接收的用户数据可以是用户通过用户设备发送的用户数据。
其中,每个存储设备组001可以为一个机房。接口设备002可以集成到存储设备003中,也可以单独存在。可选的,每个接口设备中还可以存储有第二索引,该第二索引中对应存储有该接口设备所在的存储设备组中各存储设备的设备标识及用户标识。其中,第一索引中存储有相对应的用户标识及存储设备组标识。第一索引中可以存储有全部的存储设备组的存储设备组标识及对应的用户标识。
通过第一索引,本发明可以确定某用户的数据所在的存储设备组。通过第二索引,本发明可以确定某用户的数据所在的一个或多个存储设备。
具体的,第一索引存储所有存储设备组的存储设备组标识以及各存储设备组标识对应的用户标识;每个存储设备组中都具有一个第一索引,且各存储设备组的第一索引相同。
每个存储设备组还可以都具有一个第二索引,各存储设备组中的第二索引可以不同,第二索引中对应存储有该第二索引所在的存储设备组中存储设备的标识及用户标识。
当某用户的用户数据到达第一存储设备组的时候,该存储设备组就从第一索引中查找该用户数据携带的用户标识对应的存储设备组标识,当查找到的存储设备组标识不是该第一存储设备组的标识时,第一存储设备组可以将该用户数据发送到查找到的存储设备组标识对应的存储设备组(例如第二存储设备组);
然后该查找到的存储设备组标识对应的存储设备组就可以从自身的第二索引中查找到该用户数据中携带的用户标识对应的存储设备的标识,即确定是哪些或哪个存储设备存储着该用户数据中携带的用户标识对应的用户的数据,找到以后,将该用户数据存储到该存储设备中即可。
其中,所述用户数据可以为广告数据,例如:某用户代表某商品生产商,该用户的用户数据即可以为该商品生产商生产的商品的广告数据。
其中,用户标识可以为用户名或为用户分配的用户编号等。
其中,由于存储设备组有多个,因此用户通过用户设备向存储设备组发送用户数据时,可以通过就近原则将用户数据发送到距离该用户设备最近的存储设备组。当然,也可以通过其他原则选择用户数据所要发送到的存储设备组,例如:将用户数据发送到当前执行的数据处理较少的存储设备组以使得该用户数据被较快的进行处理。
S200、确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则执行步骤S300;如果不存在,则执行步骤S400;
可以理解的是,由于第一索引中每个用户标识仅对应一个存储设备组标识,因此在进行数据存储时,同一用户的用户数据仅会存储到一个存储设备组中。这样,当需要查找某用户的用户数据时,只需要从一个存储设备组中提取数据即可,无需从多个存储设备组中提取数据,提高了数据提取的速度。同时,由于同一用户的用户数据仅会存储到一个存储设备组中,因此对同一用户的用户数据的维护也仅限于一个存储设备组,更加方便。
S300、将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
其中,如图3所示,步骤S300可以包括:
S310、确定与所述用户数据中用户标识对应的存储设备组标识是否为所述第一存储设备组的存储设备组标识;如果是,则执行步骤S320;如果不是,则执行步骤S330;
S320、将所述用户数据存储到所述第一存储设备组;
具体的,步骤S320可以将用户数据存储到所述第一存储设备组的存储设备中。
S330、将接收的用户数据发送到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
具体的,不同存储设备组之间可以通过中间件进行通信。其中,该中间件可以为消息中间件。
具体的,同一用户的用户数据可以分别存储到一个存储设备组的多个存储设备中,也可以存储到一个存储设备组的一个存储设备中。
具体的,在将用户数据存储到存储设备中后,可以将该用户数据对应的用户标识与该存储设备的标识进行对应并加入第二索引中。
S400、将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
S500、将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
当第一索引中不存在与所述用户标识对应的存储设备组标识时,说明该用户的用户数据未存储过,因此本次是该用户的用户数据的第一次存储。由于第一存储设备组是接收该用户数据的设备组,因此可以直接将用户数据存储到第一存储设备组的存储设备中,并根据此次存储操作更新第一索引,同时将增加的索引数据同步到其他存储设备组的第一索引中,以保证各存储设备组的第一索引的一致性。
当然,步骤S400也可以将用户数据发送到其他存储设备组中进行存储,本发明在此不作限定。
本发明实施例提供的一种数据存储方法,第一存储设备组中的接口设备接收用户数据;确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。由于第一索引中每个用户标识仅对应一个存储设备组标识,因此本发明通过第一索引进行数据存储时,可以将同一用户的用户数据存储到同一存储设备组的存储设备中。这样,当需要查找某用户的用户数据时,只需要从一个存储设备组中提取数据即可,无需从多个存储设备组中提取数据,提高了数据提取的速度。同时,由于同一用户的用户数据仅会存储到一个存储设备组中,因此对同一用户的用户数据的维护也仅限于一个存储设备组,更加方便。
与图1所示方法相对应,本发明还提供了一种数据读取方法。
如图4所示,本发明实施例提供的一种数据读取方法,可以应用于图1所示的分布式存储系统中,所述分布式存储系统包括多个存储设备组001,每个存储设备组001中均包括至少一个接口设备002及至少一个存储设备003,各所述接口设备002中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,该方法可以包括:
S001、第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
其中,数据获取请求可以是用户通过用户设备发送的。
S002、确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则执行步骤S003;如果不存在,则执行步骤S004;
S003、从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
其中,步骤S003可以具体包括:对所述数据获取请求所请求的数据进行更新,从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取更新后的数据并发送到所述数据获取请求的发送方。
可以理解的是,数据获取请求所请求的数据可以是用户数据,用户数据可以包括:用户身份标识、用户视频浏览信息等。其中,用户视频浏览信息可能会跟随时间的推移而变化,因此,本发明在从存储设备中获取数据之前可以首先对数据进行更新。
S004、向所述数据获取请求的发送方返回数据查找失败的通知消息。
其中,步骤S003可以具体包括:
判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,如果是,则从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方;如果不是,则从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
具体的,第一索引可以存储所有存储设备组的存储设备组标识以及各存储设备组标识对应的用户标识;每个存储设备组中都具有一个第一索引,且各存储设备组的第一索引相同。
每个存储设备组还可以都具有一个第二索引,各存储设备组中的第二索引可以不同,第二索引中对应存储有该第二索引所在的存储设备组中存储设备的标识及用户标识。
当某数据获取请求到达第一存储设备组的时候,该第一存储设备组就从第一索引中查找该数据获取请求中携带的用户标识对应的存储设备组标识,当查找到的存储设备组标识不是该第一存储设备组的标识时,第一存储设备组可以将该数据获取请求发送给查找到的存储设备组标识对应的存储设备组(例如第二存储设备组);
然后该查找到的存储设备组标识对应的存储设备组就可以从自身的第二索引中查找到该数据获取请求中携带的用户标识对应的存储设备的标识,即确定是哪些或哪个存储设备存储着该数据获取请求中携带的用户标识对应的用户的数据,找到以后,从该存储设备中取得数据然后返回请求发送方即可。当然,该查找到的存储设备组标识对应的存储设备组也可以将中取得的数据首先返回给第一存储设备组,通过第一存储设备组发送至请求发送方。
本发明实施例提供的一种数据读取方法,仅需在一个存储设备组中获取用户数据并反馈给用户设备,无需跨存储设备组操作,更加快捷和方便。
与图2所示方法实施例相对应,本发明还提供了一种数据存储装置。
本发明实施例提供的一种数据存储装置,可以应用于图1所示的分布式存储系统中,所述分布式存储系统包括多个存储设备组001,每个存储设备组001中均包括至少一个接口设备002及至少一个存储设备003,各所述接口设备002中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,如图5所示,该数据存储装置可以包括:数据接收单元100、标识确定单元200和第一存储单元300,
所述数据接收单元100,用于第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
其中,第一存储设备组中的接口设备接收的用户数据可以是用户通过用户设备发送的用户数据。
其中,每个存储设备组可以为一个机房。接口设备可以集成到存储设备中,也可以单独存在。可选的,每个接口设备中还可以存储有第二索引,该第二索引中对应存储有该接口设备所在的存储设备组中各存储设备的设备标识及用户标识。其中,第一索引中存储有相对应的用户标识及存储设备组标识。第一索引中可以存储有全部的存储设备组的存储设备组标识及对应的用户标识。
通过第一索引,本发明可以确定某用户的数据所在的存储设备组。通过第二索引,本发明可以确定某用户的数据所在的一个或多个存储设备。
所述标识确定单元200,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述第一存储单元300;
可以理解的是,由于第一索引中每个用户标识仅对应一个存储设备组标识,因此在进行数据存储时,同一用户的用户数据仅会存储到一个存储设备组中。这样,当需要查找某用户的用户数据时,只需要从一个存储设备组中提取数据即可,无需从多个存储设备组中提取数据,提高了数据提取的速度。同时,由于同一用户的用户数据仅会存储到一个存储设备组中,因此对同一用户的用户数据的维护也仅限于一个存储设备组,更加方便。
所述第一存储单元300,用于将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
其中,所述第一存储单元300可以包括:标识确定子单元、数据存储子单元和数据发送子单元,
所述标识确定子单元,用于确定与所述用户数据中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识;如果是,则触发所述数据存储子单元;如果不是,则触发所述数据发送子单元;
所述数据存储子单元,用于将所述用户数据存储到所述第一存储设备组的存储设备中;
所述数据发送子单元,用于将接收的用户数据发送到具有所述存储设备组标识的存储设备组以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
具体的,不同存储设备组之间可以通过中间件进行通信。其中,该中间件可以为消息中间件。
具体的,同一用户的用户数据可以分别存储到一个存储设备组的多个存储设备中,也可以存储到一个存储设备组的一个存储设备中。
具体的,在将用户数据存储到存储设备中后,可以将该用户数据对应的用户标识与该存储设备的标识进行对应并加入第二索引中。
可选的,图5所示装置还可以包括:第二存储单元和索引更新单元,
所述第二存储单元,用于在所述第一存储设备组的接口设备中的第一索引中不存在与所述用户数据中的用户标识对应的存储设备组标识时,将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
所述索引更新单元,用于将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
当第一索引中不存在与所述用户标识对应的存储设备组标识时,说明该用户的用户数据未存储过,因此本次是该用户的用户数据的第一次存储。由于第一存储设备组是接收该用户数据的设备组,因此可以直接将用户数据存储到第一存储设备组的存储设备中,并根据此次存储操作更新第一索引,同时将增加的索引数据同步到其他存储设备组的第一索引中,以保证各存储设备组的第一索引的一致性。
本发明实施例提供的一种数据存储装置,第一存储设备组中的接口设备接收用户数据;确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。由于第一索引中每个用户标识仅对应一个存储设备组标识,因此本发明通过第一索引进行数据存储时,可以将同一用户的用户数据存储到同一存储设备组的存储设备中。这样,当需要查找某用户的用户数据时,只需要从一个存储设备组中提取数据即可,无需从多个存储设备组中提取数据,提高了数据提取的速度。同时,由于同一用户的用户数据仅会存储到一个存储设备组中,因此对同一用户的用户数据的维护也仅限于一个存储设备组,更加方便。
与图4所示方法相对应,本发明实施例还提供了一种数据读取装置。
本发明实施例提供的一种数据读取装置,可以应用于图1所示的分布式存储系统中,所述分布式存储系统包括多个存储设备组001,每个存储设备组001中均包括至少一个接口设备002及至少一个存储设备003,各所述接口设备002中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,如图6所示,该数据读取装置可以包括:请求接收单元400、索引确定单元500和数据获取单元600,
所述请求接收单元400,用于第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
其中,数据获取请求可以是用户通过用户设备发送的。
可以理解的是,数据获取请求所请求的数据可以是用户数据,用户数据可以包括:用户身份标识、用户视频浏览信息等。其中,用户视频浏览信息可能会跟随时间的推移而变化,因此,本发明在从存储设备中获取数据之前可以首先对数据进行更新。
所述索引确定单元500,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述数据获取单元600;
所述数据获取单元600,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
其中,所述数据获取单元600,可以包括:标识判断子单元、第一发送子单元和第二发送子单元,
所述标识判断子单元,用于判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,如果是,则触发所述第一发送子单元;如果不是,则触发所述第二发送子单元;
所述第一发送子单元,用于从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,
所述第二发送子单元,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
本发明实施例提供的一种数据读取装置,仅需在一个存储设备组中获取用户数据并反馈给用户设备,无需跨存储设备组操作,更加快捷和方便。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种数据存储方法,其特征在于,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述方法包括:
第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;
如果存在,则将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一存储设备组的接口设备中的第一索引中不存在与所述用户数据中的用户标识对应的存储设备组标识,则将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
3.根据权利要求1或2所述的方法,其特征在于,所述将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中,包括:
确定与所述用户数据中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识;
如果是,则将所述用户数据存储到所述第一存储设备组的存储设备中;
如果不是,则将接收的用户数据发送到具有所述存储设备组标识的存储设备组以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
4.根据权利要求1或2所述的方法,其特征在于,各存储设备组之间通过中间件进行通信。
5.一种数据读取方法,其特征在于,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述方法包括:
第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;
如果存在,则从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
6.根据权利要求5所述的方法,其特征在于,所述从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,包括:
判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,
如果是,则从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,
如果不是,则从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
7.根据权利要求5或6所述的方法,其特征在于,各存储设备组之间通过中间件进行通信。
8.一种数据存储装置,其特征在于,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述装置包括:数据接收单元、标识确定单元和第一存储单元,
所述数据接收单元,用于第一存储设备组中的接口设备接收用户数据,其中,所述用户数据中携带有用户的用户标识;
所述标识确定单元,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述用户数据中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述第一存储单元;
所述第一存储单元,用于将接收的用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组中的存储设备中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:第二存储单元和索引更新单元,
所述第二存储单元,用于在所述第一存储设备组的接口设备中的第一索引中不存在与所述用户数据中的用户标识对应的存储设备组标识时,将接收的用户数据存储在所述第一存储设备组的存储设备中,并在所述第一存储设备组的接口设备中的第一索引中建立包括所述用户数据中的用户标识和所述第一存储设备组的存储设备组标识的索引数据;
所述索引更新单元,用于将建立的索引数据发送到其他存储设备组中以将建立的索引数据同步到所述其他存储设备组中的第一索引中。
10.根据权利要求8或9所述的装置,其特征在于,所述第一存储单元包括:标识确定子单元、数据存储子单元和数据发送子单元,
所述标识确定子单元,用于确定与所述用户数据中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识;如果是,则触发所述数据存储子单元;如果不是,则触发所述数据发送子单元;
所述数据存储子单元,用于将所述用户数据存储到所述第一存储设备组的存储设备中;
所述数据发送子单元,用于将接收的用户数据发送到具有所述存储设备组标识的存储设备组以将所述用户数据存储到具有与所述用户数据中的用户标识对应的存储设备组标识的存储设备组的存储设备中。
11.一种数据读取装置,其特征在于,应用于分布式存储系统中,所述分布式存储系统包括多个存储设备组,每个存储设备组中均包括至少一个接口设备及至少一个存储设备,各所述接口设备中均存储有第一索引,所述第一索引中存储有用户标识与存储设备组标识的对应关系,所述装置包括:请求接收单元、索引确定单元和数据获取单元,
所述请求接收单元,用于第一存储设备组中的接口设备接收数据获取请求,其中,所述数据获取请求中携带有所请求的数据对应的用户的用户标识;
所述索引确定单元,用于确定所述第一存储设备组的接口设备中的第一索引中是否存在与所述数据获取请求中的用户标识对应的存储设备组标识,其中,所述第一索引中每个用户标识仅对应一个存储设备组标识;如果存在,则触发所述数据获取单元;
所述数据获取单元,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
12.根据权利要求11所述的装置,其特征在于,所述数据获取单元,包括:标识判断子单元、第一发送子单元和第二发送子单元,
所述标识判断子单元,用于判断与所述数据获取请求中的用户标识对应的存储设备组标识是否为所述第一存储设备组的标识,如果是,则触发所述第一发送子单元;如果不是,则触发所述第二发送子单元;
所述第一发送子单元,用于从所述第一存储设备组的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方,
所述第二发送子单元,用于从具有与所述数据获取请求中的用户标识对应的存储设备组标识的其他存储设备组中的存储设备中获取所述数据获取请求所请求的数据并发送到所述数据获取请求的发送方。
CN201710657523.7A 2017-08-03 2017-08-03 数据存储、读取方法及装置 Active CN107463670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710657523.7A CN107463670B (zh) 2017-08-03 2017-08-03 数据存储、读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710657523.7A CN107463670B (zh) 2017-08-03 2017-08-03 数据存储、读取方法及装置

Publications (2)

Publication Number Publication Date
CN107463670A true CN107463670A (zh) 2017-12-12
CN107463670B CN107463670B (zh) 2020-06-05

Family

ID=60548181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710657523.7A Active CN107463670B (zh) 2017-08-03 2017-08-03 数据存储、读取方法及装置

Country Status (1)

Country Link
CN (1) CN107463670B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427427A (zh) * 2011-12-06 2012-04-25 中国科学院计算机网络信息中心 在哈希网络中查询解析服务器的方法及索引服务器
CN103425785A (zh) * 2013-08-22 2013-12-04 新浪网技术(中国)有限公司 数据存储系统及其用户数据存储、读取方法
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
CN105069101A (zh) * 2015-08-07 2015-11-18 桂林电子科技大学 分布式索引构建及检索方法
CN105653406A (zh) * 2015-12-31 2016-06-08 华为技术有限公司 一种管理分布式存储系统的方法及分布式存储系统
CN105704173A (zh) * 2014-11-25 2016-06-22 中国移动通信集团福建有限公司 一种集群系统数据分布方法及服务器
CN106776785A (zh) * 2016-11-24 2017-05-31 腾讯科技(深圳)有限公司 一种数据写入方法及装置和数据处理系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427427A (zh) * 2011-12-06 2012-04-25 中国科学院计算机网络信息中心 在哈希网络中查询解析服务器的方法及索引服务器
CN103425785A (zh) * 2013-08-22 2013-12-04 新浪网技术(中国)有限公司 数据存储系统及其用户数据存储、读取方法
CN104956311A (zh) * 2013-10-09 2015-09-30 株式会社日立制作所 存储系统以及存储控制方法
CN105704173A (zh) * 2014-11-25 2016-06-22 中国移动通信集团福建有限公司 一种集群系统数据分布方法及服务器
CN105069101A (zh) * 2015-08-07 2015-11-18 桂林电子科技大学 分布式索引构建及检索方法
CN105653406A (zh) * 2015-12-31 2016-06-08 华为技术有限公司 一种管理分布式存储系统的方法及分布式存储系统
CN106776785A (zh) * 2016-11-24 2017-05-31 腾讯科技(深圳)有限公司 一种数据写入方法及装置和数据处理系统

Also Published As

Publication number Publication date
CN107463670B (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
CN101984692B (zh) 一种防止恶意软件发送数据的方法及装置
CN105900466B (zh) 消息处理方法及装置
CN109062489B (zh) 消息处理方法、装置、存储介质及电子装置
CN105915650B (zh) 负载均衡方法和装置
CN105701096A (zh) 索引生成方法、数据查询方法、装置及系统
US20160125363A1 (en) Attendance system and method
CN103823801B (zh) 一种在移动终端中实现网页分享的方法、装置及系统
CN103561086A (zh) 呈现日程提醒信息的方法、终端设备及云服务器
CN102857564B (zh) 一种数据同步方法、终端及系统
CN103414765B (zh) 图形码中信息的分流方法、装置及系统
CN103713807A (zh) 一种信息处理方法和装置
CN114726947B (zh) 消息展示方法、装置、用户终端及可读存储介质
CN106325878B (zh) 图片批量上传或下载的进度显示方法及装置
CN103701653B (zh) 一种接口热插拔配置数据的处理方法及网络配置服务器
CN101207878A (zh) 用户识别模块应用开发工具箱管理方法和装置
CN106255082A (zh) 一种垃圾短信的识别方法及系统
CN104301490A (zh) 一种将通信对象与记录相关联的方法及智能移动终端
CN103973884B (zh) 信息的显示方法、装置及终端
CN103188368B (zh) 数据传输的方法及其通信终端
CN107659493A (zh) 一种即时通信消息的处理方法和装置
EP2370920B1 (en) Method, apparatus and computer program for enabling access to content
CN107800776A (zh) 一种文件处理方法、终端、服务器及计算机可读介质
CN107463670A (zh) 数据存储、读取方法及装置
CN106469166B (zh) 一种信息处理方法及装置
CN106878286A (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