CN109937405A - 用于发送大数据集的高级重试机制 - Google Patents

用于发送大数据集的高级重试机制 Download PDF

Info

Publication number
CN109937405A
CN109937405A CN201780068476.0A CN201780068476A CN109937405A CN 109937405 A CN109937405 A CN 109937405A CN 201780068476 A CN201780068476 A CN 201780068476A CN 109937405 A CN109937405 A CN 109937405A
Authority
CN
China
Prior art keywords
data
data block
failure
block
repository
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
CN201780068476.0A
Other languages
English (en)
Other versions
CN109937405B (zh
Inventor
M·帕德马纳班
M·雷
A·科卡普尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109937405A publication Critical patent/CN109937405A/zh
Application granted granted Critical
Publication of CN109937405B publication Critical patent/CN109937405B/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0647Migration 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

在本公开的非限制性示例中,提出了用于向目的地数据存储库发送源数据存储库中所存储的数据的系统、方法、和设备。多个数据块可以以第一格式被接收。可以对每个数据块执行至少一个插入或更新操作,用于将第一格式转换为与目的地数据存储模式兼容的格式。可以执行经插入或更新的数据块到目的地数据存储库的传输。可以做出至少一个经插入或更新的数据块未能传输到目的地数据存储库的确定。可以将失败的数据块存储在失败的块重试数据存储库中。可以对失败的数据块重复执行至少一个插入或更新操作,并且可以重新执行失败的数据块到目的地数据存储库的传输。

Description

用于发送大数据集的高级重试机制
背景技术
由数据提供商(例如,电信资源提供商)进行的大数据收集,例如,呼叫记录数据收集总体是通过存储编译记录(例如,呼叫记录)大数据集实现的。通常存储各个记录及其代表性数据集,而在不考虑它们的下游使用和对于数据提供商和数据的下游存取器对这样的数据进行处理时有用的各种模式。为了将这样的数据集转换并存储为有用信息,对原始存储的数据执行各种数据重新格式化操作是有帮助的。重新格式化、传输、以及存储数据集的过程经常产生错误,这些错误会导致记录的不完全传输和/或完全数据传输失败。
关于该总体技术环境,已经考虑了本文所公开的技术方面。另外,尽管已经讨论了总体环境,但是应当理解的是,本文所描述的示例不应当限于背景技术中所标识的总体环境。
发明内容
提供本发明内容以通过简化形式介绍一些概念,这些概念将在下面的具体实施方式部分被进一步描述。本发明内容不旨在标识请求保护的主题的关键特征或重要特征,也不旨在用作帮助确定请求保护的主题的范围。示例的附加方面、特征、和/或优点将部分地在下面的描述中阐述,并且部分地从描述显而易见,或通过实施本公开的实践习得。
本公开的非限制性示例描述了用于从源数据存储库发送数据的系统、方法、和设备,包括:接收多个数据块,该多个数据块以第一格式被接收;对多个数据块中的每个数据块执行至少一个插入或更新(upsert)操作,该至少一个插入或更新操作包括将第一格式转换为与目的地数据存储库兼容的模式;执行经插入或更新的数据块到目的地数据存储库的传输;确定经插入或更新的数据块中的至少一个数据块未能传输到目的地数据存储库;将至少一个失败的数据块存储在失败的块重试数据存储库中;对至少一个失败的数据块重新执行至少一个插入或更新操作;以及重新执行至少一个失败的数据块到目的地数据存储库的传输。
附图说明
参考以下附图描述非限制性和非穷尽性示例。
图1是示出提供用于大数据集传输的高级重试机制的示例分布式计算环境的示意图。
图2是示出利用回退重试方案的示例性失败的数据传输重试机制的示意图。
图3A和3B示出了用于实现从源数据存储库向目的地数据存储库的大数据集传输的高级重试机制的示例性方法300A和300B。
图4示出了用于执行本公开的一个或多个方面的计算设备。
图5是可以实践本公开的方面的计算设备的简化框图。
图6是示出可以实践本公开的方面的计算设备100的物理组件(例如,硬件)的框图。
图7是示出提供用于大数据集传输的高级重试机制的示例分布式计算环境的示意图。
具体实施方式
将参考附图详细描述各种实施例,其中贯穿若干视图相似的参考标号表示相似的部件和装配。对各种实施例的引用不限制所附权利要求的范围。另外,说明书中所阐述的任意示例不旨在用于限制,而是仅仅阐述所附权利要求的很多可能实施例中的一些实施例。
以上描述的各种实施例和示例通过图示提供,并且不应当被理解为限制所附权利要求。本领域技术人员将很容易认识到,在不遵循本文所示出和描述的示例实施例和应用并且不偏离权利要求的真正精神和范围的条件下可以做出各种修改和改变。
总体上,本公开涉及用于将以第一格式存储在源数据存储库中的数据集传输到要求不同格式的目的地数据存储库的系统、方法、和设备。本文所描述的系统、方法、和设备可以用于将以非结构化、半结构化、和/或结构化格式存储的数据从源数据存储库传输到要求以指定模式存储数据的目的地数据存储库。根据具体示例,从电信公司接收的通常以半结构化格式存储的呼叫记录(即,不符合与关系数据库相关联的数据模型的形式结构或者其他数据表格的形式的数据,但是包含标签或其他标记以分离语义元素并增强记录和数据内的字段的层级的数据)可以被存储在源数据存储库中,并且在对半结构化数据执行一个或多个格式修改操作以使得其满足目的地数据存储库的指定模式之后被传输到目的地数据存储库。
如本文所使用的,术语“数据集”描述了数据记录的有限集合,“数据记录”描述了数据集内的单个行,并且“数据块”描述了尺寸经由下面更完全描述的一个或多个机制而确定的数据集的存储碎片。多个方面提供了用于周期性地确定源数据存储库中的数据集是否应当被提取以用于向目的地数据存储库传输、将存储在源数据存储库中的数据集划分为数据块、从源数据存储库提取数据块、对每个数据块执行一个或多个插入或更新操作、以及将经插入或更新的数据块传输到目的地数据源的机制。
根据示例,数据集可以包括大量记录。这些数据集通常可以为千兆字节的大小(如果不是万亿字节的大小的话)。根据示例,这样的数据集可以被分为可配置的有限集合大小的单个数据块。所创建的这些单个数据块是固定大小的并且可以包括不完整的记录。根据附加示例,数据块的大小可以基于可用于数据集传输的计算资源而确定。例如,如果计算资源丰富,则可以能够同时运行比具有可用于数据集传输的紧张或有限计算资源的系统的情况更大数目的资源来用于执行映射操作。
数据块可能由于各种原因而未能成功传输到目的地数据存储库。作为示例,数据块中包括的一个或多个记录可能会由于网络天气在去往目的地数据存储库的传输过程期间未能被映射器或映射引擎正确地插入或更新。如本文所使用的,插入或更新(upsert)操作描述了修改在源数据存储库中所存储的数据格式,以使得其可以被成功传输到要求第二数据格式的目的地数据存储库时所涉及的任何操作。例如,如本文所使用的插入或更新操作可以包括插入行、或者基于已经存在的行更新现有的行。根据本文所描述的系统和方法,插入或更新仅适用于数据集中存在的完整记录。所有的不完整记录被一个或多个残差冲洗引擎作为残差忽略并冲洗。当个别映射器或映射引擎处理这些单独的数据块时,不完整的记录在处理/料理期间被缩减器任务调和。在插入或更新时被标识为具有错误的所有数据块被标记为“失败的块”。在执行缩减器任务(例如,当一个或多个记录不完整)时,所有残差被标记为失败并且这些失败记录被作为失败的块容器中的另一失败的数据块对待。
本公开的附加方面提供了用于未能成功传输到要求特定模式的目的地数据存储库的数据块的高级重试机制。具体地,提供并行处理,由此使得成功传输的数据块响应于它们的成功传输而在目的地数据存储库中立即可访问,同时本文所描述的高级重试机制对失败的数据块同时进行操作。高级重试机制包括将失败的数据块传输到失败的块重试数据存储库,根据回退重试尝试阈值周期性地从失败的块重试数据存储库提取失败的数据块,对提取数据块重新执行一个或多个插入或更新操作,以及重新尝试向目的地数据存储库传输经插入或更新的数据块。这样,即使在一个或多个数据块未能成功传输到目的地数据存储库的情况下也可以实现从源数据存储库到目的地数据存储库的无损数据传输,同时在失败的数据块重试期间提供对于最初或后续成功传输到目的地数据存储库的数据块的访问。
可以根据以下示例来实现用于执行来自源数据存储库的数据集的分块、处理那些数据块以用于向目的地数据存储库传输、以及重试未能传输到目的地数据存储库的数据块的机制。
示例-分割创建和即时处理:
1.将数据集X1分割为数据块x11、x12、x13...xN。与数据严格性(datastrictness)相反,利用存储器严格性(memory-strictness)分割这些数据块(例如,即使在记录的中间进行分割,也为1MB)。
2.创建针对创建n个任务的批量作业的通知。
3.对于每个数据块:(a)利用任务Id.X11...txN对每个数据块加标签;(b)将加标签的数据块上传到永久存储装置,并且在上传完成时创建通知。
4.针对1...N个数据块重复以上步骤3。
5.针对数据集X2...Xn重复步骤1-4。
示例-主批量作业:
1.接收作业创建通知并发起批量作业→X1J。
2.创建针对tx11数据块的空任务:(a)tx11等待X11数据块上传完成的通知;(b)一旦接收到通知,就开始处理数据块;(c)将残差记录(由于分块而未完成)移到残差容器中的X1J-rx11文件;(d)将所有失败的记录连同元数据(例如,指示RetryCount(重试计数)数目、FileName(文件名)、FailedRecordsCount(失败的记录计数)等)一起移到失败容器中的X1J-fx11文件;(e)删除x11数据块。
3.重复步骤2,直到xN数据块已经被成功传输为止。
4.创建任务txN+1:(a)缝补来自残差容器的所有残差(X1J-rx11、X1J-rx12、X1J-rx13...X1J-rxN);(b)处理数据块;(c)将所有失败的记录移到失败容器中的X1J-fxN+1文件;(d)删除X1J-rx11、X1J-rx12、X1J-rx13...X1J-rxN;(e)如果不存在失败的记录,则将X1标记为“SUCCESS(成功)”,或者如果存在一个或多个失败的记录,则将X1标记为“PARTIALSUCCESS(部分成功)”。
示例-重试批量(独立调度):
假定:(a)X1产生失败的数据块X1J-fx11、X1J-fx13、X1J-fx15;(b)X2产生失败的数据块X2J-fx21、X2J-fx23;(c)Xn产生失败的数据块XnJ-fxn1:
1.扫描失败容器。
2.创建针对X1J-fx11的任务(a)处理数据块;(b)将FailedRecordsCount存储作为X1J-fx11文件的元数据;(c)从元数据取回重试计数并利用RetryCount+1更新重试计数。
3.针对X1J-fx13...XnJ-fxn1重复步骤2。
4.创建用于后处理的任务:(a)获取针对X的所有失败的数据块;(b)如果Sum(FailedRecordsCount)=0,则删除所有失败的数据块并将X1文件标记为“SUCCESS”;(c)如果RetryCount=Configurable MaxRetry,则删除数据块;(d)针对X2...Xn重复子步骤(a)。
根据一些方面,未能成功传输到目的地数据存储库的数据块可以被传输回失败的块重试数据存储库,并且如上所述的向目的地数据存储库传输这种重复失败的数据块的重试过程可以基于线性缩放的、指数缩放的、或非缩放的回退尝试阈值而被重复一次或多次。
如果利用线性缩放的回退尝试阈值,则失败的数据块的重试将以规律的时间间隔发生。即,根据线性缩放的回退尝试阈值,第一次重试将在X秒、分钟、小时或天后发生,并且如果失败的数据块第二次未能传输,则第二次重试将在X秒、分钟、小时或天后发生等等,直到失败的数据块被成功传输到目的地数据存储库或者已经发生了阈值数目的重试传输尝试为止。响应于达到阈值数目的传输尝试并且仍未成功传输到目的地数据存储库,重复失败的数据块可以被发送到永久失败容器,以使得不进行用于传输该数据库的附加尝试。根据更具体的示例,第一次重试可以在数据块初次未能成功传输到目的地数据存储库之后的5秒发生,如果失败的数据块在第一次重试期间未能传输,则第二次重试可以在数据块在第一次重试期间未能成功传输到目的地数据存储库之后的5秒发生,如果失败的数据块在第二次重试期间未能传输,则第三次重试可以在数据块在第二次重试期间未能传输之后的5秒发生等等,直到失败的数据块被成功传输到目的地数据存储库或者已经发生阈值数目的重试传输尝试为止。
在利用指数缩放的回退尝试阈值的情况下,失败的数据块的重试将以指数缩放的时间间隔发生。即,第一次重试将在X秒、分钟、小时或天后发生,并且如果失败的数据块第二次未能传输,则第二次重试将在Y(Y是X的指数函数)秒、分钟、小时或天后发生等,直到失败的数据块被成功传输到目的地数据存储库或者已经发生阈值数目的重试传输尝试为止。根据更具体的示例,第一次重试可以在数据块初次未能成功传输到目的地数据存储库之后的5秒发生,如果失败的数据块在第一次重试期间未能传输,则第二次重试可以在数据块在第一次重试期间未能成功传输到目的地数据存储库之后的25秒进行,如果失败的数据块在第二次重试期间未能传输,则第三次重试可以在数据块在第二次重试期间未能传输之后的若干分钟发生等等,直到失败的数据块被成功传输到目的地数据存储库或已经发生阈值数目的重试传输尝试为止。
在利用非缩放的回退尝试阈值的情况下,失败的数据块的重试将以各种确定的时间间隔发生。即,与以线性或指数时间标尺重试失败的数据块不同,可以以一个或多个非缩放的间隔引擎确定的非缩放的间隔来执行传输重试。这些引擎可以基于计算机学习确定有可能成功的连续重试之间的时间跨度来提供用于重试失败的数据块的非缩放的间隔,从而确定与目的地数据存储库相关联的接收的数据指示目的地数据存储库处于指示目的地数据存储库能够容纳传输数据或特定格式的传输数据的一个或多个状态,确定与目的地数据存储库相关联的接收数据指示目的地数据存储库处于指示目的地数据存储库不能容纳传输数据或特定格式的传输数据的一个或多个状态等。此外,非缩放的间隔引擎可以确定用于重试一个或多个数据块以向目的地数据存储库传输的随机时间准则。
根据示例,向将从源数据存储库向目的地数据存储库传输的数据集的每个数据块指派单独的引擎或引擎组(例如,提取引擎、映射引擎、插入或更新引擎、加密和解密引擎)。因此,指示在传输期间向其指派的具体引擎的元数据可以与每个数据块相关联。如果来自多个数据集传输周期的多个失败的数据块的元数据指示它们由一个或多个相同引擎操控,则该元数据可以向数据集传输的管理员指示数据传输系统中的一个或多个引擎有可能对传输错误负责。另外,指示针对数据块已经尝试的向目的地数据存储库传输的次数的元数据可以与失败的数据块相关联。可以利用这样的元数据基于回退重试尝试阈值来确定是否执行数据块的后续重试传输尝试,并且如果数据块没有超过回退重试尝试阈值,则该元数据可以提供如下机制,该机制用于基于由回退重试尝试阈值定义的线性或指数时间标尺来确定等待多长时间以重试向目的地数据存储库传输数据块。
在从源数据存储库向目的地数据存储库传输数据库期间,可以在一个或多个周期中对数据块和/或数据块中包括的单独记录进行加密和解密。例如,响应于从源数据存储库提取数据块,响应于向目的地数据存储库传输数据块,响应于将失败的数据块传输到失败的块重试数据存储库,响应于从失败的块重试数据存储库提取失败的数据块,以及响应于将失败的数据块传输到永久失败容器,可以对数据块进行加密或解密。根据其他示例,数据块和/或数据块中包括的单独记录可以在静止时或者在传送时被加密,并且数据块和/或数据块中包括的单独记录可以仅在传输边界处(例如,在源数据存储库的边界处、目的地数据存储库的边界处、失败的块重试数据存储库的边界处)被解密。
根据示例,在向目的地数据存储库传输数据集期间,可以向包括该数据集的每个数据块指派用于执行加密和解密操作的单独的引擎。因此,不同于采用单个服务对数据集进行加密和解密的传统大数据传输方法(其有时会花费数天用于大数据集并且经常导致丢弃记录),向每个数据集指派用于加密和解密操作的单独的引擎显著提高了数据传输的效率并且减少了传输数据集所需要的时间量。另外,由于指派给数据块的引擎的一次或多次错误写入导致的数据块传输失败仅影响该数据块,根据本文描述的多个方面,因而在目的地数据存储库处立即可以访问成功传输的数据块,同时可以重试失败的数据块。
图1是示出提供用于大数据集传输的高级重试机制的示例分布式计算环境100的示意图。计算环境100包括源数据集上下文102、目的地数据集上下文114、数据块重试上下文108、以及网络120。原始数据集上下文102包括源数据存储库104和诸如服务器计算设备106等一个或多个计算设备。诸如音频和视频呼叫日志文件等大数据集可以被存储在源数据存储库104中。根据示例,这样的大数据集可以包括以各种格式存储的多个文件。服务器计算设备106可以利用一个或多个模块和/或引擎执行与源数据存储库104中存储的数据集有关的各种操作,这些模块和/或引擎是例如,用于周期性地分析数据集104并将数据集(例如,数据集S1和S2)划分为诸如源数据存储库104中所示的数据块S1C1、S1C2、S1C3、和S2CN、S2C2、S2C3、和S2CN等数据块的触发器引擎。可以由服务器计算设备106执行的附加操作包括从源数据存储库104提取数据块以用于传输、加密和解密数据块和/或数据块中包括的单独文件、确定诸如目的地数据存储库116等目的地数据存储库的格式要求、以及对数据块和它们的对应数据记录执行一个或多个插入或更新操作。
响应于对包括所划分的数据集的一个或多个数据块(例如,数据块S1C1、S1C2、S1C3、S1CN、S2C1、S2C2、S2C3、和S2CN)的提取,服务器计算设备106可以向每个提取的数据块指派单独的映射引擎,以用于执行一个或多个插入或更新操作来将每个提取的数据块的格式修改为诸如目的地数据存储库116等目的地数据存储库所支持的特定模式格式。在对每个数据块执行插入或更新操作时,可以经由网络120进行第一次尝试以将每个数据块传输到目的地数据存储库116。根据本示例,在向目的地数据存储库116传输数据块之前和/或期间,可以由诸如服务器计算设备118等一个或多个计算设备执行一个或多个操作。例如,服务器计算设备118可以对向目的地数据存储库116传输的一个或多个数据块进行加密或解密。服务器计算设备118还可以对传输的每个数据块进行检查,以确保包含在其中的文件的格式符合目的地数据存储库116所支持的结构化格式。
如图1所示,已经进行了第一次尝试以将来自数据集1(即,S1C1、S1C2、S1C3、和S1CN)和数据集2(即,S2C1、S2C2、S2C3、和S2CN)的每个数据块从源数据存储库104向目的地数据存储库116传输。在第一次传输尝试时,只有数据块S1C1、S1C2、S1C3、S1CN*、S2C1、S2C2、S2C3、和S2CN*被成功传输到目的地数据存储库116。根据本文所描述的系统和方法,经由网络120将未能成功传输到目的地数据存储库116的数据块传输到诸如失败的块重试数据存储库110的失败的块重试数据存储库。因此,在本示例中,失败的数据S1C7、S2C33、S3C15、和SNCN**已经被传输并且存储在失败的块重试数据存储库110中。根据附加的方面,与将未能传输的数据块传输到诸如失败的块重试数据存储库110的失败的块重试数据存储库不同,可以在源数据存储库104内将这些失败的数据块标记为失败,并且可以直接从源数据存储库104执行这些失败的数据块到目的地数据存储库116的后续传输重试。诸如服务器计算设备112的一个或多个计算设备可以对一个或多个失败的数据块和/或一个或多个失败的数据块中包括的单独文件进行加密或解密。
根据示例,在已经将来自所划分的传输数据集的失败的数据块存储在失败的块重试数据存储库110(或者替代地已经在源数据存储库104中将失败的数据块标记为失败)之后,可以进行一次或多次附加的周期性尝试以将失败的数据块向目的地数据存储库116传输。例如,可以由服务器计算设备对失败的块S1C7、S2C33、S3C15、和SNCN**执行一个或多个操作以进行第二次传输尝试。这样的操作可以包括在第二次尝试向目的地数据存储库116传输失败的数据块时,对失败的数据块进行加密和/或解密,从失败的数据块存储装置110提取失败的数据块(或者替代地在源数据存储库104中已经被标记为失败的失败的数据块),以及对失败的数据块重新执行一个或多个插入或更新操作。根据示例,服务器计算设备可以向每个失败的数据块指派单独的引擎以用于上述操作。服务器计算设备112还可以做出关于失败的数据块未能传输到目的地数据存储库116的次数的确定,并且基于该确定和回退重试尝试阈值做出有关在重试尝试之间等待多长时间的确定,和/或基于失败的数据块已经超过回退重试尝试阈值数目(例如,1次尝试、2次尝试、3次尝试、4次尝试、5次尝试)的确定做出有关是否将失败的数据块传输到永久失败容器的确定。
图2是示出利用回退重试方案的示例性失败的数据传输重试机制的示意图200。尽管图2中所示的数据传输重试机制描绘了在三次重试尝试之后完成数据集传输,但是根据本文所描述的方面,可以通过一次、两次、三次、或N次重试数据集的一个或多个失败的数据块来完成数据集传输。另外,如果在所有数据块从源数据存储库到目的地数据存储库的初次数据块传输尝试时成功实现数据集的每个数据块的成功传输,则数据集的成功数据传输可以无需使用图2所示的数据传输重试机制。
示意图200包括具有失败的块重试数据存储库204的第一数据块重试上下文202,在失败的块重试数据存储库204中存储在第一次传输尝试期间未能传输到诸如目的地数据存储库208的目的地数据存储库的数据块。根据本示例,失败的数据块C3、C4、C5、D3、D4、E5、和E7中的每个数据块在初次传输尝试期间未能传输到目的地数据存储库208,而数据块E6和D5(在目的地数据库208中用粗体示出)在初次数据块传输尝试期间被成功地从源数据存储库传输到目的地数据存储库208。因此,根据本文所描述的系统和方法,进行向目的地数据存储库208传输失败的数据块C3、C4、C5、D3、D4、E5、和E7中的每个数据块的第一次重试尝试。如图2中所示,已经从第一数据集分出诸如数据块C3、C4、和C5等具有“CN”名称的数据块,已经从第二数据集分出诸如数据块D3、D4、和D5等具有“DN”名称的数据块,并且已经从第三数据集分出诸如数据块E5、E6、和E7等具有“EN”名称的数据块。
在第一次重试尝试之前,诸如服务器计算设备206的一个或多个计算设备可以对数据块C3、C4、C5、D3、D4、E5、和E7中的每个数据块执行一个或多个操作,诸如,加密和解密操作、提取操作、以及插入或更新操作。服务器计算设备206可以在执行这样的操作时向失败的数据块C5、D3、D4、E5、和E7中的每个数据块指派单独的引擎或模块。如图2所示,在第一次传输重试尝试期间,只有初次失败的数据块C4、D4、和E7被成功传输到目的地数据存储库208。一旦被成功传输到目的地数据存储库208,就立即使得那些数据块和其中所包括的记录可以访问,同时可以对其余失败的数据块进行重试尝试。因此,将失败的数据块C3、C5、D3、和E5中的每个数据块传输回失败的块重试数据存储库204(在第二次传输重试尝试期间被称为失败的块重试数据存储库212,并且在第三次传输重试尝试期间被称为失败的块重试数据存储库220)。尽管关于图2提到了“失败的块重试数据存储库”,但是根据本公开的方面,在源数据存储库内可以将失败的数据块简单地标记为失败,并且可以由此重试向目的地数据存储库传输这些失败的数据块。
示意图200包括具有失败的块重试数据存储库212的第二数据块重试上下文210,在失败的块重试数据存储库212中存储在第一次传输尝试和后续的第一次重试传输尝试期间未能传输到诸如目的地数据存储库208、216、和216等目的地数据存储库的数据块。因此,根据本示例,在初次传输尝试和后续的第一次重试尝试期间,失败的数据块C3、C5、D3、和E5中的每个数据块未能传输到目的地数据存储库216。因此,根据本文所描述的系统和方法,进行向目的地数据存储库216传输失败的数据块C3、C5、D3、和E5中的每个数据块的第二次重试尝试。
在第二次重试尝试之前,诸如服务器计算设备214的一个或多个计算设备可以对数据块C3、C5、D3、和E5中的每个数据块执行一个或多个操作,例如,加密和解密操作、提取操作、以及插入或更新操作。服务器计算设备214可以在执行这样的操作时向失败的数据块C3、C5、D3、和E5中的每个数据块指派单独的引擎或模块。如图2中所示,在第二次传输重试尝试期间,只有失败的数据块C3、C5、和E5被成功传输到目的地数据存储库216。一旦成功传输到目的地数据存储库216,就立即使那些数据块和其中所包括的记录可以访问,同时可以对其余失败的数据块进行重试尝试。因此,其余失败的数据块D3被传输回失败的块重试数据存储库212(在第三次传输重试尝试期间被称为失败的块重试数据存储库220)。
示意图200包括具有失败的块重试数据存储库224的第三数据块重试上下文218,在失败的块重试数据存储库224中存储在第一次传输尝试和后续的第一和第二次重试传输尝试期间未能成功传输到诸如目的地数据存储库208、216、和216等目的地数据存储库的数据块。因此,根据本示例,在初次传输尝试和后续的第一和第二重试尝试期间,失败的数据块D3未能传输到目的地数据存储库224。这样,根据本文所描述的系统和方法,进行向目的地数据存储库224传输失败的数据块D3的第三次重试尝试。
在第三次重试尝试之前,诸如服务器计算设备222的一个或多个计算设备可以对失败的数据块D3执行一个或多个操作,例如,加密和解密操作、提取操作、以及插入或更新操作。如图2中所示,在第三次传输重试尝试期间,失败的数据块D3被成功传输到目的地数据存储库224。一旦被成功传输到弹性作业(elastic job)存储库224,就已经完成了对数据块C3、C4、C5、D3、D4、D5、E5、E6、和E7中的每个数据块的成功传输。
图3A和图3B示出了用于实现从以第一格式存储文件的源数据存储库向要求以规定模式存储数据的目的地数据存储库的大数据集传输的高级重试机制的示例性方法300A和300B。该方法起始于开始操作,并且流程移动到操作302A,其中将源数据存储库中的一个或多个数据集分为多个数据块以用于传输。流程从操作302A继续进行到操作304A,其中为所划分的数据块中的每个数据块指派单独的提取引擎(例如,为在操作302A处从一个或多个数据集划分出的每个数据块指派不同的提取引擎),并且从源数据存储库提取数据块以用于传输。
流程从操作304A继续进行到操作306A,其中向所提取的数据块中的每个数据块指派单独的加密引擎,并且可选地每个数据块由它们的相应指派的加密引擎进行加密以用于传输。流程从操作306A移动到操作308A,其中做出关于所提取的数据块将被传输到的目的地数据块的结构化模式要求的确定。移动到操作310A,向所提取的数据块中的每个数据块指派单独的映射引擎,并且由每个数据块的相应指派的映射引擎对它们执行一个或多个插入或更新操作,以使它们的格式符合它们将被传输到的目的地数据存储库所支持的模式。
流程从操作310A继续进行到操作312A,其中进行将经插入更新的数据块中的每个数据块传输到目的地数据存储库的第一次尝试。从操作312A继续进行到操作314A,做出至少一个数据块未能成功传输到目的地数据存储库的确定。流程从操作314A继续进行到图3B和操作302B,其中将初次未能成功传输到目的地数据存储库(可以从不同数据集得出)的每个数据块传输到失败的块重试数据存储库。替代地,可以在源数据存储库内将失败的数据块标记为失败,并且可以从源数据存储库执行这些失败的块的重试,而不通过单独的失败的块重试数据存储库来实现重试执行。根据示例,在初始失败的数据块被传输到失败的块重试数据存储库之前,可以由单独指派的加密或解密引擎对初始失败的数据块中的每个数据块进行加密或解密。
流程从操作302B继续进行到操作304B,其中可以实现一个或多个重试模块,并且从失败的块重试数据存储库提取每个初始失败的数据块。根据示例,在重试传输尝试之前,可以由单独分派的加密或解密引擎对每个初始失败的数据块进行加密或解密。
移动到操作304B,流程继续到操作306B,其中为每个初始失败的数据块指派单独的映射引擎,并且由每个初始失败的数据块的相应指派的映射引擎对它们执行一个或多个插入或更新操作,以用于使它们的格式符合它们将被传输到的目的地数据存储库所支持的模式。继续进行到操作308B,进行将初始失败的数据块中的每个数据块传输到目的地数据存储库的第一次重试尝试。
流程从操作308B继续进行到操作310B,其中在第一次重试尝试期间被成功传输到目的地数据存储库的数据块与在初次传输尝试期间被成功传输到目的地数据存储库的任意数据块合并在一起。流程随后继续进行到操作312B,其中操作302B-310B被重复,直到所有数据块已经被成功地传输到传输数据存储库或者超过了基于指定重试策略的重试尝试的回退重试阈值数目。
图4和图5示出了可以实践本公开的实施例的计算设备400,例如,移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图4,示出了用于实现实施例的示例性移动计算设备400。在基本配置中,移动计算设备400是具有输入元件和输出元件二者的手持式计算机。移动计算设备400通常包括允许用户将信息输入到计算设备400输入的一个或多个输入按钮410和显示器405。移动计算设备400的显示器405也可以用作输入设备(例如,触摸屏显示器)。如果包括可选的侧输入元件415,则侧输入元件415允许进一步的用户输入。侧输入元件415可以是旋转开关、按钮、或任何其他类型的手动输入元件。
在替代实施例中,移动计算设备400可以包含更多或更少的输入元件。例如,在一些实施例中,显示器405可以不是触摸屏。在又一替代实施例中,移动计算设备400是便携式电话系统,例如,蜂窝电话。移动计算设备400还可以包括可选键区435。可选键区435可以是物理键区或者在触摸屏显示器上生成的“软”键区。
在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器405、视觉指示器420(例如,发光二极管)、和/或音频换能器425(例如,扬声器)。在一些实施例中,移动计算设备400包含用于向用户提供触觉反馈的振动换能器。在又一些实施例中,移动计算设备400包含用于向外部设备发送信号或从外部设备接收信号的输入和/或输出端口,例如,音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及视频输出(例如,HDMI端口)。在实施例中,字处理应用可以显示在显示器405上。
图5是示出移动计算设备的一个实施例的架构的框图。即,移动计算设备500可以包含实现本公开的一些方面的系统(即,架构)502。在一方面,系统502被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些方面中,系统502被集成为计算设备,例如,集成个人数字助理(PDA)和无线电话。
一个或多个应用程序566可以被加载到存储器562中,并且可以在操作系统564上运行或者与操作系统564关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、字处理程序、电子制表程序、互联网浏览器程序、消息传递程序、图表应用等。系统502还包括存储器562内的非易失性存储区域568。非易失性存储区域568可以用于存储在系统502掉电时不应当丢失的永久性信息。应用程序566可以使用信息(例如,电子邮件应用使用的电子邮件或其他消息等)并将信息存储在非易失性存储区域568中。
同步应用(未示出)也驻留在系统502上并且被编程为与驻留在主机计算机上的对应同步应用交互,以保持非易失性存储区域568中所存储的信息与主机计算机中所存储的对应信息同步。如应当认识到的,包括用于向要求结构化格式的目的地数据存储库发送半结构化数据集的步骤和方法在内的其他应用可以被加载到存储器562中,并且可以在移动计算设备500上运行。
系统502具有电源570,该电源可以实现为一个或多个电池。电源570还可以包括外部电源,诸如,AC适配器或对电池进行补充或充电的供电坞底座(docking cradle)。
系统502还可以包括无线电572,该无线电执行发送和接收射频通信的功能。无线电572经由通信载体或服务提供商帮助系统502与“外部世界”之间的无线连通性。去往和来自无线电572的传输在操作系统564的控制下进行。换言之,由无线电572接收的通信可以经由操作系统564被传播到应用程序566,反之亦然。无线电572允许系统502与诸如网络上的其他计算设备通信。无线电572是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块、或经调制的数据信号(例如,载波或其他传输机制)中的其他数据实现,并且包括任何信息递送介质。术语“经调制的数据信号”表示以对信号中的信息进行编码的方式来改变或设置其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF红外和其他无线介质的无线介质。本文所使用的术语“计算机可读介质”包括存储介质和通信介质二者。
系统502的该实施例使用可以用来提供视觉通知的视觉指示器520和/或经由音频换能器525产生可听通知的音频接口574来提供通知。在所示出的实施例中,视觉指示器520是发光二极管(LED),并且音频换能器525是扬声器。这些设备可以被直接耦合到电源570,以使得这些设备被激活时,即使处理器560和其他组件可能关闭以节约电池电量,它们在通知机制所规定的持续时间内仍然保持接通。LED可以被编程为无限期地保持接通,直到用户采取动作来指示设备的上电状态为止。音频接口574用于向用户提供可听信号并且从用户接收可听信号。例如,除了被耦合到音频换能器525以外,音频接口574还可以被耦合到麦克风以接收可听输入,例如以帮助电话对话。根据本发明的实施例,麦克风还可以充当音频传感器,以帮助控制通知,如下面将要描述的。系统502还可以包括视频接口576,该视频接口支持车载相机530的操作以记录静止图像、视频流等。
实现系统502的移动计算设备500可以具有附加特征或功能。例如,移动计算设备500还可以包括附加的数据存储设备(可移除的和/或不可移除的),诸如,磁盘、光盘、或磁带。这样的附加的存储装置在图5中由非易失性存储区域568示出。计算机存储介质可以包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)的任意方法或技术实现的易失性和非易失性、可移除和不可移除介质。
由移动计算设备500生成或捕捉的并且经由系统502存储的数据/信息可以如上所述地本地存储在移动计算设备500上,或者该数据可以被存储在可以由设备经由无线电572或者经由移动设备500和与移动计算设备500相关联的单独的计算设备(例如,诸如互联网等分布式计算网络中的服务器计算机)之间的有线连接访问的任意数目的存储介质上。如应当认识到的,这样的数据/信息可以由移动计算设备500经由无线电572或经由分布式计算网络访问。类似地,这样的数据/信息可以根据公知的数据/信息传输和存储手段(包括电子邮件和协作数据/信息共享系统)很容易地在计算设备之间进行传输,以供存储和使用。
本领域技术人员将认识到的是,诸如系统502等系统的尺寸可以改变并且可以包括比图5中所述的那些更多或更少的组件。在一些示例中,例如,在系统502的组件可以横跨分布式网络的一个或多个设备分布的情况下,系统502的组件之间的接口连接可以远程发生。在示例中,一个或多个数据存储库/存储装置或其他存储器可以与系统502相关联。例如,系统502的组件可以具有与其相关联的一个或多个数据存储装置/存储器/存储库。与系统502的组件相关联的数据以及由系统502的组件执行的处理操作/指令可以被存储在其上。
图6是示出可以实践本公开的方面的计算设备600的物理组件(例如,硬件)的框图。以下描述的计算设备组件可以具有用于发送数据集的计算机可执行指令,包括:接收多个数据块,该多个数据块以第一格式被接收;对多个数据块中的每个数据块执行至少一个插入或更新操作,该至少一个插入或更新操作包括将第一格式转换为与目的地数据存储库兼容的模式;执行经插入或更新的数据块到目的地数据存储库的传输;确定至少一个经插入或更新的数据块未能传输到目的地数据存储库;将该至少一个失败的数据块存储在失败的块重试数据存储库中;对该至少一个失败的数据块重新执行至少一个插入或更新操作;以及重新执行至少一个失败的数据块到目的地数据存储库的传输,包括用于可以被执行以采用本文所公开的方法的数据传输应用620的计算机可执行指令。
在基本配置中,计算设备600可以包括至少一个处理单元602和系统存储器604。取决于计算设备的配置和类型,系统存储器604可以包括但不限于,易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪存、或者这些存储器的任意组合。系统存储器604可以包括操作系统605和一个或多个程序模块606,该一个或多个程序模块适用于数据传输应用620,诸如,针对图6的一个或多个组件,并且特别地适用于数据块重试模块618、数据提取模块611、数据块加密模块613、映射模块615、以及数据块插入或更新引擎617。
例如,操作系统605可以适用于控制计算设备600的操作。另外,本公开的方面可以结合图形库、其他操作系统、或任何其他应用程序实施,并且不限于任何特定应用或系统。这种基本配置在图6中由虚线608内的那些组件示出。计算设备600可以具有附加特征或功能。例如,计算设备600还可以包括附加的数据存储装置(可移除的和/或不可移除的),诸如,例如磁盘、光盘、或磁带。这样的附加存储装置在图6中由可移除存储设备609和不可移除存储设备610示出。
如上所述,多个程序模块和数据文件可以被存储在系统存储器604中。当在处理单元602上执行时,程序模块606(例如,数据传输应用620)可以执行包括但不限于如本文所描述的方面的过程。可以使用根据本公开的方面的其他程序模块。
另外,本公开的方面可以在包括离散电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或者包含电子元件或微处理器的单个芯片上实施。例如,本公开的方面可以经由片上系统(SOC)实施,其中图6中示出的每个或很多组件可以被集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,它们全部被集成(或“烧制”)在作为单个集成电路的芯片衬底上。当经由SOC操作时,本文针对客户端切换协议的能力而描述的功能可以经由与计算设备500的其他组件集成在单个集成电路(芯片)上的专用逻辑来操作。本公开的实施例还可以使用能够执行例如AND、OR、和NOT等逻辑操作的其他技术实施,包括但不限于机械、光学、流体、和量子技术。另外,本公开的实施例可以在通用计算机内或任何其他电路或系统中实施。
计算设备600还可以包括一个或多个输入设备612,诸如,键盘、鼠标、笔、声音或语音输入设备、触摸或轻扫式输入设备等。还可以包括诸如显示器、扬声器、打印机等(一个或多个)输出设备614。前述设备是示例,并且可以使用其他设备。计算设备600可以包括允许与其他计算设备650通信的一个或多个通信连接616。合适的通信连接616的示例包括但不限于,射频(RF)发射器、接收器、和/或收发器电路;通用串行总线(USB)、并行和/或串行端口。
如本文所使用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如,计算机可读指令、数据结构、或程序模块等信息的任意方法或技术中实现的易失性和非易失性、可移除和不可移除介质。系统存储器604、可移除存储设备609、以及不可移除存储设备610都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用来存储信息并且其可以由计算设备600访问的任何其他制品。任意这样的计算机存储介质可以是计算设备600的部分。计算机存储介质不包括载波或其他传播或经调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据体现,并且可以包括任何信息递送介质。术语“经调制的数据信号”可以描述以对信号中的信息进行编码的方式来改变或设置一个或多个特性的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质以及诸如声学、射频(RF)、红外、及其他无线介质的无线介质。
本文所描述的不同方面可以使用软件、硬件、或软件和硬件的组合来实现并执行本文所公开的系统和方法。尽管贯穿本公开已经将具体设备描述为执行特定功能,但是本领域技术人员将认识到,这些设备是出于说明性目的而提供的,并且其他设备可以被用来执行本文所公开的功能而不会偏离本公开的范围。
如上所述,多个程序模块和数据文件可以被存储在系统存储器604中。当在处理单元602上执行时,程序模块(例如,应用、输入/输出(I/O)管理、以及其他实用程序)可以执行包括但不限于本文所描述的方法的一个或多个操作阶段的过程。
图7示出了用于如上所述地从源数据存储库向目的地数据存储库发送一个或多个数据集的系统的架构的一个示例。可以与可以被存储在不同通信信道或其他存储类型中的编程模块606和/或存储装置/存储器相关联地访问或编辑来自半结构化数据集的数据,或者与该数据进行交互。例如,可以使用目录服务722、网络门户724、邮箱服务726、即时通讯存储库728、或社交网站730、应用706、IO管理器、其他实用程序来存储各种文档,存储系统可以使用如本文所述的用于支持数据利用的这些类型的系统等中的任意系统。服务器702可以提供存储系统,以通过网络715供在通用计算设备704和移动计算设备706上运行的客户端使用。作为示例,网络715可以包括互联网或任何其他类型的局域网或广域网,并且客户端节点可以实现为体现在个人计算机和/或平板计算设备706中的计算设备和/或由移动计算设备708(例如,移动处理设备)实现。本文所描述的计算设备的这些示例中的任意示例可以从存储库716获取内容。
已经贯穿说明书参考“一个示例”或“示例”,这意味着具体描述的特征、结构、或特性被包括在至少一个示例中。因此,这些短语的使用可以不仅仅指代一个示例。此外,所描述的特征、结构、或特性可以在一个或多个示例中以任何适当方式组合。
但是,相关领域技术人员可以认识到,可以在没有这些细节中的一个或多个细节的情况下,或者可以利用其他方法、资源、材料等来实施这些示例。在其他实例中,仅为了注意使得示例的方面模糊,而没有详细示出或描述公知的结构、资源、或操作。
尽管已经示出并描述了示例和应用,但是将理解的是,这些示例不限于以上描述的精确配置和资源。在不偏离所要求保护的示例的范围的情况下,可以对本文所公开的方法和系统的布置、操作、和细节做出对于本领域技术人员显而易见的各种修改、改变、和变形。

