CN112241240A - 用于并行传输数据的方法、设备和计算机程序产品 - Google Patents

用于并行传输数据的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN112241240A
CN112241240A CN201910657308.6A CN201910657308A CN112241240A CN 112241240 A CN112241240 A CN 112241240A CN 201910657308 A CN201910657308 A CN 201910657308A CN 112241240 A CN112241240 A CN 112241240A
Authority
CN
China
Prior art keywords
data
storage device
parallel
size
network
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.)
Pending
Application number
CN201910657308.6A
Other languages
English (en)
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201910657308.6A priority Critical patent/CN112241240A/zh
Priority to US16/555,226 priority patent/US10969964B2/en
Publication of CN112241240A publication Critical patent/CN112241240A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开的实施例涉及一种用于并行传输数据的方法、设备和计算机程序产品。方法包括获得要从第一存储设备传输到第二存储设备的数据的属性以及第一存储设备与第二存储设备之间的网络状况。方法还包括基于数据的属性和网络状况来确定在并行传输数据中使用的并发数目和数据切片大小,然后使用所确定的并发数目和数据切片大小来在第一存储设备与第二存储设备之间并行传输数据。本公开的实施例在并行传输数据时,能够根据实际场景中要传输的数据的属性和实际网络状况,来选择恰当的并发数目和数据切片大小,由此能够提高并行传输数据的速度。

Description

