CN111913801A - 数据处理方法和装置、代理服务器、存储系统及存储介质 - Google Patents

数据处理方法和装置、代理服务器、存储系统及存储介质 Download PDF

Info

Publication number
CN111913801A
CN111913801A CN202010679849.1A CN202010679849A CN111913801A CN 111913801 A CN111913801 A CN 111913801A CN 202010679849 A CN202010679849 A CN 202010679849A CN 111913801 A CN111913801 A CN 111913801A
Authority
CN
China
Prior art keywords
data
information
target
skip list
score information
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
CN202010679849.1A
Other languages
English (en)
Other versions
CN111913801B (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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202010679849.1A priority Critical patent/CN111913801B/zh
Publication of CN111913801A publication Critical patent/CN111913801A/zh
Application granted granted Critical
Publication of CN111913801B publication Critical patent/CN111913801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请提供的数据处理方法和装置、代理服务器、存储系统及存储介质,涉及存储技术领域。在本申请中,首先,获得多个数据集,其中,每个数据集包括至少一组用户数据,每组用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成。其次,通过跳表操作分别将每个数据集存储至多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,且该跳表结构包括身份信息与分数信息之间的对应关系、基于该分数信息形成的排序信息。通过上述方法,可以改善现有的存储技术中不同存储服务器之间容易出现存储失衡的问题。

Description

数据处理方法和装置、代理服务器、存储系统及存储介质
技术领域
本申请涉及存储技术领域,具体而言,涉及一种数据处理方法和装置、代理服务器、存储系统及存储介质。
背景技术
在一些提供数据服务的应用中,需要对多个(海量,如十万级、百万级等)用户的分数信息进行存储,以在需要获取目标用户的分数信息时,可以从存储设备中进行获取。但是,经发明人研究发现,在现有的存储技术,不同存储服务器之间容易出现存储失衡的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法和装置、代理服务器、存储系统及存储介质,以改善现有的存储技术中不同存储服务器之间容易出现存储失衡的问题。
为实现上述目的,本申请实施例采用如下技术方案:
一种数据处理方法,应用于分布式存储系统中的代理服务器,该分布式存储系统还包括多个存储服务器,所述方法包括:
获得多个数据集,其中,每个所述数据集包括至少一组用户数据,每组所述用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成;
通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,且该跳表结构包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。
在本申请实施例较佳的选择中,在上述数据处理方法中,还包括:
基于获得的排行榜请求信息确定第一数量,其中,该第一数量为需要获取的用户数据的目标组数;
针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据;
在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据,其中,该第二数量为第一数量与所述跳表结构的数量的乘积。
在本申请实施例较佳的选择中,在上述数据处理方法中,还包括:
基于所述对应关系,获得第一目标身份信息对应的第一目标分数信息;
针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一目标分数信息对应的排序信息,得到多个排名信息;
基于所述多个排名信息,得到所述第一目标身份信息对应的目标用户在所有用户中的排名信息。
在本申请实施例较佳的选择中,在上述数据处理方法中,还包括:
在对第二目标身份信息对应的分数信息进行更新之后,在基于更新后的分数信息对该第二目标身份信息所在的跳表结构中的排序信息进行更新操作时,判断该更新操作是否失败;
若所述更新操作失败,则在所述第二目标身份信息所在的跳表结构中,将更新后的分数信息变更为更新之前的分数信息。
在本申请实施例较佳的选择中,在上述数据处理方法中,所述获得多个数据集的步骤,包括:
获得多组用户数据;
将所述多组用户数据分为多个数据集。
本申请实施例还提供了一种数据处理装置,应用于分布式存储系统中的代理服务器,该分布式存储系统还包括多个存储服务器,所述装置包括:
数据获得模块,用于获得多个数据集,其中,每个所述数据集包括至少一组用户数据,每组所述用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成;
数据存储模块,用于通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,该跳表结构包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。
在本申请实施例较佳的选择中,在上述数据处理装置中,还包括:
数量确定模块,用于基于获得的排行榜请求信息确定第一数量,其中,该第一数量为需要获取的用户数据的目标组数;
数据获取模块,用于针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据;
数据确定模块,用于在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据,其中,该第二数量为第一数量与所述跳表结构的数量的乘积。
在上述基础上,本申请实施例还提供了一种代理服务器,包括:
存储器,用于存储计算机程序;
与所述存储器连接的处理器,用于执行该存储器存储的计算机程序,以实现上述的数据处理方法。
在上述基础上,本申请实施例还提供了一种分布式存储系统,包括:
上述的代理服务器;
与所述代理服务器连接的多个存储服务器,用于分别以跳表结构的形式存储所述代理服务器获得的每个数据集。
在上述基础上,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被执行时,实现上述的数据处理方法。
本申请提供的数据处理方法和装置、代理服务器、存储系统及存储介质,通过将获得的基于相同评价对象形成的多个数据集,基于跳表操作分别存储至多个存储服务器中对应的目标服务器,以在该目标服务器上形成跳表结构,以实现不同数据集的分别存储。如此,使得基于相同评价对象形成的多个数据集(如一个数据榜单)中的每一个数据集(如构成一个数据榜单的多个部分数据中的每一个部分数据),分别存储于不同的存储服务器,相较于直接将相同评价对象形成的多个数据集存储于同一存储服务器、不同评价对象形成的数据集分别存储于不同存储设备的技术方案,可以避免由于基于个别评价对象形成的数据集的数据量较大而导致对应存储服务器的存储较大的问题,进而改善不同存储服务器之间容易出现存储失衡的问题,能够保证多个存储服务器构成的分布式存储系统在整体上具有较好的存储性能,以实现可靠地数据提供服务实用价值较高。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1为现有的一种分布式存储技术的交互示意图。
图2为本申请实施例提供的分布式存储系统的系统交互示意图。
图3为本申请实施例提供的代理服务器的结构框图。
图4为本申请实施例提供的数据处理方法的流程示意图。
图5为图4中步骤S110包括的子步骤的流程示意图。
图6为本申请实施例提供的跳表结构的示意图。
图7为本申请实施例提供的数据处理方法包括的排名信息查询步骤的流程示意图。
图8为本申请实施例提供的数据处理方法包括的更新操作失败时更新回转步骤的流程示意图。
图9为本申请实施例提供的数据处理方法包括的TOP榜数据获取步骤的流程示意图。
图10为本申请实施例提供的数据处理装置包括的各功能模块的方框示意图。
图标:10-代理服务器;12-存储器;14-处理器;100-数据处理装置;110-数据获得模块;120-数据存储模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为现有技术中的一种分布式的数据存储系统。其中,该数据存储系统可以包括代理服务节点和多个存储节点。
详细地,所述代理服务节点在获取到来自于客户端的多个数据榜单时,可以分别将不同的数据榜单存储至不同的存储节点,例如,可以将数据榜单1(如直播应用中主播的粉丝量排行榜)存储至存储节点1、将数据榜单2(如直播应用中观众的礼物量排行榜)存储至存储节点2、将数据榜单3(如包括主播和观众的所有用户的直播软件使用时长排行榜)存储至存储节点3。
如此,在上述技术方案中,虽然将不同的数据榜单分别存储至不同的存储节点,可以避免将所有的数据榜单都存储至一个存储节点而导致该存储节点容易过载的问题。但是,经过本申请的发明人的研究发现,不同的数据榜单的数据量之间可能会存在较大的差异,如上述示例中,数据榜单1的数据量和数据榜单2的数据量,都会远小于数据榜单3的数据量,这就会导致存储节点3与存储节点1和存储节点2之间容易出现存储失衡的问题,从而影响上述数据存储系统整体的存储性能。
需要说明的是,一般在同一个应用环境中,不同的数据榜单之间的数据差异不会太大,如此,使得上述技术问题属于较为隐秘的技术问题,只有在经过如本申请的发明人的长期研究之后,才能够发现。
基于此,本申请的发明人基于上述技术问题的发现,为了克服该技术问题,创造性地提供了一种解决方案,如下所述。
如图2所示,本申请实施例提供一种分布式存储系统。其中,该分布式存储系统可以包括代理服务器和多个存储服务器。
详细地,所述代理服务器可以与所述多个存储服务器分别连接,使得该代理服务器在获得多个数据集之后,可以通过不同的存储服务器以跳表结构的形式存储每个所述数据集。
结合图3,本申请实施例还提供一种代理服务器10,可应用于上述的分布式存储系统。其中,该代理服务器10可以包括存储器12、处理器14和数据处理装置100。
详细地,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据处理装置可以包括,至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述数据处理装置所包括的软件功能模块及计算机程序等,以实现本申请实施例提供的数据处理方法,从而通过不同的存储服务器存储不同的数据集。
可选地,所述存储器12可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
并且,所述处理器14可以是一种通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)、片上系统(System onChip,SoC)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图3所示的结构仅为示意,所述代理服务器10还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置,例如,还可以包括用于与其它设备(如上述分布式存储系统中的存储服务器)进行信息交互的通信单元。
结合图4,本申请实施例还提供一种数据处理方法,可应用于上述的代理服务器10。其中,所述数据处理方法有关的流程所定义的方法步骤可以由所述代理服务器10实现。下面将对图4所示的具体流程,进行详细阐述。
步骤S110,获得多个数据集。
在本实施例中,所述代理服务器10可以先获得多个数据集。
其中,每个所述数据集可以包括至少一组用户数据,每组所述用户数据可以包括用户的身份信息和分数信息,且不同用户的分数信息可以基于相同评价对象形成。也就是说,所述多个数据集包括的不同用户的用户数据可以基于相同评价对象形成。
步骤S120,通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构。
在本实施例中,在基于步骤S110获得所述多个数据集之后,所述代理服务器10可以通过执行跳表操作,分别将每个所述数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,从而通过形成的多个跳表结构分别存储所述多个数据集。
其中,不同数据集对应的目标服务器可以不同,且所述跳表结构可以包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。也就是说,在所述跳表结构中,不同用户的用户数据是基于分数信息形成的排序信息进行排序。
基于上述方法,可以使得基于相同评价对象形成的多个数据集(如一个数据榜单)中的每一个数据集(如构成一个数据榜单的多个部分数据中的每一个部分数据),分别存储于不同的存储服务器,相较于直接将相同评价对象形成的多个数据集存储于同一存储服务器、不同评价对象形成的数据集分别存储于不同存储设备的技术方案,可以避免由于基于个别评价对象形成的数据集的数据量较大而导致对应存储服务器的存储较大的问题,进而改善不同存储服务器之间容易出现存储失衡的问题。
并且,基于跳表结构对数据集进行存储,还可以避免分别基于哈希算法对身份信息与分数信息之间的对应关系、分数信息与排名信息之间的对应关系进行存储,在需要查询目标用户的分数排名时,因需要进行两次哈希操作(第一次执行哈希操作,基于目标用户的身份信息查找到对应的分数信息,第二次执行哈希操作,基于该分数信息查找到对应的排名信息)而导致查询时间过长的问题。
第一方面,对于步骤S110需要说明的是,执行步骤S110以获得多个数据集的方式不受限制,可以根据实际应用需求进行选择。
例如,在一种可以替代的示例中,可以直接从其它设备获取多个数据集,如此,可以降低所述代理服务器10的数据处理量。
又例如,在另一种可以替代的示例中,为了减少设备之间的交互量,结合图5,步骤S110可以包括步骤S111和步骤S112,具体内容如下所述。
步骤S111,获得多组用户数据。
在本实施例中,可以先获得针对相同评价对象形成的多组用户数据,即得到多个用户的用户数据。
步骤S112,将所述多组用户数据分为多个数据集。
在本实施例中,在基于步骤S111获得所述多组用户数据之后,可以对该多组用户数据进行划分,得到多个数据集。
基于此,可以将针对相同评价对象形成的多组用户数据,划分为多个不同的数据集。也就是说,可以将一个数据榜单划分为多个数据子榜单,每一个数据子榜单形成一个数据集。
可选地,执行步骤S111获得的多组用户数据包括的具体信息内容不受限制,可以根据实际应用需求进行选择。
例如,针对所述用户数据包括的分数信息,既可以是基于同一个评价对象(如直播应用中主播的粉丝量)形成,也可以是基于相同的多个评价对象(如直播应用中主播的粉丝量和礼物量)形成。
其中,在所述分数信息基于同一个评价对象形成时,既可以将评价对象直接作为分数信息(基于前述的示例,可以直接将主播的粉丝量作为分数信息,如粉丝量为100万,则分数信息为100万),也可以将评价对象进行转换得到分数信息(基于前述的示例,可以将主播的粉丝量进行转换得到分数信息,如粉丝量为100万,则分数信息为100万/最大粉丝量)。
在所述分数信息基于相同的多个评价对象形成时,既可以是将多个评价对象进行直接相加得到分数信息(基于前述的示例,可以将主播的粉丝量和礼物量进行相加,如粉丝量为100万、礼物量为20万,则分数信息可以为120万),也可以是将多个评价对象进行加权求和得到分数信息(基于前述的示例,可以将主播的粉丝量和礼物量进行加权求和,如粉丝量为100万、权重系数为0.2,礼物量为20万、权重系数为0.8,则分数信息可以为36万)。
可选地,执行步骤S112以对多组用户数据进行划分处理的具体方式也不受限制,可以根据实际应用需求进行选择。
例如,在一种可以替代的示例中,在确定需要形成的数据集的数量之后,可以基于该数量对所述多组数据进行随机划分,以形成对应数量个数据集即可。
又例如,在另一种可以替代的示例中,在确定需要形成的数据集的数量之后,可以基于一定的规则(如基于目标用户的身份信息的注册时间的先后、分数信息的大小等)进行划分。
详细地,在一种具体的应用示例中,获得的多个用户数据可以如下表:
身份信息 分数信息 注册时间
Angd 1600 2019-10-11
Skha 250 2019-03-04
Asfa 360 2020-06-07
Daw 790 2020-01-06
Afe 880 2018-06-01
Hdtrh 33 2018-12-12
Dqw 765 2019-11-11
Skgh 689 2020-01-01
Gngf 222 2018-03-03
基于上表所示的多个用户数据,若需要的数据集为3个,可以分别基于注册时间是否属于同一年进行划分,如此,可以得到第一个数据集“Gngf-222、Afe-880、Hdtrh-33”,第二个数据集“Skha-250、Angd-1600、Dqw-765”,第三个数据集“Skgh-689、Daw-790、Asfa-360”。
第二方面,对于步骤S120需要说明的是,将数据集存储至对应的目标服务器的具体方式不受限制,可以根据实际应用需求进行选择。
例如,在一种可以替代的示例中,可以在所述多个存储服务器中随机对每一个数据集进行目标服务器的确定,然后,在基于确定的目标服务器,通过跳表操作分别将每个所述数据集存储至对应的目标服务器。
又例如,在另一种可以替代的示例中,考虑到在一些情况下,获得的多个数据集之间数据量会存在一定的差异,每个所述存储服务器之间的有效剩余容量也会存在一定的差异,也可以基于每个所述数据集的数据量和每个所述存储服务器的有效剩余容量,为每个所述数据集确定对应的目标服务器,如将数据量最大的数据集的目标服务器确定为,有效剩余容量最大的存储服务器,将数据量最小的数据集的目标服务器确定为,有效剩余容量最小的存储服务器。如此,可以进一步使得不同存储服务器之间的存储更为的均衡,从而保证分布式存储系统整体上具有较好的存储性能。
并且,对于步骤S120还需要说明的是,通过跳表操作形成的跳表结构,也可以称为跳跃表,是一种增加了向前指针的链表,即在有序链表的基础上增强了多级索引,如此,可以提高信息查找、插入和删除的性能。
其中,上述的多级索引可以是指,基于每一个用户数据中的分数信息形成的排序信息。
进一步地,在基于上述方法,将多个数据集存储至多个存储服务器之后,可能需要基于存储的多个数据集,获得目标用户基于分数信息在所有用户中的排名信息。因此,在本申请实施例中,所述数据处理方法还可以包括确定用户排名信息的步骤。
其中,基于上述存储多个数据集的具体方式不同,确定用户的排名信息的方式也可以不同。
例如,在一种可以替代的示例中,为了提高获得目标用户的排名信息的便捷性。在执行步骤S120时,可以按照用户的分数信息的大小来确定目标服务器,如前述示例中,9个用户的9个分数信息“1600、250、360、790、880、33、765、689、222”,如此,若需要形成3个数据集,第一个数据集中的分数信息可以包括“1600、880、790”,第二个数据集中的分数信息可以包括“765、689、360”,第三个数据集中的分数信息可以包括“250、222、33”。
基于此,在获得目标用户的分数信息之后,可以先确定该分数信息在对应的存储服务器(目标服务器)的所有分数信息中的排名信息,然后,在基于各存储服务器存储的分数信息的大小关系之后,确定目标用户的分数信息在所有用户的分数信息中的排名信息,即目标用户在所有的用户中的排名信息。如目标用户的分数信息为689,该分数信息在对应的存储服务器上跳表结构(如图6所示)的排名信息为2,存储的分数信息大于该存储服务器的其它存储服务器还有一个,且该其它存储服务器存储的分数信息有3个,因而,可以得到目标用户的分数信息在所有用户的分数信息中的排名信息为2+3=5。
又例如,在另一种可以替代的示例中,为了提高执行步骤S120的效率,且为了便于在形成所述多个数据集且分别存储至不同的存储服务器之后,便于对分数信息进行修改,且便于对新增的用户数据进行存储,所述多个数据集的形成可以不依赖于包括的分数信息的大小关系。
基于此,为了确定用户的排名信息,结合图7,所述数据处理方法还可以包括步骤S130、步骤S140和步骤S150,具体内容如下所述。
步骤S130,基于所述对应关系,获得第一目标身份信息对应的第一目标分数信息。
在本实施例中,在基于步骤S120将多个数据集包括的多个用户的用户数据分别存储至不同的存储服务器之后,若需要第一目标身份信息对应的目标用户在所有用户中的排名信息,所述代理服务器10可以基于存储服务器上的跳表结构包括的对应关系,获得该第一目标身份信息对应的第一目标分数信息。
步骤S140,针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一目标分数信息对应的排序信息,得到多个排名信息。
在本实施例中,在基于步骤S130获得所述第一目标分数信息之后,所述代理服务器10还可以基于该第一目标分数信息对应的排序信息,在每个存储服务器上的跳表结构中,确定对应的排名信息。如此,针对多个跳表结构,可以得到多个排名信息。
步骤S150,基于所述多个排名信息,得到所述第一目标身份信息对应的目标用户在所有用户中的排名信息。
在本实施例中,在基于步骤S140获得所述多个排名信息之后,可以基于该多个排名信息得到所述第一目标身份信息对应的目标用户在所有用户中的排名信息。
例如,在一种具体的应用示例中,结合前述的示例,获得的三个数据集分别为,第一个数据集“Gngf-222、Afe-880、Hdtrh-33”,第二个数据集“Skha-250、Angd-1600、Dqw-765”,第三个数据集“Skgh-689、Daw-790、Asfa-360”。如此,若所述第一目标身份信息为Dqw,基于步骤S130可以得到对应的第一目标分数信息为765,基于步骤S140可以得到三个排名信息,分别为在第一个数据集对应的跳表结构中的排名信息为2(即大于所述第一目标分数信息的分数信息为一个)、在第二个数据集对应的跳表结构中的排名信息为2(即大于所述第一目标分数信息的分数信息为一个)、在第三个数据集对应的跳表结构中的排名信息为2(即大于所述第一目标分数信息的分数信息为一个),如此,进行排名信息的叠加,得到所述第一目标身份信息对应的目标用户在所有用户中的排名信息为4。
进一步地,在基于上述方法,将多个数据集存储至多个存储服务器之后,可能需要基于对分数信息进行更新处理,并基于更新后的分数信息进行排序信息的更新处理。因此,在本申请实施例中,所述数据处理方法还可以包括对排序信息进行更新处理的步骤。
但是,在经过本申请的发明人的长期研究之后,发现更新处理的过程中,可能出现失败的情况(如宕机或网络故障等因素),而为了避免因该失败而导致存储的数据不准确的问题,在所述多个数据集的形成与存储不依赖于包括的分数信息的大小关系(即变更分数信息时不会引起存储该分数信息的跳表结构或存储服务器发送变更)的基础上,结合图8,所述数据处理方法还可以包括步骤S160和步骤S170,具体内容如下所述。
步骤S160,在对第二目标身份信息对应的分数信息进行更新之后,在基于更新后的分数信息对该第二目标身份信息所在的跳表结构中的排序信息进行更新操作时,判断该更新操作是否失败。
在本实施例中,在对第二目标身份信息对应的分数信息进行更新之后,所述代理服务器10还可以判断基于更新后的分数信息对该第二目标身份信息所在的跳表结构中的排序信息进行的更新操作是否失败。
其中,若所述更新操作失败,可以执行步骤S170。
步骤S170,在所述第二目标身份信息所在的跳表结构中,将更新后的分数信息变更为更新之前的分数信息。
在本实施例中,在基于步骤S160判定所述更新操作失败之后,所述代理服务器10可以在所述第二目标身份信息所在的跳表结构中,将更新后的分数信息变更为更新之前的分数信息。如此,可以保证存储的分数信息和对应形成的排序信息具有高度的一致性,使得存储的信息具有较高的准确度。
对于步骤S160和步骤S170需要说明的是,由于所述多个数据集的形成与存储不依赖于分数信息的大小关系,如此,使得对不同存储服务器上的跳表结构进行排序信息的更新时,不会相互产生影响,进而保证在发生更新失败时,仅需要对对应的跳表结构进行更新回转处理即可,而不会因所述多个数据集的形成与存储不依赖于包括的分数信息的大小关系而使得一个分数信息变化之后可能需要对多个跳表结构进行更新,进而避免因一个跳表结构更新失败而需要对多个跳变结构进行更新回转处理的问题。
进一步地,在基于上述方法,将多个数据集存储至多个存储服务器之后,可能还需要提供TOPn(榜单排序前n)的用户数据。因此,本申请实施例还提供一种提供TOPn的用户数据的步骤。
其中,上述提供TOPn的用户数据的步骤包括的具体内容不受限制,可以根据实际应用需求进行选择。
例如,在一种可以替代的示例中,若所述多个数据集的形成与存储依赖于分数信息的大小关系,如此,在需要提供TOPn的用户数据时,可以根据各存储服务器存储的分数信息的大小关系,确定出对应的一个或多个存储服务器,然后,在该一个或多个存储服务器上获取对应的用户数据即可。
又例如,在另一种可以替代的示例中,若所述多个数据集的形成与存储不依赖于分数信息的大小关系,为了提供TOPn的用户数据,结合图9,所述数据处理方法还可以包括步骤S180、步骤S190和步骤S200,具体内容如下所述。
步骤S180,基于获得的排行榜请求信息确定第一数量。
在本实施例中,在需要提供TOPn的用户数据时,所述代理服务器10可以基于该TOPn对应的排行榜请求信息确定第一数量。
其中,所述第一数量为需要获取的用户数据的目标组数,如上述的n。
步骤S190,针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据。
在本实施例中,在基于步骤S180获得所述第一数量之后,所述代理服务器10还可以基于该第一数量,在每个所述存储服务器上的跳变结构中,集合该跳表结构中的排序信息,获得排序在前的第一数量组用户数据。
如此,可以获得第二数量组用户数据,其中,该第二数量为所述第一数量与所述跳表结构的数量的乘积。
步骤S200,在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据。
在本实施例中,在基于步骤S190获得第二数量组用户数据之后,所述代理服务器10还可以在该第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据。如此,可以得到所有用户数据中,分数信息最大的第一数量组用户数据,即TOPn的用户数据。
详细地,在一种具体的应用示例中,结合前述的示例,获得的三个数据集分别为,第一个数据集“Gngf-222、Afe-880、Hdtrh-33”,第二个数据集“Skha-250、Angd-1600、Dqw-765”,第三个数据集“Skgh-689、Daw-790、Asfa-360”。其中,第一个数据集通过第一跳表结构“Afe-880、Gngf-222、Hdtrh-33”存储,第二个数据集通过第二跳表结构“Angd-1600、Dqw-765、Skha-250”存储,第三个数据集通过第三跳表结构“Daw-790、Skgh-689、Asfa-360”存储。
如此,若需要获取TOP2的用户数据,需要在第一跳表结构、第二跳表结构和第三跳表结构中分别获取排序在前的2组用户数据,从而得到6组用户数据,如Afe-880、Gngf-222、Angd-1600、Dqw-765、Daw-790、Skgh-689。然后,再从获得的6组用户数据中,确定出分数信息最大的2组用户数据,如Angd-1600、Afe-880。
结合图10,本申请实施例还提供一种数据处理装置100,可以应用于上述的代理服务器10。其中,所述数据处理装置100可以包括数据获得模块110和数据存储模块120。
所述数据获得模块110,可以用于获得多个数据集,其中,每个所述数据集包括至少一组用户数据,每组所述用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成。在本实施例中,所述数据获得模块110可用于执行图4所示的步骤S110,关于所述数据获得模块110的相关内容可以参照前文对步骤S110的描述。
所述数据存储模块120,可以用于通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,该跳表结构包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。在本实施例中,所述数据存储模块120可用于执行图4所示的步骤S120,关于所述数据存储模块120的相关内容可以参照前文对步骤S120的描述。
其中,所述数据处理装置100还可以包括其它模块,例如,在一种可以替代的示例中,该数据处理装置100还可以包括数量确定模块、数据获取模块和数据确定模块。
所述数量确定模块,可以用于基于获得的排行榜请求信息确定第一数量,其中,该第一数量为需要获取的用户数据的目标组数。在本实施例中,所述数量确定模块可用于执行图9所示的步骤S180,关于所述数量确定模块的相关内容可以参照前文对步骤S180的描述。
所述数据获取模块,可以用于针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据。在本实施例中,所述数据获取模块可用于执行图9所示的步骤S190,关于所述数据获取模块的相关内容可以参照前文对步骤S190的描述。
所述数据确定模块,可以用于在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据,其中,该第二数量为第一数量与所述跳表结构的数量的乘积。在本实施例中,所述数据确定模块可用于执行图9所示的步骤S200,关于所述数据确定模块的相关内容可以参照前文对步骤S200的描述。
在本申请实施例中,对应于上述的数据处理方法,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序运行时执行上述数据处理方法的各个步骤。
其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述数据处理方法的解释说明。
可以理解的是,在前文的各种示例中,“多个”是指,两个或两个以上,如“多个数据集”是指,两个或两个以上的数据集。
综上所述,本申请提供的数据处理方法和装置、代理服务器、存储系统及存储介质,通过将获得的基于相同评价对象形成的多个数据集,基于跳表操作分别存储至多个存储服务器中对应的目标服务器,以在该目标服务器上形成跳表结构,以实现不同数据集的分别存储。如此,使得基于相同评价对象形成的多个数据集(如一个数据榜单)中的每一个数据集(如构成一个数据榜单的多个部分数据中的每一个部分数据),分别存储于不同的存储服务器,相较于直接将相同评价对象形成的多个数据集存储于同一存储服务器、不同评价对象形成的数据集分别存储于不同存储设备的技术方案,可以避免由于基于个别评价对象形成的数据集的数据量较大而导致对应存储服务器的存储较大的问题,进而改善不同存储服务器之间容易出现存储失衡的问题,能够保证多个存储服务器构成的分布式存储系统在整体上具有较好的存储性能,以实现可靠地数据提供服务实用价值较高。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,应用于分布式存储系统中的代理服务器,该分布式存储系统还包括多个存储服务器,所述方法包括:
获得多个数据集,其中,每个所述数据集包括至少一组用户数据,每组所述用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成;
通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,且该跳表结构包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
基于获得的排行榜请求信息确定第一数量,其中,该第一数量为需要获取的用户数据的目标组数;
针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据;
在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据,其中,该第二数量为第一数量与所述跳表结构的数量的乘积。
3.根据权利要求1所述的数据处理方法,其特征在于,还包括:
基于所述对应关系,获得第一目标身份信息对应的第一目标分数信息;
针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一目标分数信息对应的排序信息,得到多个排名信息;
基于所述多个排名信息,得到所述第一目标身份信息对应的目标用户在所有用户中的排名信息。
4.根据权利要求1所述的数据处理方法,其特征在于,还包括:
在对第二目标身份信息对应的分数信息进行更新之后,在基于更新后的分数信息对该第二目标身份信息所在的跳表结构中的排序信息进行更新操作时,判断该更新操作是否失败;
若所述更新操作失败,则在所述第二目标身份信息所在的跳表结构中,将更新后的分数信息变更为更新之前的分数信息。
5.根据权利要求1-4任意一项所述的数据处理方法,其特征在于,所述获得多个数据集的步骤,包括:
获得多组用户数据;
将所述多组用户数据分为多个数据集。
6.一种数据处理装置,其特征在于,应用于分布式存储系统中的代理服务器,该分布式存储系统还包括多个存储服务器,所述装置包括:
数据获得模块,用于获得多个数据集,其中,每个所述数据集包括至少一组用户数据,每组所述用户数据包括用户的身份信息和分数信息,且不同用户的分数信息基于相同评价对象形成;
数据存储模块,用于通过跳表操作分别将每个数据集存储至所述多个存储服务器中该数据集对应的目标服务器,以在该目标服务器上形成跳表结构,其中,不同数据集对应的目标服务器不同,该跳表结构包括所述身份信息与所述分数信息之间的对应关系、基于该分数信息形成的排序信息。
7.根据权利要求6所述的数据处理装置,其特征在于,还包括:
数量确定模块,用于基于获得的排行榜请求信息确定第一数量,其中,该第一数量为需要获取的用户数据的目标组数;
数据获取模块,用于针对每个所述存储服务器上的跳表结构,在该跳表结构中基于所述第一数量和所述排序信息,获得排序在前的第一数量组用户数据;
数据确定模块,用于在获得的第二数量组用户数据中,确定出分数信息最大的第一数量组用户数据,其中,该第二数量为第一数量与所述跳表结构的数量的乘积。
8.一种代理服务器,其特征在于,包括:
存储器,用于存储计算机程序;
与所述存储器连接的处理器,用于执行该存储器存储的计算机程序,以实现权利要求1-5任意一项所述的数据处理方法。
9.一种分布式存储系统,其特征在于,包括:
权利要求8所述的代理服务器;
与所述代理服务器连接的多个存储服务器,用于分别以跳表结构的形式存储所述代理服务器上形成的每个数据集。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被执行时,实现权利要求1-5任意一项所述的数据处理方法。
CN202010679849.1A 2020-07-15 2020-07-15 数据处理方法和装置、代理服务器、存储系统及存储介质 Active CN111913801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010679849.1A CN111913801B (zh) 2020-07-15 2020-07-15 数据处理方法和装置、代理服务器、存储系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010679849.1A CN111913801B (zh) 2020-07-15 2020-07-15 数据处理方法和装置、代理服务器、存储系统及存储介质