Claims (15)

1.一种用于从源数据存储库发送数据的方法,包括:
接收多个数据块,所述多个数据块以第一格式被接收;
对所述多个数据块中的每个数据块执行至少一个插入或更新操作,所述至少一个插入或更新操作包括将所述第一格式转换为与目的地数据存储库兼容的模式;
执行经插入或更新的所述数据块到所述目的地数据存储库的传输;
确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库;
将至少一个失败的数据块存储在失败的块重试数据存储库中;
对所述至少一个失败的数据块重新执行所述至少一个插入或更新操作;以及
重新执行所述至少一个失败的数据块到所述目的地数据存储库的传输。
2.根据权利要求1所述的方法,还包括:确定用于所述目的地数据存储库的模式格式。
3.根据权利要求2所述的方法,其中所述至少一个插入或更新操作包括修改所述多个数据块中的每个数据块的格式以符合用于所述目的地数据存储库的所述模式格式。
4.根据权利要求1所述的方法,其中确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库包括:接收被包含在经插入或更新的所述数据块中的单个记录未能传输的指示。
5.根据权利要求1所述的方法,还包括:
基于到所述目的地数据存储库的传输尝试的数目,确定所述至少一个失败的数据块是否已经超过回退重试尝试阈值;以及
响应于确定所述至少一个失败的数据块已经超过所述回退重试尝试阈值,将所述至少一个失败的数据块传输到永久失败容器。
6.根据权利要求5所述的方法,其中多个映射引擎被指派用于向所述目的地数据存储库传输所述多个数据块,所述多个映射引擎中的每个映射引擎被指派用于所述多个数据块中的单独数据块的传输。
7.根据权利要求6所述的方法,还包括:
响应于确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库,将元数据与所述至少一个失败的数据块相关联,所述元数据指示所述多个映射引擎中的哪一映射引擎被指派给所述至少一个失败的数据块。
8.根据权利要求1所述的方法,其中所述失败的块重试数据存储库是所述源数据存储库。
9.一种计算机可读存储装置,包括可执行指令,所述可执行指令在由处理器执行时,协助从源数据存储库发送数据,所述计算机可读介质包括指令,所述指令由所述处理器可执行用于:
接收多个数据块,所述多个数据块以第一格式被接收;
对所述多个数据块中的每个数据块执行至少一个插入或更新操作,所述至少一个插入或更新操作包括将所述第一格式转换为与目的地数据存储库兼容的模式;
执行经插入或更新的所述数据块到所述目的地数据存储库的传输;
确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库;
将至少一个失败的数据块存储在失败的块重试数据存储库中;
对所述至少一个失败的数据块重新执行所述至少一个插入或更新操作;以及
重新执行所述至少一个失败的数据块到所述目的地数据存储库的传输。
10.根据权利要求9所述的计算机可读存储装置,其中所述指令还由所述处理器可执行用于:确定用于所述目的地数据存储库的模式格式。
11.根据权利要求10所述的计算机可读存储装置,其中所述至少一个插入或更新操作包括修改所述多个数据块中的每个数据块的格式以符合用于所述目的地数据存储库的所述模式格式。
12.根据权利要求10所述的计算机可读存储装置,其中所述指令还由所述处理器可执行用于:响应于确定经更新或插入的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库,对所述至少一个失败的数据块加密以用于存储在所述失败的块重试数据存储库中。
13.一种用于从源数据存储库发送数据的系统,包括:
用于存储可执行程序代码的存储器;以及
处理器,其被功能性地耦合到所述存储器,所述处理器响应于被包含在所述程序代码中的计算机可执行指令并且操作以:
接收多个数据块,所述多个数据块以第一格式被接收;
对所述多个数据块中的每个数据块执行至少一个插入或更新操作,所述至少一个插入或更新操作包括将所述第一格式转换为与目的地数据存储库兼容的模式;
执行经插入或更新的所述数据块到所述目的地数据存储库的传输;
确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库;
将至少一个失败的数据块存储在失败的块重试数据存储库中;
对所述至少一个失败的数据块重新执行所述至少一个插入或更新操作;以及
重新执行所述至少一个失败的数据块到所述目的地数据存储库的传输。
14.根据权利要求13所述的系统,其中所述处理器进一步响应于所述计算机可执行指令并且操作以响应于确定经插入或更新的所述数据块中的至少一个数据块未能传输到所述目的地数据存储库,对所述至少一个失败的数据块加密以用于存储在所述失败的块重试数据存储库中。
15.根据权利要求13所述的系统,其中所述处理器进一步响应于所述计算机可执行指令并且操作以:
基于到所述目的地数据存储库的传输尝试的数目,确定所述至少一个失败的数据块是否已经超过回退重试尝试阈值;以及
响应于确定所述至少一个失败的数据块已经超过所述回退重试尝试阈值,将所述至少一个失败的数据块传输到永久失败容器。
CN201780068476.0A 2016-11-08 2017-11-03 用于发送大数据集的高级重试机制 Active CN109937405B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/346,352 US10454619B2 (en) 2016-11-08 2016-11-08 Advanced retry mechanism for transmitting large datasets
US15/346,352 2016-11-08
PCT/US2017/059813 WO2018089254A1 (en) 2016-11-08 2017-11-03 Advanced retry mechanism for transmitting large datasets