用于并行传输数据的方法、设备和计算机程序产品
技术领域
本公开的实施例总体上涉及数据存储领域,并且更具体地涉及用于并行传输数据的方法、设备以及计算机程序产品。
背景技术
存储系统是指存放程序和数据的各种存储设备、控制部件及管理信息调度的硬设备和各种软件所组成的系统,其通常能够存储大量数据。为了保证数据存储的安全性,存储系统中通常采用数据备份技术。独立盘冗余阵列是一种数据备份技术,其能够把多个独立的物理盘按不同的方式组合起来形成一个盘的阵列(即,逻辑盘),从而提供比单个盘更高的存储性能和更高的可靠性能。
数据传输是现代数据保护解决方案的一项关键指标,尤其是在大规模数据集中。数据传输的效率是数据备份、数据复制、灾难恢复等的重要因素。通常,可以利用数据复制和虚拟合成的技术来避免传输重复的数据。此外,还可以通过并行数据传输来提高传输速度,并行数据传输是指充分利用网络带宽,将待传输的数据分成若干切片,并建立多个流以并行传输这些切片。
发明内容
本公开的实施例提供了一种用于并行传输数据的方法、设备和计算机程序产品,能够根据实际场景中要传输的数据的属性和实际网络状况,选择并行数据传输期间所使用的恰当的并发数目和数据切片大小,由此能够提高并行传输数据的速度。
在本公开的一个方面,提供了一种用于并行传输数据的方法。该方法包括:获得要从第一存储设备传输到第二存储设备的数据的属性以及第一存储设备与第二存储设备之间的网络状况;基于数据的属性和网络状况,确定在并行传输数据中使用的并发数和数据切片大小;以及基于并发数和数据切片大小,在第一存储设备与第二存储设备之间并行传输数据。
在本公开的另一方面,提供了一种用于并行传输数据的设备。该设备包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:获得要从第一存储设备传输到第二存储设备的数据的属性以及第一存储设备与第二存储设备之间的网络状况;基于数据的属性和网络状况,确定在并行传输数据中使用的并发数和数据切片大小;以及基于并发数和数据切片大小,在第一存储设备与第二存储设备之间并行传输数据。
在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。
图1示出了根据本公开的实施例的并行传输数据的环境的示意图;
图2示出了根据本公开的实施例的用于并行传输数据的方法的流程图;
图3示出了根据本公开的实施例的使用测试设备来生成测试数据的过程的示意图;
图4示出了根据本公开的实施例的用于训练决策树模型的方法的流程图;
图5示出了根据本公开的实施例的示例决策树模型的一部分的示意图;以及
图6示出了可以用来实施本公开的实施例的设备的示意性块图。
具体实施例
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。
本申请的发明人发现影响并行数据传输的速度的两个关键因素是并行流传输的并发数目和数据被划分的数据切片大小。为这两个关键因素选择的不同值可能会对传输性能产生显著的影响,然而,目前并没有一种智能且准确的方法能够在特定场景下选择适合的并发数目和数据切片大小。
传统地,主要有两种方法来确定并行数据传输时的并发数目和数据切片大小。一种方法是使用固定的规则,其根据一些人类经验来设置并发数目和数据切片大小,然而,人类经验在一些场景下可能是不准确的,并且不能覆盖实际场景中的所有情形。另一种方法是通过比较当前场景与历史场景的相似性,然而,这种方法需要非常大量的历史数据,对于历史上没有出现过的情形,将可能导致错误的结论。因此,传统的方法无法准确地确定并行数据传输中所使用的并发数目和数据切片大小。
为此,本公开的实施例提出了一种确定并行数据传输中所使用的并发数目和数据切片大小的新方案。本公开的实施例在并行传输数据时,能够根据实际场景中要传输的数据的属性和实际网络状况,选择准确且恰当的并发数目和数据切片大小,由此能够提高并行传输数据的速度。
以下参考图1至图6来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图1示出了根据本公开的实施例的并行传输数据的环境100的示意图。如图1所示,环境100包括两个存储设备110和120,存储设备110和120可以通过网络相连接。例如,存储设备110和120可以为两个数据存储系统或者两个备份服务器。在某个时刻,为了数据备份的需要,需要将存储设备110中的数据115传输到存储设备120中,例如作为数据115’。为了加快数据115从存储设备110传输到存储设备120的速度,可以将数据115拆分成多个数据切片(例如如图1所示,每个数据切片被标记为0、1、2…N),并且通过多个并发通道来并行传输数据,如箭头130所示出的。本公开的实施例提出了一种为并行数据保护解决方案选择并发数目和数据切片大小的智能方法。本公开的实施例创建数据生成工具以生成具有不同数据属性和网络状况的测试数据集,并根据所生成的测试数据集决策树,此外,在本公开的一些实施例中,还支持决策树的增量在线归纳。
一般来说,数据去重和虚拟合成技术可以提高数据传输的效率。利用数据去重技术,原始数据被分成由散列值表示的固定或可变块,并且分块算法确保相同的数据块始终生成相同的散列值。如果已经传输和存储了相同的数据块,则不需要传输数据块,从而节省了通过网络传输的数据,并减少了存储所消耗的容量。
数据去重以数据块为单位工作,其可以一个小的单元(例如24KB)。然而,数据去重需要占用备份/复制客户端/服务器端的计算资源,当数据量很大时,开销可能很高。可以通过引入虚拟合成来解决此问题,对于已备份到存储装置的文件,后续备份/复制会话根本不进行数据去重;相反,存储装置上这些文件的偏移量和长度被记录在某个高速缓存中,因而只需要将内容从先前的备份虚拟合成到新备份。在已经有一些数据备份到存储装置并且文件数量相对较大且已更改文件的部分相对较少的场景下,虚拟合成技术能够减少备份/复制客户端/服务器端的重复数据删除的计算开销。除了数据去重和虚拟合成之外,在并行数据传输过程中选择恰当的并发数目和数据切片大小也能够提高数据传输的效率,如以下示例实现所描述的。
图2示出了根据本公开的实施例的用于并行传输数据的方法200的流程图。方法202例如可以由参考图1所描述的存储设备110来执行,也可以由除了存储设备110和120之外的其他设备来执行。
在202,获得要从第一存储设备传输到第二存储设备的数据的属性以及第一存储设备与第二存储设备之间的网络状况。例如,在准备从存储设备110向存储设备120并行传输数据115时,首先获得所传输的数据115的属性(例如大小等),并且获得存储设备110与存储设备120之间的网络环境情况。
在一些实施例中,数据属性可以包括数据的大小、数据中的文件数目、数据中的增量数据比例以及增量数据的离散性等,其中离散性包括增量数据的平均区域大小、最小区域大小、最大区域大小以及总区域数目。在一些实施例中,网络状况可以包括网络带宽和网络时延等。在一些实施例中,除了数据属性和网络状况之外,还可以获得存储设备的硬件能力,例如存储器的大小、处理器的核的数目,等等。
在204,基于数据的属性和网络状况,确定在并行传输数据中使用的并发数目和数据切片大小。例如,根据本公开的实施例的经训练的机器学习模型(例如决策树模型)能够根据所获得的数据属性和网络状况,输出适合当前传输场景的恰当的并发数目和数据切片大小。
在206,基于并发数目和数据切片大小,在第一存储设备与第二存储设备之间并行传输数据。例如,可以基于数据切片大小将数据切分成多个数据切片,然后从第一存储设备向第二存储设备并行地备份数据切片。因此,本公开的实施例在并行传输数据时,能够根据实际场景中要传输的数据的属性和实际网络状况,选择恰当的并发数目和数据切片大小,由此能够提高并行数据传输的速度。
图3示出了根据本公开的实施例的使用实验室中的测试设备来生成测试数据的过程300的示意图。如图3所示,实验室中至少包括两个测试设备310和320,可以使用不同的数据属性和网络状况来在测试设备310与测试设备320之间进行并行传输数据315的测试(如箭头330所示),以模拟生成测试数据集,然后使用所生成的测试数据集来训练机器学习模型。如图3所示,测试数据340可以为测试数据集中的一条数据项,其包括人为设定的数据属性、人为设定的网络状况以及通过测试而确定的优选传输模式(其指示优选的并发数目和切片大小)。
在一些实施例中,可以使用不同的数据属性和网络状况在实验室的测试设备上生成与并行数据传输有关的测试数据集。例如,可以选择数据复制场景来生成测试数据,因为与轻量级客户端的备份相比,备份服务器之间的复制涉及更大规模的数据,因而适合使用并发数目和数据切片大小这两个因素来测试传输性能。在数据复制期间涉及两个或更多个对象,例如,可以有两个物理服务器,数据直接从一个服务器传输到另一个服务器。
在复制过程中,许多因素都可能影响并行数据传输的性能。对于现代数据复制技术,影响性能的因素可能有数据类型、设备类型、数据结构和/或数据大小等。对于可以进行增量备份的数据存储系统,首次备份后的备份不会处理所有数据,只会将修改后的新增数据发送到存储系统。未修改的部分将通过合成技术与当前备份链接。因此,在进行增量备份复制时,新的数据也是一个重要因素。此外,复制设备之间的网络也会影响复制。因此,在本公开的一些实施例中,可以根据以下参数来确定最佳的并发数目和数据切片大小:数据大小、增量数据比例、平均区域大小、最小区域大小、最大区域大小、总区域数目、备份文件数目、网络带宽、网络时延(例如网络往返时间(RTT))。
为了生成涵盖多数复制情况的历史数据集,可以创建一个数据生成工具。数据生成工具可以使用不同的参数值进行多次实际数据复制。在运行数据生成工具之前,需要指定参数值范围和值增加间隔,如下表1所示。
表1:测试数据的范围的示例
参数 值范围 间隔
数据大小 20KB-12TB 100MB
增量数据比例 1%-70% 2%
平均区域大小 4KB-40MB 10KB
最小区域大小 100B-40MB 10KB
最大区域大小 100B-40MB 10KB
总区域数目 1-2<sup>32</sup> 10
备份文件数目 1-2<sup>64</sup> 100
网络带宽 10Mbps-10Gbps 100Mbps
网络时延 1ms-200ms 20ms
基于表1中所预设的测试范围,数据生成工具将逐个遍历参数值,使用预定义的{并发数目,数据切片大小}对来在两个测试设备之间进行实际数据复制,以获得执行结果,其中执行结果包括“执行时间”和“发送的网络字节”。对于每一轮,比较不同的{并发数目,数据切片大小}对的执行结果,选择一个具有最小“运行时间”的{并发数目,数据切片大小}对作为最佳{并发数目,数据切片大小}对。例如,表2示出了某个给定的测试参数。
表2:给定测试参数的示例
参数 间隔
数据大小 200GB
增量数据比例 1%
平均区域大小 4KB
最小区域大小 100B
最大区域大小 4MB
总区域数目 547
备份文件数目 143
网络带宽 10Mbps
网络时延 1ms
针对表2中的给定测试参数,可以利用多个{并发数目,数据切片大小}对来执行多轮数据复制测试,其测试结果如下表3所示,第4对所花费的执行时间最少,因此第4对可以被认定为针对上述给定测试参数的恰当的数据传输模式。
表3:针对不同对的测试结果的示例
Figure BDA0002137238200000081
数据生成工具将表3中的测试结果记录为决策树学习的先验知识,该记录包括9维度的输入和1维度的输出,如下表4所示出的,将测试数据用作先验知识来训练决策树模型。
表4:测试数据集的示例
Figure BDA0002137238200000091
根据本公开的实施例,在生成了并行数据传输的测试数据集之后,可以使用一些机器学习算法来训练出机器学习模型,以用于确定实际场景中的传输模式(其包括并发数目和数据切片大小)。为了构建基于属性的自学习归纳知识获取系统,可以利用机器学习相关算法动态创建分类模型来表示先验知识,并在新数据进入时辅助进行分类。根据本公开的一些实施例,机器学习模型需要满足以下两个方面:通过监督学习解决多变量系统分类问题;对于即将获得的新训练数据,支持增量学习。
例如,为了支持知识的增量归纳,可以使用人工神经网络算法库Learn++来构建神经网络结构,并且动态和递增地更新神经网络的权重,Learn++是一种用于增量训练神经网络模式分类器的算法,该算法不需要在后续的增量学习会话期间访问先前使用的数据,但同时,其也不会忘记以前获得的知识。备选地,还可以使用增量支持向量机(SVM)算法,其为一种在线递归算法。在线增量支持向量机算法侧重于高效增量SVM学习的设计和分析,能够提供快速、稳定和稳健的分类功能。
在本公开的一些实施例中,可用使用决策树模型作为机器学习模型。决策树是类似流程图的结构,其中每个内部节点表示对属性的“测试”,每个分支代表测试的结果,并且每个叶节点代表一个类标签(计算所有属性后做出的决定)。从根到叶的路径表示分类规则。在决策分析中,决策树和密切相关的影响图被用作视觉和分析决策支持工具。决策树通常用于决策分析,以帮助确定最有可能达到目标,同时也是机器学习中的流行工具的策略。
ID3算法是一种决策树算法。每个训练实例都被描述为属性-值对的列表,其构成了该实例的联合描述。该实例标有它所属的类的名称。为了简化讨论,假设实例属于两个类中的一个:正实例,其是要学习的概念(目标概念)的示例;以及负实例,其是目标概念的反例。ID3算法可以直接的方式应用于两个以上的类。此外,假设属性具有离散值。ID3是一种有用的概念学习算法,因为其可以有效地构建一个很好地推广的决策树。对于非增量学习任务,ID3算法通常是构建分类规则的较好选择。
然而,对于增量学习任务,最好是逐步接受实例,而不需要每次都构建新的决策树,ID4算法是一种支持增量学习的逐步学习决策树。用于确定何时在节点处改变属性测试的ID4算法中的机制被包括在新算法ID5R中,其保证与给定训练实例集合的ID3算法构建相同的决策树。然而,与ID4算法一样,ID5R无法处理数字属性和两个以上的有价值属性。
因此,在本公开的一些实施例中,可以使用快速决策树(VFDT)来构建决策树。VFDT一种基于Hoeffding树的决策树学习系统。可以在每个实例的恒定时间学习Hoeffding树,并通过使用Hoeffding边界克服传统决策树学习器(诸如ID3、C4.5和SLIQ)的存储限制。词边界用于确定决策树的每个内部节点需要多少实例,以便在如何拆分节点方面做出统计上重要的决策。Hoeffding边界的一个很好的特征是其独立于原始数据集的概率分布,这反过来意味着需要更多的观察才能得到与分布依赖方法相同的结论。Hoeffding边界的关键特征是它确保选择的属性具有高概率,与使用无限数量的实例选择的属性相同。VFDT能够使用现成的硬件每秒处理数万个实例。因此,本公开的实施例使用VFDT算法来训练Hoeffding树以用作决策树模式。应当理解,任何已知的或者将来改进的VFDT或Hoeffding树相关算法可以与本公开的实施例结合使用。
图4示出了根据本公开的实施例的用于训练决策树模型的方法400的流程图。如图4所示,在402,在实验室利用不同的数据属性和网络状况来生成测试数据集,然后在404利用测试数据集来训练决策树模型。在完成决策树的训练之后,在406在存储设备和/或存储系统的客户处部署训练好的决策树模型,然后在408在存储系统的并行数据传输期间向用户推荐合适的并发数目和数据切片大小。
在410,获得新的训练数据。从实验室生成的测试数据集由于是间隔采用测试,可能不能覆盖完全的实际场景,虽然决策树模型由于其泛化能力能够针对各种场景产生一个最优方案,然而所推荐的方案可能并不是真正的最优方案。因此,在实际的并行数据传输过程中,如果用户由于某些原因选择了与决策树模型推荐的方案不同的方案(不同的并发数目和数据切片大小),并且用户选择的方案效果更好(例如,处理速度更快),则可以将用户选择的方案的特征(例如并发数目和数据切片大小)进行收集,并且作为新的训练数据。然后,在404对决策树模型进行增量训练(而无需完整的重复训练),也即,将用户选择的方案数据作为学习样本,参与下一轮的决策树模型训练。在一些实施例中,可以使用适合大数据增量学习的Hoeffding树来作为本公开的实施例中的决策树模型。通过这种方式,能够进一步提高所训练的决策树模型的准确率。
图5示出了根据本公开的实施例的示例决策树模型500的一部分的示意图。例如,决策树模型500是使用VFDT算法基于测试数据集而自动学习生成的分类模型。在图5的示例中,根节点510例如为数据属性“数据大小”,如果待并行传输的数据大小为100GB,则需要进一步判断总区域数目,如边511所指示的;如果数据大小为200GB,则直接选择第3对并发数目-数据切片大小530,如边512所指示的;如果数据大小为400GB,则需要进一步判断网络带宽的大小,如边513所指示的。
在子节点520处,如果待并行传输的增量数据的总区域数目为1,则选择第4对并发数目-数据切片大小550,如边521所指示的;如果待并行传输的增量数据的总区域数目为4,则选择第2对并发数目-数据切片大小560,如边522所指示的。类似地,在子节点540处,如果当前的网络带宽为100MB,则选择第1对并发数目-数据切片大小570,如边541所指示的;如果当前的网络带宽为200MB,则选择第3对并发数目-数据切片大小580,如边542所指示的;如果当前的网络带宽为2GB,则选择第3对并发数目-数据切片大小590,如边543所指示的。
应当理解,图5中仅示出了示例决策树模型的一部分,实际的决策树模型还包括更多的节点和边或者不同的节点和边。此外,虽然图5的示例决策树模型500的边的判断条件为固定值,其也可以为一段范围,例如,边512可以表示范围大于100GB并且小于等于200GB等。
在训练生成决策树模型500之后,针对新的并行数据传输场景,根据所获得的数据属性和网络状况(即使是测试数据中未出现过的新数据),决策树模型500可以自动地确定并推荐恰当的并发数目和数据切片大小。因此,本公开的实施例在并行传输数据时,能够根据实际场景中要传输的数据的属性和实际网络状况,选择恰当的并发数目和数据切片大小,由此能够提高并行传输数据的速度。
图6示出了可以用来实施本公开的实施例的设备600的示意性块图,设备600可以为本公开的实施例所描述的设备或装置。如图6所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个方法或过程可由处理单元601来执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。
在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。
附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (17)