Publications (2)

Publication Number Publication Date
CN111913801A true CN111913801A (zh) 2020-11-10
CN111913801B CN111913801B (zh) 2023-08-29

Family

ID=73281618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010679849.1A Active CN111913801B (zh) 2020-07-15 2020-07-15 数据处理方法和装置、代理服务器、存储系统及存储介质

Country Status (1)

Country Link
CN (1) CN111913801B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686697A (zh) * 2020-12-29 2021-04-20 百果园技术(新加坡)有限公司 一种基于多维度的用户行为数据处理方法及装置
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9888062B2 (en) * 2010-12-24 2018-02-06 Kt Corporation Distributed storage system including a plurality of proxy servers and method for managing objects
CN109086133A (zh) * 2018-07-06 2018-12-25 第四范式(北京)技术有限公司 管理内存数据及在内存中维护数据的方法和系统
CN109299100A (zh) * 2018-10-12 2019-02-01 第四范式(北京)技术有限公司 管理内存数据及在内存中维护数据的方法和系统
CN111131333A (zh) * 2020-02-24 2020-05-08 广州虎牙科技有限公司 业务数据推送方法和服务器集群

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9888062B2 (en) * 2010-12-24 2018-02-06 Kt Corporation Distributed storage system including a plurality of proxy servers and method for managing objects
CN109086133A (zh) * 2018-07-06 2018-12-25 第四范式(北京)技术有限公司 管理内存数据及在内存中维护数据的方法和系统
CN109299100A (zh) * 2018-10-12 2019-02-01 第四范式(北京)技术有限公司 管理内存数据及在内存中维护数据的方法和系统
CN111131333A (zh) * 2020-02-24 2020-05-08 广州虎牙科技有限公司 业务数据推送方法和服务器集群

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘昀昊;张敏情;张薇;: "一种基于服务器集的可生存性存储方案", 计算机工程, no. 03 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686697A (zh) * 2020-12-29 2021-04-20 百果园技术(新加坡)有限公司 一种基于多维度的用户行为数据处理方法及装置
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置
CN113468080B (zh) * 2021-06-10 2024-02-09 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置

