CN104683422B - 数据传输方法及装置 - Google Patents

数据传输方法及装置 Download PDF

Info

Publication number
CN104683422B
CN104683422B CN201310642484.5A CN201310642484A CN104683422B CN 104683422 B CN104683422 B CN 104683422B CN 201310642484 A CN201310642484 A CN 201310642484A CN 104683422 B CN104683422 B CN 104683422B
Authority
CN
China
Prior art keywords
data
key assignments
node
construction key
client
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
Application number
CN201310642484.5A
Other languages
English (en)
Other versions
CN104683422A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310642484.5A priority Critical patent/CN104683422B/zh
Priority to PCT/CN2014/092423 priority patent/WO2015081808A1/en
Publication of CN104683422A publication Critical patent/CN104683422A/zh
Priority to US15/009,413 priority patent/US10212217B2/en
Application granted granted Critical
Publication of CN104683422B publication Critical patent/CN104683422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供一种数据传输方法及装置,可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。其中,方法可以包括:分布式存储系统接收客户端发送的数据以及所述数据的键值;根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及将所述数据对应的构造键值返回所述客户端。

Description

数据传输方法及装置
技术领域
本发明涉及计算机通信技术,尤其涉及一种数据传输方法及装置。
背景技术
传统的无中心分布式存储系统在分配存储控件和查找数据时较为常用的是一致性哈希算法。
一致性哈希算法对数据的键值(KEY)进行一致性哈希后输出的值域在一个固定的环空间中(即最大哈希值紧邻最小哈希值)。对于数据节点而言,通过对各个节点随机赋予一定值,标定它在环空间中的位置,来划分各节点负责存储的哈希值范围,通常每个节点负责该节点与该节点之间的节点区编号区域之间的存储。在分配存储空间和查询数据时,直接对数据键值进行一致性哈希,通过哈希值来分配或者定位存储数据的节点。
这种方法可以实现通过数据键值存储路由,快速的查询和分配空间,但是由于存储空间的分配直接与数据键值相关,必须依赖数据键值进行一致性哈希算法来随机挑选存储节点,导致数据节点的负载和存储分配不均衡。
发明内容
有鉴于此,本发明提供一种数据传输方法及装置,可以避免依赖数据键值进行随机分配存储节点可能带来的负载不均的情况。
本发明实施例提供一种数据传输方法,包括:分布式存储系统接收客户端发送的数据以及所述数据的键值;根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及将所述数据对应的构造键值返回所述客户端。
本发明实施例提供另一种数据传输方法,包括:客户端获取待传输的数据以及所述数据的键值;将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及接收所述分布式存储系统所返回的、与所述数据对应的构造键值。
本发明实施例提供一种数据传输装置,运行于分布式存储系统,包括:数据接收模块,用于接收客户端发送的数据以及所述数据的键值;节点管理模块,用于根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;构造键值生成模块,用于生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及数据返回模块,用于将所述数据对应的构造键值返回所述客户端。
本发明实施例提供另一种数据传输装置,应用于客户端,包括:数据获取模块,用于获取待传输的数据以及所述数据的键值;数据发送模块,用于将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及数据接收模块,用于接收所述分布式存储系统所返回的、与所述数据对应的构造键值。
本发明实施例提供的数据传输方法及装置,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明实施例提供的数据传输方法的具体应用环境。
图2为一种可应用于本发明实施例的用户终端的结构框图。
图3是一种可应用于本发明实施例的服务器的结构框图。
图4为本发明实施例提供的一种数据传输方法的流程图。
图5为本发明实施例提供的另一种数据传输方法的流程图。
图6为图5中根据所述构造键值中的节点路由信息、由对应节点中读取数据的具体流程图。
图7为本发明实施例提供的再一种数据传输方法的流程图。
图8为本发明实施例提供的又一种数据传输方法的流程图。
图9为客户端向分布式存储系统上传数据时的流程示意图。
图10为客户端由分布式存储系统下载数据时的流程示意图。
图11为本发明实施例提供的一种数据传输装置的结构示意图。
图12为本发明实施例提供的另一种数据传输装置的结构示意图。
图13为本发明实施例提供的再一种数据传输装置的结构示意图。
图14为本发明实施例提供的一种数据传输系统的结构示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
本发明实施例所提供的数据传输方法可应用于实现客户端与分布式存储系统之间的数据传输。请参照图1,图1为本发明实施例提供的数据传输方法的具体应用环境,包括客户端10以及分布式存储系统20。客户端10与分布式存储系统20之间通过网络进行数据传输,例如通过互联网、企业内部网、无线网络进行数据传输。
其中,客户端10可以包括用户终端或服务器,分布式存储系统20可以包括多个进行具体数据存储和/或处理的节点,其中节点是虚拟概念而非局限于实体,例如用户终端或服务器等设备都可以作为一个节点。上述客户端以及分布式存储系统中的节点都具有存储器和处理器,存储器可用于存储软件程序以及模块,如本发明实施例中的数据传输方法及装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即在上述的客户端或分布式存储系统的几点内实现数据传输。
用户终端具体可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、车载终端等等。
图2示出了一种可应用于本发明实施例中的用户终端的结构框图。如图2所示,用户终端100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、定位模块112、图像采集模块114、音频模块116、触控屏幕118以及按键模块120。这些组件通过一条或多条通讯总线/信号线122相互通讯。
可以理解,图2所示的结构仅为示意,用户终端100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
存储器102可用于存储软件程序以及模块,如本发明实施例中的数据传输方法及装置对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的数据传输方法。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至用户终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输入装置耦合至CPU以及存储器102。处理器106运行存储器102内的各种软件、指令以执行用户终端100的各种功能以及进行数据处理。
在一些实施例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块110可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global Svstemfor Mobile Communication,GSM)、增强型移动通信技术(EnhancedData GSM Environment,EDGE),宽带码分多址技术(wideband code division multipleaccess,W-CDMA),码分多址技术(Code division access,CDMA)、时分多址技术(timedivision multiple access,TDMA),蓝牙,无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a,IEEE802.11b,IEEE802.11g和/或IEEE802.11n)、网络电话(Voice over intemet protocal,VolP)、全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
定位模块112用于获取用户终端100的当前位置。定位模块112的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
图像采集模块114用于拍摄照片或者视频。拍摄的照片或者视频可以存储至存储器102内,并可通过射频模块110发送。
音频模块116向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接108处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接108中以进行进一步的处理。音频数据可以从存储器102处或者通过射频模块110获取。此外,音频数据也可以存储至存储器102中或者通过射频模块110进行发送。在一些实例中,音频模块116还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
触控屏幕118在用户终端100与用户之间同时提供一个输出及输入界面。具体地,触控屏幕118向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕118还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕118显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
按键模块120同样提供用户向用户终端100进行输入的接口,用户可以通过按下不同的按键以使用户终端100执行不同的功能。
图3为一种可应用于本发明实施例的中的服务器的结构框图。如图3所示,服务器200包括:存储器201、处理器202以及网络模块203。可以理解,图3所示的结构仅为示意,其并不对管理客户端10或分布式存储系统20中节点的结构造成限定。例如,客户端1O或分布式存储系统20中的节点还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器201可用于存储软件程序以及模块,如本发明实施例中的数据传输方法及装置对应的程序指令/模块,处理器202通过运行存储在存储器201内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本发明实施例中的数据传输方法。存储器201可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器201可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至服务器200。
网络模块203用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,网络模块203可包括处理器、随机存储器、转换器、晶体振荡器等元件。
进一步地,上述软件程序以及模块还可包括:操作系统221以及服务模块222。其中操作系统221,例如可为LINUX、UNIX、WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务模块222运行在操作系统221的基础上,并通过操作系统221的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。也就是说,服务模块221用于向客户端提供网络服务。
下面将结合附图,对本发明实施例提供的数据传输方法、装置及系统进行详细的介绍。
另外,本发明下述各实施例中“数据的键值"指的是传统键值(key—value)存储系统中,客户端在要求存储数据时提供给存储系统的数据标识,用于在存储系统中唯一识别被要求存储的数据,可作为客户端读取数据的凭证。本发明下述各实施例中“构造键值"指的是本发明实施例提供的数据传输方法及装置中,根据数据的键值以及所述数据对应的节点路由信息构造的新的数据标识,用于代替传统的数据的键值、作为客户端读取数据的凭证。
下面将结合附图,对本发明实施例提供的数据传输方法及装置进行详细的介绍。
图4为本发明实施例提供的一种数据传输方法的流程图。本实施例描述的是客户端向分布式存储系统上传数据时、分布式存储系统一侧的处理流程。如图4所示,本实施例的数据传输方法包括以下步骤:
步骤S11,分布式存储系统接收客户端发送的数据以及所述数据的键值。
分布式存储系统具体接收客户端发送的数据以及所述数据的键值的可以是一个节点,例如一个接入节点。
步骤S12,根据分布式存储系统中用于存储数据的各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中。
分布式存储系统可以定期的同步用于存储数据的各节点的负载情况,在接收到客户端发送的数据以及所述数据的键值后,接收该数据的节点可以根据各节点的即时负载情况选择最优的节点作为存储数据的节点,然后将所述数据存储在该节点中。规避了传统的数据存储技术中分配存储空间过分依赖数据键值的问题。
即时负载情况主要指分布式存储系统中用于存储数据的各节点在某一时间点根据存储空间剩余容量(例如硬盘剩余可用空间)和系统计算资源消耗(即机器负载,如CPU内存等消耗)情况得出的指标。最优的存储节点可以是根据存储空间剩余容量和系统计算资源消耗情况选出的目前最适合提供存储的节点。最优的存储节点的选择过程可以按照预置的规则来进行。
预置的规则,例如可以包括:如果剩余容量相同,选择CPU占用率小的设备作为最优存储节点;如果CPU占有率相同,选择剩余容量大的设备作为最优存储节点;如果剩余容量与CPU占用率均不同,选择剩余容量大的设备作为最优存储节点。举例来说,假设有8台设备,设备1剩余容量为2GB,CPU占用80%,设备2—8剩余容量都为10GB,CPU占用80%,那么此时最优的选择就是设备2—8中的一台;如果设备1剩余容量为2GB,CPU占用80%,而设备2—8剩余容量都为O.5GB,CPU占用40%,那么此时最优的选择就是设备1。
当然,预置的规则可以根据不同的需求而改变,本发明的具体实施方式并不以此为限。
步骤S13,生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息。
具体的,分布式存储系统中接收该数据的节点可以将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造一个新的全局唯一的构造键值,也就是构造KEY。
具体的,可以将所述数据的键值以及与所述数据对应的节点路由信息等信息填充至构造键值结构中,并将所述构造键值结构编码为所述构造键值。其中,构造键值结构被填充后以二进制形式存在,可以通过BASE64、Punycode、UrlEncode等编码方式将二进制转为可见字符串。当然,如果对构造键值的形式不做要求,也可以直接以二进制形式作为构造键值,本发明的具体实施方式并不以此为限。
除了所述数据的键值以及与所述数据对应的节点路由信息,所述构造键值中还可以包括:构造键值标志、构造键值校验字段、CRC(Cyclic Redundancy Check,循环冗余检查)校验值(或SHA(Secure Hash Algorithm,安全散列算法)、或MD5(Message DigestAlgorithm,消息摘要算法5)值)、所述客户端的标识、或所述构造键值的版本编号等一些白定义信息。
其中,构造键值标志可以用于标识具有该标志的数据结构为构造键值,构造键值校验字段可以用于对该构造键值的进行验证。除此之外,可以根据实际需求向构造键值结构中写入任何数据,例如对应数据的上传时间、对应数据的长度、对应数据的键值的长度等,而仅不限于上面提到的这些信息,这样客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的更多属性。
步骤S14,将所述数据对应的构造键值返回所述客户端。
分布式存储系统中接收该数据的节点可以将所述数据对应的构造键值返回给客户端,该构造键值可以作为客户端后续读取数据的凭证,也就是说客户端持有该构造键值即可进行数据下载。构造键值中包含的节点路由信息可以保证分布式存储系统在接收到该构造键值后可以快速定位数据的存储位置,无需进行过多的查询。
本发明实施例提供的数据传输方法,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图5为本发明实施例提供的另一种数据传输方法的流程图。本实施例描述的是客户端由分布式存储系统下载数据时、分布式存储系统一侧的处理流程。如图5所示,本实施例的数据传输方法包括以下步骤:
步骤S21,接收所述客户端发送的数据获取请求,所述数据获取请求中包括待获取数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息。
其中构造键值可以在客户端将数据上传至分布式存储系统时由分布式存储系统生成,具体可以参见第一实施例,这里不再赘述。
步骤S22,根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
请参照图6,进一步的,步骤S22具体可以包括:
步骤S221,对所述构造键值进行解码和验证。
分布式存储系统在接收到客户端发送的构造键值后,首先要确认该构造键值是一个真的构造键值还是一个普通的字符串,在验证之前需要先对接收到的构造键值进行解码得到解码后的构造键值。具体验证时,可以通过查看解码后的构造键值是否具有构造键值标志。进一步的,还可以根据构造键值校验字段来确认构造键值是否被篡改过。还可以根据构造键值中的其他字段来进行进一步的验证。对构造键值进行校验的方法可以根据不同的需求而改变,只要能够验证接收到的构造键值是分布式存储系统下发给客户端的合法构造键值即可,本发明的具体实施方式并不以此为限。
步骤S222,由解码后的所述构造键值中提取出节点路由信息。
步骤S223,根据所述节点路由信息,由对应节点中读取数据。
需要说明的是,本实施例中的步骤与第一实施例中的步骤可以由分布式存储系统的相同节点执行也可以分别由不同的节点执行,本发明的具体实施方式并不以此为限。
本发明实施例提供的数据传输方法,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图7为本发明实施例提供的再一种数据传输方法的流程图。本实施例描述的是客户端一侧的处理流程。如图7所示,本实施例的数据传输方法包括以下步骤:
步骤S31,客户端获取待传输的数据以及所述数据的键值。
步骤S32,将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息。
客户端请求上传数据时,首先获取待传输的数据,客户端例如可以从本地存储器或云端存储器获取待传输的数据,然后将待传输的数据以及该数据的键值发送给分布式存储系统。进一步的,如果客户端为用户终端,分布式存储系统中接收数据的节点为服务器,客户端在发送数据前,可以向分布式存储系统发送包含身份验证信息的数据上传请求,分布式存储系统在该身份验证信息通过验证后,向客户端返回上传响应,客户端根据该上传响应,读取本地存储的数据及其对应的键值,发送给分布式存储系统。或者,如果客户端为服务器,分布式存储系统中接收数据的节点也为服务器或客户端与接收数据的节点均为对等网中的用户终端,客户端根据分布式存储系统发送的传输指令,从本地存储器获取待传输的数据及其键值,然后将数据及键值发送给分布式存储系统中的一个节点。
分布式存储系统接收到客户端发送的数据以及所述数据的键值后所进行的步骤具体可以参照前述实施例,这里不再赘述。
步骤S33,接收所述分布式存储系统所返回的、与所述数据对应的构造键值。
进一步的,当客户端需要向分布式存储系统获取数据,也就是下载数据时,可以执行以下步骤。
步骤S34,所述客户端向所述分布式存储系统发送数据获取请求,所述数据获取请求中包括待获取数据对应的构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
步骤S35,所述客户端接收所述分布式存储系统所返回的数据。
分布式存储系统接收到客户端发送的数据获取请求后所进行的步骤具体可以参照前述实施例,这里不再赘述。
本发明实施例提供的数据传输方法,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图8为本发明实施例提供的又一种数据传输方法的流程图。本实施例描述的是客户端与分布式存储系统相互交互的处理流程。如图8所示,本实施例的数据传输方法包括以下步骤,其中,步骤S401至步骤S405主要描述的是客户端向分布式存储系统上传数据时的具体流程,步骤S406至步骤S410则主要描述的是客户端由分布式存储系统下载数据时的具体流程。图9为本实施例中客户端向分布式存储系统上传数据时的流程示意图,图10为本实施例中客户端由分布式存储系统下载数据时的流程示意图。
请同时参照图9,当客户端向分布式存储系统上传数据时,本实施例的数据传输方法具体可以包括:
步骤S401,客户端获取待传输的数据以及所述数据的键值,并将所述数据与所述键值发送给分布式存储系统的任意接入节点。
接入节点可以是分布式存储系统中负责处理上传下载请求、分配存储的功能性节点,数量不定,各接入节点的身份对等。客户端在请求上传数据时,可以将待传输的数据以及所述数据的键值(KEY)发送给某一接入节点。
步骤S402,所述接入节点接收客户端发送的数据以及所述数据的键值。
步骤S403,所述接入节点根据各存储节点的负载情况为所述数据分配对应的存储节点、将所述数据存储在对应的存储节点中。
接入节点接收到客户端发送的数据以及所述数据的键值后,根据各存储节点的负载情况为所述数据分配对应的存储节点。所述存储节点可以是分布式存储系统中负责实际数据落地存储的节点,可以自我管理自身数据的数据落地节点,多个存储节点可以形成一个存储节点集合。
步骤S404,所述接入节点将所述数据的键值以及与所述数据对应的节点路由信息填充至构造键值结构中,并将所述构造键值结构编码为所述构造键值,也就是构造KEY。
具体的,接入节点可以通过构造键值生成模块将所述数据的键值、与所述数据对应的节点路由信息、数据信息(包括数据的长度、数据KEY的长度、CRC校验值、数据的上传时间等)、客户端的标识、或所述构造KEY结构的版本编号等信息填充至构造KEY结构中。
构造KEY结构例如可以定义为:
该构造KEY结构被填充后以二进制形式存在,可以通过BASE64编码转化为可见字符串返回给客户端。也可以通过Punycode、UrlEncode等编码方式将二进制转为可见字符串。当然,如果对构造键值的形式不做要求,也可以直接以二进制形式作为构造键值,本发明的具体实施方式并不以此为限。
除此之外,可以根据实际需求向构造键值结构中写入任何数据,而仅不限于上面提到的这些信息。
构造KEY中所存储的节点路由信息,具体可以根据不同系统对存储节点的路由方式的设计而变动,并不限于上述结构中所提及的unsigned形式。
步骤S405,所述接入节点将所述数据对应的构造键值返回所述客户端。
请同时参照图10,当客户端向分布式存储系统下载数据时,本实施例的数据传输方法还可以包括:
步骤S406,所述客户端向所述分布式存储系统的任意接入节点发送数据获取请求,所述数据获取请求中包括所述数据对应的构造键值。
步骤S407,所述接入节点对所述构造键值进行解码和验证。
具体的,在对所述构造键值进行验证前,先将构造键值解码,然后根据解码后的内容进行验证。这里将介绍一种具体的验证方法,其中解码后的构造KEY可以参考步骤S404中给出的结构。首先,查看构造KEY结构中是否包括构造KEY标志,在构造KEY结构中,可以规定第一个字段magic是一个固定的数值,每个构造KEY都具有该标志,通过此标志可以判断解码后的内容是否是一个构造KEY结构。
如果具有该构造KEY标志,还可以根据构造KEY校验字段checksum来做进一步验证。具体的,在下发构造KEY前,可以规定当checksum=0时,该整个构造KEY的CRC值是多少,然后将CRC值写入checksum,形成构造KEY下发给客户端。当客户端获取数据时,分布式存储系统在解码后的构造键值中取出checksum值,然后将checksum置为O,对构造KEY做一次CRC,对比先前取出来的checksum值看是否相同,以达到验证的目的。
进一步的,还可以根据构造KEY中的其他字段进行验证,例如可以规定版本version必须小于某个值,如果解码后的构造KEY的version大于该预定值,则验证不通过,等等。
对构造键值进行校验的方法可以根据不同的需求而改变,只要能够验证接收到的构造键值是分布式存储系统下发给客户端的合法构造键值即可,本发明的具体实施方式并不以此为限。
步骤S408,所述接入节点由解码后的所述构造键值中提取出节点路由信息。
步骤S409,所述接入节点根据所述节点路由信息,由对应的存储节点中读取数据。
步骤S410,所述接入节点将所读取的数据返回所述客户端。
在一种具体实施方式中,具体的可以由接入节点的请求接收模块接收数据获取请求,并将数据获取请求传送给数据读取模块的验证解码单元,对所述构造键值进行验证和解码,将解码后的构造键值发送给路由提取单元,由解码后的所述构造键值中提取出节点路由信息,路由提取单元将提取出的路由信息发送给数据读取单元,数据读取单元根据所述节点路由信息,由对应节点中读取数据并将读取的数据返回客户端。
本发明实施例提供的数据传输方法,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有程序,该程序执行时包括图4至图10任一实施例所示方法的全部或部分步骤。
图11为本发明实施例提供的一种数据传输装置的结构示意图。本实施例提供的数据传输装置可以运行于分布式存储系统中,例如运行于接入节点中,实现上述实施例中的数据传输方法。如图11所示,数据传输装置50包括:数据接收模块51、节点管理模块52、构造键值生成模块53、数据返回模块54。
其中,数据接收模块51用于接收客户端发送的数据以及所述数据的键值;
节点管理模块52用于根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;
构造键值生成模块53用于生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
数据返回模块54用于将所述数据对应的构造键值返回所述客户端。
进一步的,所述节点管理模块52还可以用于获取所述分布式存储系统中用于存储数据的各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况,根据各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况,按照预置的规则为所述数据分配对应的节点,以及将所述数据存储在对应的节点中。
所述预置的规则可以包括:如果所述即时存储空间剩余容量相同,选择即时系统计算资源消耗小的设备作为所述数据分配对应的节点;或者如果即时系统计算资源消耗相同,选择即时存储空间剩余容量大的设备作为所述数据分配对应的节点;或者如果即时存储空间剩余容量与即时系统计算资源消耗均不同,选择即时存储空间剩余容量大的设备作为最优存储节点。
进一步的,所述构造键值还可以包括:构造键值标志、构造键值校验字段、CRC(Cyclic Redundancy Check,循环冗余检查)校验值(或SHA(Secure Hash Algorithm,安全散列算法)、或MD5(Message Digest Algorithm,消息摘要算法5)值)、所述客户端的标识、或所述构造键值的版本编号等一些白定义信息。
其中,构造键值标志可以用于标识具有该标志的数据结构为构造键值,构造键值校验字段可以用于对该构造键值的进行验证。除此之外,可以根据实际需求向构造键值结构中写入任何数据,例如对应数据的上传时间、对应数据的长度、对应数据的键值的长度等,而仅不限于上面提到的这些信息,这样客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的更多属性。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于作为节点的设备的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现,并且根据实际需要可以对各模块进行组合。
需要说明的是,本实施例的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
本发明实施例提供的数据传输装置,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输装置可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图12为本发明实施例提供的另一种数据传输装置的结构示意图。本实施例提供的数据传输装置可以运行于分布式存储系统中,例如运行于接入节点中,实现上述实施例中的数据传输方法。如图12所示,数据传输装置60包括:
请求接收模块61,用于接收所述客户端发送的数据获取请求,所述数据获取请求中包括所述数据对应的构造键值;
数据读取模块62,用于根据所述构造键值中的节点路由信息由对应节点中读取数据;
数据返回模块63用于将所读取的数据返回所述客户端。
其中,所述数据读取模块62可以包括:
验证解码单元621,用于对所述构造键值进行验证和解码;
路由提取单元622,用于由解码后的所述构造键值中提取出节点路由信息;以及
数据读取单元623,用于根据所述节点路由信息,由对应节点中读取数据。
需要说明的是,本实施例中的模块与第五实施例中的模块可以由分布式存储系统的相同节点运行也可以分别由不同的节点运行。也就是说,本实施例中的模块与第五实施例中的模块可以组合在一起运行于分布式存储系统中的一个节点,本发明的具体实施方式并不以此为限。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于作为节点的设备的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现,并且根据实际需要可以对各模块进行组合。
需要说明的是,本实施例的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
本发明实施例提供的数据传输装置,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输装置可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图13为本发明实施例提供的再一种数据传输装置的结构示意图。本实施例提供的数据传输装置可以运行于客户端中,实现上述实施例中的数据传输方法。如图13所示,数据传输装置70包括:
数据获取模块71,用于获取待传输的数据以及所述数据的键值;
数据发送模块72,用于将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
数据接收模块73,用于接收所述分布式存储系统所返回的、与所述数据对应的构造键值。
所述构造键值还可以包括:对应数据的长度、对应数据的键值的长度、循环冗余检查校验值、对应数据的上传时间、所述客户端的标识、或所述构造键值的版本编号等。
进一步的,装置70还可以包括:
请求发送模块74,用于向所述分布式存储系统发送数据获取请求,所述数据获取请求中包括所述数据对应的构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
数据接收模块73还用于接收所述分布式存储系统返回的数据,所述数据由所述分布式存储系统在与所述构造键值中的节点路由信息对应的节点中读取。
以上各模块可以是由软件代码实现,此时,上述的各模块可存储于作为客户端的设备的存储器内。以上各模块同样可以由硬件例如集成电路芯片实现,并且根据实际需要可以对各模块进行组合。
需要说明的是,本实施例的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,在此不赘述。
本发明实施例提供的数据传输装置,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输装置可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
图14为本发明实施例提供的一种数据传输系统的结构示意图。本实施例提供的数据传输系统80包括客户端81与分布式存储系统82。其中,客户端81可以为上述实施例中的客户端,分布式存储系统82可以为上述实施例中的分布式存储系统。具体的实现功能和实现过程请参阅图4至图10对应实施例的方法,以及图11图至图13对应实施例的装置,此处不再赘述。
综上所述,本发明实施例提供的数据传输方法及装置,根据各节点的负载情况为客户端发送的数据分配对应的节点,规避了现有技术中依赖数据键值进行存储分配的方式,从而避免了因此导致的负载不均的问题;将实际存储所述数据的节点路由信息以及所述数据的键值,主动构造在一个新的全局唯一的构造键值中,规避了现有技术中查询数据需要依赖数据键值的问题,可以允许重复的数据键值存在,不用担心数据冲突,此外,由于构造键值为结构化数据,因此可以向其中写入更多的数据信息,使客户端在不与分布式存储系统进行通信的情况下就可以取得对应数据的一些属性;同时该构造键值也可以作为客户端后续读取数据的凭证,构造键值中包含的节点路由信息可以保证存储系统可以快速定位数据的存储位置,无需进行过多的查询。因此,本发明实施例提供的数据传输方法及装置可以避免现有技术中负载不均的问题,实现负载均衡的分配存储空间,同时又不会影响数据的快速访问。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括"、“包含"或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (23)