1.一种用于并行传输数据的方法,包括:
获得要从第一存储设备传输到第二存储设备的数据的属性以及所述第一存储设备与所述第二存储设备之间的网络状况;
基于所述数据的所述属性和所述网络状况,确定在并行传输所述数据中使用的并发数目和数据切片大小;以及
基于所述并发数目和所述数据切片大小,在所述第一存储设备与所述第二存储设备之间并行传输所述数据。
2.根据权利要求1所述的方法,其中获得所述数据的所述属性包括:
获得所述数据的大小、所述数据中的文件数目、所述数据中的增量数据比例以及所述增量数据的离散性,所述离散性包括所述增量数据的平均区域大小、最小区域大小、最大区域大小以及总区域数目。
3.根据权利要求1所述的方法,其中获得所述网络状况包括:
获得所述第一存储设备与所述第二存储设备之间的网络带宽和网络时延。
4.根据权利要求1所述的方法,所述并发数目和所述数据切片大小的确定由机器学习模型执行,所述方法还包括:
在第三存储设备与第四存储设备之间使用不同的数据属性和网络状况来执行并行数据传输,所述第三存储设备和所述第四存储设备为测试设备;
基于所述第三存储设备与所述第四存储设备之间的并行数据传输,生成测试数据集;以及
使用所生成的测试数据集来训练所述机器学习模型。
5.根据权利要求4所述的方法,其中生成所述测试数据包括:
针对给定数据属性和给定网络状况,使用多对并发数目-数据切片大小来分别执行多次并行数据传输;
记录使用所述多对并发数目-数据切片中的每对并发数目-数据切片大小完成所述并行数据传输所使用的执行时间;
将所述多对并发数目-数据切片大小中执行时间最少的一对并发数目-数据切片大小确定为最优并发数目和数据切片大小;以及
将所述最优并发数目和数据切片大小与所述给定数据属性和所述给定网络状况相关联地存储在所述测试数据集中。
6.根据权利要求5所述的方法,其中使用所生成的测试数据集来训练所述机器学习模型包括:
使用所生成的测试数据集来训练用于确定并行传输数据中的并发数目和数据切片的决策树模型。
7.根据权利要求6所述的方法,还包括:
将经训练的所述决策树模型部署在存储系统中;
收集比所述决策树模型的推荐方案更优的用户选择方案作为新的训练数据;以及
使用所述新的训练数据来增量训练所述决策树模型。
8.根据权利要求1所述的方法,其中在所述第一存储设备与所述第二存储设备之间并行传输所述数据包括:
基于所述数据切片大小,将所述数据切分成多个数据切片;以及
基于所述并发数目,从所述第一存储设备向所述第二存储设备备份所述多个数据切片。
9.一种用于并行传输数据的设备,包括:
处理单元;以及
存储器,其耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
获得要从第一存储设备传输到第二存储设备的数据的属性以及所述第一存储设备与所述第二存储设备之间的网络状况;
基于所述数据的所述属性和所述网络状况,确定在并行传输所述数据中使用的并发数目和数据切片大小;以及
基于所述并发数目和所述数据切片大小,在所述第一存储设备与所述第二存储设备之间并行传输所述数据。
10.根据权利要求9所述的设备,其中获得所述数据的所述属性包括:
获得所述数据的大小、所述数据中的文件数目、所述数据中的增量数据比例以及所述增量数据的离散性,所述离散性包括所述增量数据的平均区域大小、最小区域大小、最大区域大小以及总区域数目。
11.根据权利要求9所述的设备,其中获得所述网络状况包括:
获得所述第一存储设备与所述第二存储设备之间的网络带宽和网络时延。
12.根据权利要求9所述的设备,所述并发数目和所述数据切片大小的确定由机器学习模型执行,所述动作还包括:
在第三存储设备与第四存储设备之间使用不同的数据属性和网络状况来执行并行数据传输,所述第三存储设备和所述第四存储设备为测试设备;
基于所述第三存储设备与所述第四存储设备之间的并行数据传输,生成测试数据集;以及
使用所生成的测试数据集来训练所述机器学习模型。
13.根据权利要求12所述的设备,其中生成所述测试数据包括:
针对给定数据属性和给定网络状况,使用多对并发数目-数据切片大小来分别执行多次并行数据传输;
记录使用所述多对并发数目-数据切片中的每对并发数目-数据切片大小完成所述并行数据传输所使用的执行时间;
将所述多对并发数目-数据切片大小中执行时间最少的一对并发数目-数据切片大小确定为最优并发数目和数据切片大小;以及
将所述最优并发数目和数据切片大小与所述给定数据属性和所述给定网络状况相关联地存储在所述测试数据集中。
14.根据权利要求13所述的设备,其中使用所生成的测试数据集来训练所述机器学习模型包括:
使用所生成的测试数据集来训练用于确定并行传输数据中的并发数目和数据切片的决策树模型。
15.根据权利要求14所述的设备,所述动作还包括:
将经训练的所述决策树模型部署在存储系统中;
收集比所述决策树模型的推荐方案更优的用户选择方案作为新的训练数据;以及
使用所述新训练数据来增量训练所述决策树模型。
16.根据权利要求9所述的设备,其中在所述第一存储设备与所述第二存储设备之间并行传输所述数据包括:
基于所述数据切片大小,将所述数据切分成多个数据切片;以及
基于所述并发数目,从所述第一存储设备向所述第二存储设备备份所述多个数据切片。
17.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至8中任一项所述的方法。
CN201910657308.6A 2019-07-19 2019-07-19 用于并行传输数据的方法、设备和计算机程序产品 Pending CN112241240A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910657308.6A CN112241240A (zh) 2019-07-19 2019-07-19 用于并行传输数据的方法、设备和计算机程序产品
US16/555,226 US10969964B2 (en) 2019-07-19 2019-08-29 Method, device, and computer program product for parallel data transmission using machine learning to determine number of concurrencies and data slice size

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910657308.6A CN112241240A (zh) 2019-07-19 2019-07-19 用于并行传输数据的方法、设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN112241240A true CN112241240A (zh) 2021-01-19