Also Published As

Publication number Publication date
CN111913801B (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
US10936765B2 (en) Graph centrality calculation method and apparatus, and storage medium
Chen et al. Distributed publish/subscribe query processing on the spatio-textual data stream
CN110287197B (zh) 一种数据存储方法、迁移方法及装置
CN111913801B (zh) 数据处理方法和装置、代理服务器、存储系统及存储介质
CN111031017B (zh) 一种异常业务账号识别方法、装置、服务器及存储介质
EP3221797B1 (en) Testing systems and methods
CN103345508A (zh) 一种适用于社会网络图的数据存储方法及系统
Hassanzadeh-Nazarabadi et al. Decentralized utility-and locality-aware replication for heterogeneous DHT-based P2P cloud storage systems
CN104765749A (zh) 一种数据存储方法及装置
CN109684093B (zh) 数据处理方法及系统
CN112417036A (zh) 分布式存储系统中处理对象的元数据的方法及装置
CN108563698B (zh) 一种HBase表的Region合并方法和装置
CN110162692B (zh) 用户标签确定方法、装置、计算机设备和存储介质
CN110019980B (zh) 索引处理方法、装置、存储介质和计算机设备
CN110069500A (zh) 一种非关系型数据库动态混合索引方法
CN103744933A (zh) 一种基于并行化模块度优化的社区发现方法
CN112084500A (zh) 病毒样本的聚类方法、装置、电子设备和存储介质
US10698955B1 (en) Weighted abstract path graph database partitioning
CN108733707B (zh) 一种确定搜索功能稳定性的方法及装置
CN106789147A (zh) 一种流量分析方法及装置
CN110365783B (zh) 文件部署方法及装置、网络节点及存储介质
CN112380275A (zh) 数据查询方法、装置及电子设备
US20180336278A1 (en) System and method for enabling related searches for live events in data streams
CN107451229B (zh) 一种数据库查询方法和装置
CN108171559B (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