1.一种数据传输方法,其特征在于,包括:
分布式存储系统接收客户端发送的数据以及所述数据的键值;
根据分布式存储系统中用于存储数据的各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;
生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
将所述数据对应的构造键值返回所述客户端,所述构造键值用于所述客户端获取所述数据时,向所述分布式存储系统发送所述构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据分布式存储系统中用于存储数据的各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中的步骤,包括:
获取所述分布式存储系统中用于存储数据的各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况;
根据各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况,按照预置的规则为所述数据分配对应的节点;以及
将所述数据存储在对应的节点中。
3.根据权利要求2所述的方法,其特征在于,所述预置的规则包括:
如果所述即时存储空间剩余容量相同,选择即时系统计算资源消耗小的设备作为所述数据分配对应的节点;或者
如果即时系统计算资源消耗相同,选择即时存储空间剩余容量大的设备作为所述数据分配对应的节点;或者
如果即时存储空间剩余容量与即时系统计算资源消耗均不同,选择即时存储空间剩余容量大的设备作为最优存储节点。
4.根据权利要求1所述的方法,其特征在于,所述生成与所述数据对应的构造键值的步骤,包括:
将所述数据的键值以及与所述数据对应的节点路由信息填充至构造键值结构中,并将所述构造键值结构编码为所述构造键值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的数据获取请求,所述数据获取请求中包括所述数据对应的构造键值;
根据所述构造键值中的节点路由信息由对应节点中读取数据;以及
将所读取的数据返回所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述根据所述构造键值中的节点路由信息由对应节点中读取数据的步骤,包括:
对所述构造键值进行解码和验证;
由解码后的所述构造键值中提取出节点路由信息;以及
根据所述节点路由信息,由对应节点中读取数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述构造键值进行验证的步骤,包括:查看解码后的所述构造键值是否包括构造键值标志,所述构造键值标志用于标识具有该标志的数据结构为构造键值。
8.根据权利要求1所述的方法,其特征在于,所述构造键值还包括:构造键值标志、构造键值校验字段、循环冗余检查校验值、或所述客户端的标识。
9.一种数据传输方法,其特征在于,包括:
客户端获取待传输的数据以及所述数据的键值;
将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
接收所述分布式存储系统所返回的、与所述数据对应的构造键值,所述构造键值用于所述客户端获取所述数据时,向所述分布式存储系统发送所述构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述客户端向所述分布式存储系统发送数据获取请求,所述数据获取请求中包括所述数据对应的构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息由对应节点中读取数据,并将所读取的数据返回所述客户端。
11.一种数据传输方法,其特征在于,包括:
客户端向分布式存储系统发送数据获取请求,所述数据获取请求中包括数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
接收所述分布式存储系统返回的数据,所述数据由所述分布式存储系统在与所述构造键值中的节点路由信息对应的节点中读取。
12.一种数据传输装置,运行于分布式存储系统,其特征在于,包括:
数据接收模块,用于接收客户端发送的数据以及所述数据的键值;
节点管理模块,用于根据分布式存储系统中用于存储数据的各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中;
构造键值生成模块,用于生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
数据返回模块,用于将所述数据对应的构造键值返回所述客户端,所述构造键值用于所述客户端获取所述数据时,向所述分布式存储系统发送所述构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
13.根据权利要求12所述的装置,其特征在于,所述节点管理模块还用于获取所述分布式存储系统中用于存储数据的各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况,根据各节点的即时存储空间剩余容量以及即时系统计算资源消耗情况,按照预置的规则为所述数据分配对应的节点,以及将所述数据存储在对应的节点中。
14.根据权利要求13所述的装置,其特征在于,所述预置的规则包括:
如果所述即时存储空间剩余容量相同,选择即时系统计算资源消耗小的设备作为所述数据分配对应的节点;或者
如果即时系统计算资源消耗相同,选择即时存储空间剩余容量大的设备作为所述数据分配对应的节点;或者
如果即时存储空间剩余容量与即时系统计算资源消耗均不同,选择即时存储空间剩余容量大的设备作为最优存储节点。
15.根据权利要求12所述的装置,其特征在于,所述构造键值生成模块还用于将所述数据的键值以及与所述数据对应的节点路由信息填充至构造键值结构中,并将所述构造键值结构编码为所述构造键值。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括:
请求接收模块,用于接收所述客户端发送的数据获取请求,所述数据获取请求中包括所述数据对应的构造键值;
数据读取模块,用于根据所述构造键值中的节点路由信息、由对应节点中读取数据;
数据返回模块,用于将所读取的数据返回所述客户端。
17.根据权利要求16所述的装置,其特征在于,所述数据读取模块,包括:
验证解码单元,用于对所述构造键值进行解码和验证;
路由提取单元,用于由解码后的所述构造键值中提取出节点路由信息;以及
数据读取单元,用于根据所述节点路由信息,由对应节点中读取数据。
18.根据权利要求17所述的装置,其特征在于,所述验证解码单元还用于查看解码后的所述构造键值是否包括构造键值标志,所述构造键值标志用于标识具有该标志的数据结构为构造键值。
19.根据权利要求13所述的装置,其特征在于,所述构造键值还包括:构造键值标志、构造键值校验字段、循环冗余检查校验值、或所述客户端的标识。
20.一种数据传输装置,运行于客户端,其特征在于,包括:
数据获取模块,用于获取待传输的数据以及所述数据的键值;
数据发送模块,用于将所述数据以及所述数据的键值发送给分布式存储系统,以使所述分布式存储系统根据各节点的负载情况为所述数据分配对应的节点、将所述数据存储在对应的节点中、并生成与所述数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
数据接收模块,用于接收所述分布式存储系统所返回的、与所述数据对应的构造键值,所述构造键值用于所述客户端获取所述数据时,向所述分布式存储系统发送所述构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息、由对应节点中读取数据、并将所读取的数据返回所述客户端。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
请求发送模块,用于向所述分布式存储系统发送数据获取请求,所述数据获取请求中包括所述数据对应的构造键值,以使所述分布式存储系统根据所述构造键值中的节点路由信息由对应节点中读取数据,并将所读取的数据返回所述客户端。
22.一种数据传输装置,运行于客户端,其特征在于,包括:
请求发送模块,用于向分布式存储系统发送数据获取请求,所述数据获取请求中包括数据对应的构造键值,所述构造键值中包括所述数据的键值以及与所述数据对应的节点路由信息;以及
数据接收模块,用于接收所述分布式存储系统返回的数据,所述数据由所述分布式存储系统在与所述构造键值中的节点路由信息对应的节点中读取。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括至少一条指令,所述指令被处理器执行时实现权利要求1-8任一所述的数据传输方法或者如权利要求9-10任一所述的数据传输方法或者如权利要求11所述的数据传输方法。
CN201310642484.5A 2013-12-03 2013-12-03 数据传输方法及装置 Active CN104683422B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310642484.5A CN104683422B (zh) 2013-12-03 2013-12-03 数据传输方法及装置
PCT/CN2014/092423 WO2015081808A1 (en) 2013-12-03 2014-11-28 Method and apparatus for data transmission
US15/009,413 US10212217B2 (en) 2013-12-03 2016-01-28 Method and apparatus for data transmission in a distributed storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310642484.5A CN104683422B (zh) 2013-12-03 2013-12-03 数据传输方法及装置