Family

ID=74167819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910657308.6A Pending CN112241240A (zh) 2019-07-19 2019-07-19 用于并行传输数据的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10969964B2 (zh)
CN (1) CN112241240A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023159347A1 (zh) * 2022-02-22 2023-08-31 华为技术有限公司 一种控制数据读写的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11532132B2 (en) * 2019-03-08 2022-12-20 Mubayiwa Cornelious MUSARA Adaptive interactive medical training program with virtual patients

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049317A (zh) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 云环境下基于队列的高并发数据快速写入系统及方法
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
US20180260531A1 (en) * 2017-03-10 2018-09-13 Microsoft Technology Licensing, Llc Training random decision trees for sensor data processing
CN108733508A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于控制数据备份的方法和系统
CN109885431A (zh) * 2019-03-06 2019-06-14 北京百度网讯科技有限公司 用于备份数据的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924719B2 (en) * 2007-10-10 2011-04-12 Oracle America, Inc. Parallelizing the TCP behavior of a network connection
US9985906B2 (en) * 2016-10-03 2018-05-29 Cisco Technology, Inc. Estimating time duration of bandwidth availability

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
CN103049317A (zh) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 云环境下基于队列的高并发数据快速写入系统及方法
US20180260531A1 (en) * 2017-03-10 2018-09-13 Microsoft Technology Licensing, Llc Training random decision trees for sensor data processing
CN108733508A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于控制数据备份的方法和系统
CN109885431A (zh) * 2019-03-06 2019-06-14 北京百度网讯科技有限公司 用于备份数据的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023159347A1 (zh) * 2022-02-22 2023-08-31 华为技术有限公司 一种控制数据读写的方法和装置