Publications (2)

Publication Number Publication Date
CN109937405A true CN109937405A (zh) 2019-06-25
CN109937405B CN109937405B (zh) 2023-03-24

Family

ID=60382621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780068476.0A Active CN109937405B (zh) 2016-11-08 2017-11-03 用于发送大数据集的高级重试机制

Country Status (4)

Country Link
US (1) US10454619B2 (zh)
EP (1) EP3538999B1 (zh)
CN (1) CN109937405B (zh)
WO (1) WO2018089254A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552650A (zh) * 2020-04-13 2020-08-18 深圳市时创意电子有限公司 一种数据保存方法、装置、存储介质和数据存储设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019106629A (ja) * 2017-12-12 2019-06-27 キヤノン株式会社 情報処理システム、制御方法及びそのプログラム
US11442899B2 (en) * 2019-03-19 2022-09-13 Servicenow, Inc. Systems and methods for improved application programing interface (API) retry handling
US11695822B2 (en) * 2021-07-16 2023-07-04 Adp, Inc. Unified integration pattern protocol for centralized handling of data feeds

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069803A1 (en) * 2004-07-30 2006-03-30 Sbc Knowledge Ventures, L.P. System and method for flexible data transfer
US20110271145A1 (en) * 2010-04-30 2011-11-03 Yahoo! Inc. Efficient failure detection for long running data transfer jobs
CN102804817A (zh) * 2009-06-18 2012-11-28 阿尔卡特朗讯 针对传递失败的消息的个性化重试配置
US20160321307A1 (en) * 2011-11-03 2016-11-03 Pervasive Software Inc. Data Transformation System, Graphical Mapping Tool And Method For Creating A Schema Map

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
AU8467401A (en) * 2000-07-28 2002-02-13 Storymail Inc System, method and computer program product for device, operating system, and network transport neutral secure interactive multi-media messaging
US8862937B2 (en) 2010-05-06 2014-10-14 Verizon Patent And Licensing Inc. Method and system for migrating data from multiple sources
US8544075B2 (en) 2010-06-15 2013-09-24 Microsoft Corporation Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
US8782441B1 (en) 2012-03-16 2014-07-15 Google Inc. Methods and systems for storage of large data objects
US9582541B2 (en) 2013-02-01 2017-02-28 Netapp, Inc. Systems, methods, and computer program products to ingest, process, and output large data
US9626261B2 (en) 2013-11-27 2017-04-18 Futurewei Technologies, Inc. Failure recovery resolution in transplanting high performance data intensive algorithms from cluster to cloud
CN103942499B (zh) * 2014-03-04 2017-01-11 中天安泰(北京)信息技术有限公司 基于移动存储器的数据黑洞处理方法及移动存储器
US10185730B2 (en) 2014-12-31 2019-01-22 Nexenta Systems, Inc. Methods and systems for key-value-tuple-encoded storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069803A1 (en) * 2004-07-30 2006-03-30 Sbc Knowledge Ventures, L.P. System and method for flexible data transfer
CN102804817A (zh) * 2009-06-18 2012-11-28 阿尔卡特朗讯 针对传递失败的消息的个性化重试配置
US20110271145A1 (en) * 2010-04-30 2011-11-03 Yahoo! Inc. Efficient failure detection for long running data transfer jobs
US20160321307A1 (en) * 2011-11-03 2016-11-03 Pervasive Software Inc. Data Transformation System, Graphical Mapping Tool And Method For Creating A Schema Map

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552650A (zh) * 2020-04-13 2020-08-18 深圳市时创意电子有限公司 一种数据保存方法、装置、存储介质和数据存储设备