Publications (2)

Publication Number Publication Date
CN104683422A CN104683422A (zh) 2015-06-03
CN104683422B true CN104683422B (zh) 2019-01-29

Family

ID=53272871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310642484.5A Active CN104683422B (zh) 2013-12-03 2013-12-03 数据传输方法及装置

Country Status (3)

Country Link
US (1) US10212217B2 (zh)
CN (1) CN104683422B (zh)
WO (1) WO2015081808A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445968B (zh) * 2015-08-11 2020-08-04 阿里巴巴集团控股有限公司 一种数据合并方法及装置
CN105243632A (zh) * 2015-10-26 2016-01-13 深圳荣亚物联科技有限公司 基于云管理空气污染监控系统及方法
CN105812146A (zh) * 2016-05-26 2016-07-27 王云鹏 一种基于md5的双向加密数据保护方法
CN106101212A (zh) * 2016-06-08 2016-11-09 四川新环佳科技发展有限公司 云平台下的大数据访问方法
CN106339475A (zh) * 2016-08-29 2017-01-18 联众智慧科技股份有限公司 一种海量数据的分布式存储系统
CN106506493A (zh) * 2016-10-27 2017-03-15 摩登大道时尚电子商务有限公司 基于区块链平台的数据处理方法
CN106569941B (zh) * 2016-11-04 2019-01-01 金蝶软件(中国)有限公司 记录数据历程的方法和装置
US10686908B2 (en) * 2016-11-18 2020-06-16 Sap Se Embedded database as a microservice for distributed container cloud platform
CN106528844B (zh) * 2016-11-24 2019-07-05 腾讯科技(深圳)有限公司 一种数据请求方法及装置和数据存储系统
CN106713465B (zh) * 2016-12-27 2020-11-17 北京锐安科技有限公司 一种分布式存储系统
CN107180102B (zh) * 2017-05-25 2019-12-31 北京环境特性研究所 一种目标特性数据的存储方法和系统
CN107682417B (zh) * 2017-09-19 2020-09-25 深圳市盛路物联通讯技术有限公司 一种数据节点的任务分配方法和装置
CN110069210B (zh) * 2018-01-23 2021-09-28 杭州海康威视系统技术有限公司 一种存储系统、存储资源的分配方法及装置
US10901867B2 (en) * 2018-01-24 2021-01-26 Apple Inc. Distributed redundant storage system
CN110309223B (zh) * 2018-03-08 2023-08-22 华为技术有限公司 选择数据节点的方法、系统以及相关设备
CN108337328A (zh) * 2018-05-17 2018-07-27 广东铭鸿数据有限公司 一种数据交换系统、数据上传方法及数据下载方法
CN109413207A (zh) * 2018-12-11 2019-03-01 深圳市网心科技有限公司 一种文件上传方法、系统、装置及计算机可读存储介质
CN109769019B (zh) * 2018-12-29 2021-11-09 深圳联友科技有限公司 一种一致性负载均衡方法及装置
CN112162841A (zh) * 2020-09-30 2021-01-01 重庆长安汽车股份有限公司 面向大数据处理的分布式调度系统、方法及存储介质
CN112637327B (zh) * 2020-12-21 2022-07-22 北京奇艺世纪科技有限公司 一种数据处理方法、装置及系统
CN115629717B (zh) * 2022-12-08 2023-03-21 四川汉唐云分布式存储技术有限公司 一种基于分布式存储的负载均衡方法和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399765A (zh) * 2007-09-28 2009-04-01 华为技术有限公司 降低对等网络中热点节点负荷的方法和系统
CN101771715A (zh) * 2008-12-26 2010-07-07 华为技术有限公司 分布式网络构建存储的方法、装置和系统
CN101840417A (zh) * 2010-03-29 2010-09-22 中国科学院声学研究所 一种基于相关关系的物联网uid查询方法
CN101984632A (zh) * 2010-11-15 2011-03-09 中兴通讯股份有限公司 一种分布式缓存系统中负荷分配方法、装置及服务器
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090296942A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Concept for securing and validating client-side storage and distribution of asynchronous includes in an application server environment
US8799322B2 (en) * 2009-07-24 2014-08-05 Cisco Technology, Inc. Policy driven cloud storage management and cloud storage policy router
US8949688B2 (en) * 2011-04-01 2015-02-03 Cleversafe, Inc. Updating error recovery information in a dispersed storage network
KR20140034222A (ko) * 2011-05-14 2014-03-19 비트카사, 인코포레이티드 사용자-독립적인 암호화된 파일들의 서버측 중복제거를 하는 클라우드 파일 시스템
US9158586B2 (en) * 2011-10-10 2015-10-13 Cox Communications, Inc. Systems and methods for managing cloud computing resources
US8700683B2 (en) * 2011-10-24 2014-04-15 Nokia Corporation Method and apparatus for providing a key-value based storage interface
US9378380B1 (en) * 2011-10-31 2016-06-28 Reid Consulting Group System and method for securely storing and sharing information
CN102567495B (zh) * 2011-12-22 2013-08-21 国家电网公司 一种海量信息存储系统及实现方法
US20130346537A1 (en) * 2012-06-18 2013-12-26 Critical Path, Inc. Storage optimization technology

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101399765A (zh) * 2007-09-28 2009-04-01 华为技术有限公司 降低对等网络中热点节点负荷的方法和系统
CN101771715A (zh) * 2008-12-26 2010-07-07 华为技术有限公司 分布式网络构建存储的方法、装置和系统
CN101840417A (zh) * 2010-03-29 2010-09-22 中国科学院声学研究所 一种基于相关关系的物联网uid查询方法
CN101984632A (zh) * 2010-11-15 2011-03-09 中兴通讯股份有限公司 一种分布式缓存系统中负荷分配方法、装置及服务器
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置