Also Published As

Publication number Publication date
US20210019047A1 (en) 2021-01-21
US10969964B2 (en) 2021-04-06

Similar Documents

Publication Publication Date Title
US10846052B2 (en) Community discovery method, device, server and computer storage medium
US20210058345A1 (en) Utilizing a graph neural network to identify supporting text phrases and generate digital query responses
AU2019280855A1 (en) Detecting suitability of machine learning models for datasets
US10452702B2 (en) Data clustering
KR102134952B1 (ko) 데이터 처리 방법 및 시스템
CN111597247A (zh) 一种数据异常分析方法、装置及存储介质
AU2021309929B2 (en) Anomaly detection in network topology
US11483211B2 (en) Infrastructure discovery and analysis
EP3688616A1 (en) Learning the structure of hierarchical extraction models
JP2017021772A (ja) コピュラ理論に基づく特徴選択
CN116134448A (zh) 使用局部敏感散列的联合机器学习
CN112231514B (zh) 一种数据去重方法、装置及存储介质和服务器
Elagib et al. Big data analysis solutions using MapReduce framework
CN112241240A (zh) 用于并行传输数据的方法、设备和计算机程序产品
US11307781B2 (en) Managing replicas of content in storage systems
Afzali et al. Hadoop-MapReduce: A platform for mining large datasets
US11636081B2 (en) Dynamic index management for computing storage resources
US20230186150A1 (en) Hyperparameter selection using budget-aware bayesian optimization
US20220284023A1 (en) Estimating computational cost for database queries
US11481679B2 (en) Adaptive data ingestion rates
Ouyang et al. Mitigate data skew caused stragglers through ImKP partition in MapReduce
CN113220501A (zh) 用于数据备份的方法、设备和计算机程序产品
WO2021257052A1 (en) Systems and methods for using document activity logs to train machine-learned models for determining document relevance
WO2015176207A1 (en) Assistance service facilitation
US20220327374A1 (en) Dynamic distributed training of machine learning models

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