Also Published As

Publication number Publication date
CN109937405B (zh) 2023-03-24
EP3538999B1 (en) 2023-03-22
US20180131470A1 (en) 2018-05-10
WO2018089254A1 (en) 2018-05-17
US10454619B2 (en) 2019-10-22
EP3538999A1 (en) 2019-09-18

Similar Documents

Publication Publication Date Title
CN106068521B (zh) 关于合规策略更新的应用的通信状态
US8204870B2 (en) Unwired enterprise platform
CN109937405A (zh) 用于发送大数据集的高级重试机制
CN103597801B (zh) 用于多阶段多源备份的方法和装置
CN103561072B (zh) 一种基于互联网的云数据处理方法及云数码相框
CN103702297B (zh) 短信增强方法、装置及系统
CN109479061A (zh) 遵从性违反检测
CN110163004A (zh) 一种区块链生成的方法、相关设备及系统
CN105917627A (zh) 云服务定制执行环境
WO2015154093A2 (en) Systems and methods for digital workflow and communication
CN107004024A (zh) 上下文驱动的多用户通信
CN105391803A (zh) 消息推送方法及装置
CN107122379A (zh) 收集与本地存储的数据文件相关联的事务数据
CN110168533A (zh) 对子图的缓存以及将缓存的子图集成到图查询结果中
EP2854048A1 (en) Method of operating a mobile telecommunications device
CN108028856A (zh) 在计算机系统之间同步文件数据
CN106714274B (zh) 接入点连接方法及装置
CN102224716A (zh) 用于配置多种联网技术的统一界面
CN105474209A (zh) 管理对共享文档的改动
CN106844104B (zh) 一种终端数据处理方法、装置及移动终端
CN108684206A (zh) 一种搜索方法及装置
CN107920103A (zh) 一种信息推送的方法和系统及客户端和服务器
CN102224765A (zh) 创建跨技术的配置设置
CN105227425A (zh) 聚合消息的方法、设备和网络社交系统
CN103179193A (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