Also Published As

Publication number Publication date
US10212217B2 (en) 2019-02-19
US20160150001A1 (en) 2016-05-26
WO2015081808A1 (en) 2015-06-11
CN104683422A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN104683422B (zh) 数据传输方法及装置
CN104424496B (zh) 二维码生成方法、识别方法、信息提供方法、装置和系统
CN112136304A (zh) 用于基于应用的数据传输执行网络连接的电子设备及其方法
US10785713B2 (en) Device and method for accessing multiple networks in wireless communication system
CN112235400B (zh) 通信方法、通信系统、装置、服务器及存储介质
CN108173938A (zh) 服务器负载分流方法及装置
CN113748685A (zh) 基于网络的媒体处理控制
CN102868732A (zh) 一种基于账户密码的登录实现方法、系统及装置
CN111953811A (zh) 站点访问方法、站点注册方法、装置、设备及存储介质
CN113206753A (zh) 一种信息配置方法和管理单元
CN109379742A (zh) 一种无线局域网的接入方法、装置和存储介质
CN105681395A (zh) 一种资源共享控制方法、装置、服务器及终端
CN113647113A (zh) 基于网络的媒体处理安全性
US11882154B2 (en) Template representation of security resources
CN115865836A (zh) 使用网络设备的内容注入
CN108370353A (zh) 使用网络辅助协议来提高网络利用率
CN112953908A (zh) 网络隔离配置方法、装置及系统
CN104702634B (zh) 数据操作请求处理方法、装置及系统
CN110278273B (zh) 多媒体文件上传方法、装置、终端、服务器和存储介质
CN105072212B (zh) 对码方法与对码系统
US20160241889A1 (en) Video channel allocation management method and related device, and communication system
CN109788251A (zh) 视频处理方法、装置及存储介质
CN103973747A (zh) 一种获取内容的方法和装置
CN113038192A (zh) 视频处理方法、装置、电子设备和存储介质
CN104902568A (zh) 一种无线网络资源的共享方法及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20190731

Address after: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.