CN105874433A - 用于支持分布式数据网格中的异步调用的系统和方法 - Google Patents

用于支持分布式数据网格中的异步调用的系统和方法 Download PDF

Info

Publication number
CN105874433A
CN105874433A CN201480070817.4A CN201480070817A CN105874433A CN 105874433 A CN105874433 A CN 105874433A CN 201480070817 A CN201480070817 A CN 201480070817A CN 105874433 A CN105874433 A CN 105874433A
Authority
CN
China
Prior art keywords
task
distributed data
server
data grid
systems
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
CN201480070817.4A
Other languages
English (en)
Other versions
CN105874433B (zh
Inventor
G·格莱泽
R·H·李
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Priority claimed from PCT/US2014/068659 external-priority patent/WO2015099974A1/en
Publication of CN105874433A publication Critical patent/CN105874433A/zh
Application granted granted Critical
Publication of CN105874433B publication Critical patent/CN105874433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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
    • 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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

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

Abstract

系统和方法可以支持在具有多个服务器节点的分布式数据网格中的异步调用。该系统允许分布式数据网格中的服务器节点从客户端接收一个或多个任务,其中所述一个或多个任务与有序单元相关联。此外,该系统可以基于由分布式数据网格保证的有序单元在分布式数据网格中的一个或多个所述服务器节点上执行所述一个或多个任务。

Description

用于支持分布式数据网格中的异步调用的系统和方法
版权声明
本专利文档的公开内容的一部分包含受版权保护的素材。版权所有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行的复制再现,但是除此之外在任何情况下都保留所有版权。
技术领域
本发明一般而言涉及计算机系统,并且具体而言,涉及支持分布式数据网格中的任务管理。
背景技术
现代的计算系统,尤其是被较大的组织和企业所采用的那些计算系统,继续在规模上和复杂度上增加。尤其,在诸如互联网应用的领域中,期望有上百万的用户应该能够同时访问应用,这有效地导致由用户产生和消费的内容量以及涉及这些内容的事务呈指数增长。这种活动也导致对数据库和元数据存储库的事务调用数量的相应增加,该数据库和元数据存储库具有有限能力来适应那种需求。这是本发明的实施例旨在解决的大致领域。
发明内容
本文描述的是能够支持在具有多个服务器节点的分布式数据网格中的异步调用的系统和方法。该系统允许分布式数据网格中的服务器节点从客户端接收一个或多个任务,其中所述一个或多个任务与有序单元(unit–of-order)相关联。此外,该系统可以基于由分布式数据网格保证的有序单元在分布式数据网格中的一个或多个所述服务器节点上执行所述一个或多个任务。
附图说明
图1是根据本发明的各种实施例的数据网格集群的图示。
图2示出了根据本发明的实施例的、支持分布式数据网格中的可插拔关联/有序单元的图示。
图3示出了根据本发明的实施例的、支持分布式数据网格中的异步调用的图示。
图4示出了根据本发明的实施例的、用于支持分布式数据网格中的异步消息处理的示例性流程图。
图5示出了根据本发明的实施例的、支持分布式数据网格中的可委托流控制的图示。
图6示出了根据本发明的实施例的、执行分布式数据网格中的积压(backlog)排出的图示。
图7示出了根据本发明的实施例的、向分布式数据网格提供将来任务的图示。
图8示出了根据本发明的实施例的、用于支持分布式数据网格中的可委托流控制的示例性流程图。
图9示出了根据本发明的实施例的、用于支持分布式数据网格中的异步调用的系统的框图。
图10图示了本发明的实施例的功能配置。
图11图示了计算机系统,其中本发明的实施例利用该计算机系统来实现。
具体实施方式
本文描述的是可以支持分布式数据网格中的诸如异步调用和流控制的任务管理的系统和方法。
分布式数据网格
根据实施例,如在本文被指称的,“数据网格集群”或“数据网格”是包括在分布式或集群环境内一起工作以管理信息和诸如计算的相关操作的多个计算机服务器的系统。可以使用数据网格集群来管理跨服务器共享的应用对象和数据。优选地,数据网格集群应当具有低响应时间、高吞吐量、可预测的扩展性、连续的可用性和信息可靠性。作为这些能力的结果,数据网格集群非常适于在计算密集、多状态的中间层应用中使用。一些数据网格集群的例子,例如,OracleCoherence数据网格集群,可以将信息存储在存储器中,以实现更高的性能,并且可以采用冗余使该信息的拷贝跨多个服务器保持同步,从而确保系统的弹性以及在服务器故障的情况下数据的可用性。例如,Oracle Coherence数据网格集群在可靠的、高度可扩展的点对点集群协议之上提供了复制式和分布式(分区的)数据管理和高速缓存服务。
存储器中数据网格可以通过将数据分布在一起工作的多个服务器上来提供数据存储和管理能力。数据网格可以是与应用服务器在同一层中或者在应用服务器内运行的中间件。它可以提供数据的管理和处理,并且也可以将处理推送到其中数据所位于的网格中。此外,存储器中数据网格可以通过自动地和透明地故障切换以及当服务器变得不可操作或从网络断开时重新分配其集群数据管理服务来消除单点故障。当新的服务器被添加时,或者当故障服务器被重新启动时,它可以自动地加入集群并且服务可以被故障恢复给它,从而透明地重新分配集群负载。数据网格也可以包括网络级容错特征和透明的软重启能力。
根据实施例,数据网格集群的功能是基于使用不同的集群服务。集群服务可以包括根集群服务、分区高速缓存服务和代理服务。在数据网格集群内,每个集群节点就提供和消费集群服务两者而言,可以参与多个集群服务。每个集群服务具有唯一识别数据网格集群内的服务的服务名称,以及定义集群服务可以做什么的服务类型。除了在数据网格集群中的每个集群节点上运行的根集群服务之外,可能存在每种服务类型的多个命名实例。服务可以由用户配置,或者由数据网格集群作为一组默认服务提供。
图1是根据本发明的各种实施例的数据网格集群的图示。如在图1中所示,数据网格集群100,例如Oracle Coherence数据网格集群,包括具有在其上运行的各种集群服务111-116的多个服务器节点(诸如集群节点101-106)。此外,可以使用高速缓存配置文件110来配置数据网格集群100。
可插拔关联/有序单元
根据本发明的实施例,分布式数据网格可以支持分布式数据网格中的可插拔关联/有序单元。
图2示出了根据本发明实施例的、支持分布式数据网格中的可插拔关联/有序单元的图示。如在图2中所示,分布式数据网格201可以包括多个服务器节点,例如服务器节点211-216。
此外,分布式数据网格201可以从客户端接收一个或多个任务,例如任务A-C 221-223。然后,分布式数据网格201可以将任务A-C221-223分配给不同的服务器节点以供执行。例如,服务器节点211可以负责执行任务A 221、服务器节点214可以负责执行任务C 223、并且服务器节点215可以负责执行任务B 222。
如在图2中所示,计算系统200允许任务A-C 221-223与有序单元220(或关联)相关联。根据本发明的实施例,有序单元220是不强加系统范围的更新顺序的部分排序方案(即,不是全排序方案)。例如,有序单元220可以是事务流,其中在这个特定流中的每个操作按顺序被保留,但是对在其它流中发生的操作没有暗示顺序。
此外,分布式数据网格201可以提供有序单元保证210,其可以基于点对点集群协议得以支持。因此,系统可以确保任务AC 221-223由分布式数据网格201以如在有序单元220中规定的特定顺序执行,即使任务AC 221-223可以在分布式数据网格201中的不同服务器节点211-216上被接收和执行。
此外,有序单元220可以以可插拔的方式进行配置,即,客户端可以动态地改变有序单元220。
故障切换期间的请求排序/因果关系
根据本发明的实施例,分布式数据网格可以支持故障切换期间的请求排序/因果关系。
图3示出了根据本发明的实施例的、支持分布式数据网格中的异步调用的图示。如在图3中所示,分布式数据网格301中的服务器节点可以充当主服务器311,其负责执行从客户端302接收到的一个或多个任务321。
此外,主服务器311可以与一个或多个备用服务器节点相关联,例如,备用服务器312。如在图3中所示,在主服务器311执行从客户端302接收到的任务321之后,主服务器311可以将不同的结果和产物(artifacts)322发送到备用服务器312。根据本发明的实施例,在将结果324返回给客户端302之前,主服务器311可以等待接收来自备用服务器312的确认。
如在图3中所示,在主服务器311发生故障之后,备用服务器312可以接管并且可以负责执行故障切换任务323。
为了保证在执行该一个或多个任务321时的幂等性,备用服务器312可以检查每个故障切换任务323是否已被主服务器311执行。例如,当特定的故障切换任务323已被主服务器311执行时,备用服务器312可以立即将结果324返回给客户端302。否则,备用服务器312可以在将结果324返回给客户端之前继续执行故障切换任务323。
此外,备用服务器312可以基于有序单元保证310中的请求排序确定何时执行故障切换任务323。换句话说,即使当在分布式数据网格301中发生故障切换时,系统也可以确保故障切换任务323按正确的顺序被相应地执行。
因此,在故障切换场景中,计算系统300可以确保在执行从客户端302接收到的该一个或多个任务321时的幂等性和由有序单元保证310在分布式数据网格301中提供的请求排序这二者。
图4示出了根据本发明的实施例的、用于支持分布式数据网格中的异步消息处理的示例性流程图。如在图4中所示,在步骤401,在具有多个服务器节点的分布式数据网格中的服务器节点可以接收一个或多个任务。然后,在步骤402,系统允许所述一个或多个任务与有序单元相关联。此外,在步骤403,系统可以基于由分布式数据网格保证的有序单元在一个或多个所述服务器节点上执行所述一个或多个任务。
可委托的流控制
根据本发明的实施例,分布式数据网格可以将流控制机构暴露给外部客户端并且允许可委托的流控制。
图5示出了根据本发明的实施例的、支持分布式数据网格中的可委托流控制的图示。如在图5中所示,分布式数据网格501可以从客户端502接收一个或多个任务。此外,分布式数据网格501可以使用底层503用于执行接收到的任务。
例如,底层503可以包括利用一个或多个通信信道510互连的多个服务器节点511-516。因此,可能造成任务积压的分布式数据网格501中的延迟可以包括服务器节点511-516上用于处理任务的延迟和在通信信道510中用于运送任务以及诸如结果的相关产物的延迟二者。
根据本发明的实施例,计算系统500支持在分布式数据网格501中控制底层503中的任务的执行的流控制机构520。
此外,流控制机构520可以提供支持异步(非阻塞)方式提交数据交换请求并且提供用于调制底层数据传输单元(例如,消息或报文)的控制流程的各种机制的不同通信设施。
如图5中所示,流控制机构520可以支持请求缓冲522和积压检测521能力。这里,请求缓冲522表示分布式数据网格501能够在分布式数据网格501中的各个服务器节点511-516中分布式地缓冲传入请求。积压检测521表示分布式数据网格501能够检测在处理底层503中的不同服务器节点511-516处的已缓冲请求时的积压(例如利用点对点协议)。
根据本发明的实施例,系统允许客户端与流控制机构520交互。流控制机构520可以表示(或提供)用于客户端502的通信端点的方面。例如,Oracle Coherence数据网格集群可以向客户端502提供应用编程接口(API)。因此,客户端502可以经由简单的和方便的接口动态地配置流控制机构520。
此外,流控制机构520可以允许客户端502选择性从自动流控制退出(这在许多情况下是所期望的),并且手动管理请求流的速率。这里,流控制机构520可以是优选为在各种情况下手动的,诸如在调用者本身是异步通信流的一部分时的具有积压相关延迟的“自动冲刷”用例和其它用例。
此外,计算系统500可以在流控制机构520中设置阈值,其中阈值可以调节要在分布式数据网格501中执行的任务的积压。例如,当要在分布式数据网格501中执行的任务的积压的长度超过阈值时,分布式数据网格501可以拒绝执行所述任务的请求,或者重新配置任务在以后的时间被执行(即,将同步任务重新配置为异步任务)。
图6示出了根据本发明的实施例的、执行分布式数据网格中的积压排出的图示。如在图6中所示,计算系统600中与客户端相关联的调用线程602可以检查分布式数据网格601中与分布式请求缓冲区611有关的过量积压620。
利用由分布式数据网格601提供的API,客户端(即,经由调用线程602)可以向分布式数据网格601提供关于它可以等待的最大时间量(例如以毫秒计)621的信息。
在响应中,分布式数据网格601可以向调用线程602提供关于剩余超时622的信息。然后,分布式数据网格601可以在排出积压620的同时阻塞调用线程602(即,将在请求缓冲区611中缓冲的任务分派到底层610用于执行)。
图7示出了根据本发明的实施例的、向分布式数据网格提供将来任务的图示。如在图7中所示,计算系统700中与客户端相关联的调用线程702可以检查分布式数据网格701中与分布式请求缓冲区711有关的过量积压720。
利用由分布式数据网格701提供的API,如果积压720为异常(例如,当底层通信信道被堵塞时),则客户端(即,经由调用线程702)可以向分布式数据网格701提供将来任务,例如连续体(continuation)703。
然后,在积压720返回正常之后,分布式数据网格701可以调用连续体703。因此,系统可以将包含在连续体703中的任务分派给底层710用于执行。
如在图7中所示,连续体703可以在任何线程中被调用,包括与调用线程702并发的线程704。此外,连续体703可以被调用线程702自身调用。
图8示出了根据本发明的实施例的、用于支持分布式数据网格中的可委托流控制的示例性流程图。如在图8中所示,在步骤801,系统可以提供分布式数据网格中的流控制机构,其中分布式数据网格包括与一个或多个通信信道互连的多个服务器节点。然后,在步骤802,系统允许客户端与分布式数据网格中的流控制机构交互。此外,在步骤803,系统可以使用流控制机构用于配置和执行从客户端接收到的一个或多个任务。
图9示出了根据本发明的实施例的、用于支持分布式数据网格中的异步调用的系统900的框图。系统900的各个方框可以由硬件、软件或硬件和软件的组合来实现,以执行本发明的原理。本领域技术人员应该理解,在图9中描述的各个方框可以被组合或分离为子块来实现如上所述的本发明的原理。因此,本文的描述可以支持任何可能的组合或分离或本文所描述的功能方框的进一步定义。
如在图9中所示,用于支持分布式数据网格中的异步调用的系统900包括接收单元910、关联单元920和执行单元930。接收单元910可以在具有多个服务器节点的分布式数据网格中的服务器节点处接收一个或多个任务。关联单元920可以将所述一个或多个任务与有序单元关联。执行单元930可以基于由分布式数据网格保证的有序单元在一个或多个所述服务器节点上执行所述一个或多个任务。
根据本发明的实施例,分布式数据网格中的所述多个服务器节点使用点对点集群协议来支持有序单元保证。
根据本发明的实施例,在分布式数据网格中的另一个服务器节点处接收到至少一个任务。所述至少一个任务也与有序单元相关联。
根据本发明的实施例,所述至少一个任务基于由分布式数据网格保证的有序单元在分布式数据网格中的服务器节点处被执行。
根据本发明的实施例,服务器节点是用于在分布式数据网格中执行一个或多个任务的主服务器,并且分布式数据网格中的至少一个其它服务器充当用于执行所述一个或多个任务的备用服务器。
根据本发明的实施例,在将与所述一个或多个任务的执行相关联的结果返回给客户端之前,主服务器操作来向备用服务器发送与所述一个或多个任务的执行相关联的产物和所述结果。
根据本发明的实施例,当主服务器发生故障时,备用服务器操作来检查所述一个或多个任务是否已被主服务器执行。
根据本发明的实施例,如果所述一个或多个任务已被主服务器执行,则备用服务器操作来将结果返回给客户端。
根据本发明的实施例,如果所述一个或多个任务还没有被主服务器执行,则备用服务器操作来基于由分布式数据网格保证的有序单元确定何时执行所述一个或多个任务,并且在执行所述一个或多个任务之后,将结果返回给客户端。
示例性应用编程接口(API)
以下是示例性应用编程接口(API),其允许客户端动态地配置诸如Oracle Coherence数据网格集群的分布式数据网格中的流控制机构。
public interface FlowControl
{
public void flush();
public long drainBacklog(long cMillis);
public boolean checkBacklog(Continuation<Void>continueNormal);
}
FlowControl接口可以包括flush()函数,其可以是非阻塞调用。此外,该flush()函数确保缓冲的异步操作被分派到底层。
此外,FlowControl接口可以包括drainBacklog(long cMillis)函数,它可以检查分布式数据网格中的过量积压并且允许阻塞调用线程最多指定的时间量。
如上所示,drainBacklog(long cMillis)函数可以接收输入参数cMillis,其指定等待的最大时间量(例如以毫秒计)。可替代地,输入参数cMillis,可以被指定为零,其指示无限的等待时间。
然后,drainBacklog(long cMillis)函数可以将剩余超时返回给调用线程。可替代地,如果已发生超时,则drainBacklog(long cMillis)函数可以返回负值。此外,drainBacklog(long cMillis)函数可以返回零,其指示积压不再过量。
此外,以上FlowControl接口可以包括checkBacklog(Continuation<Void>continueNormal)函数,其检查过量的积压。如果底层通信信道被积压,则checkBacklog(Continuation<Void>continueNormal)函数可以返回真(true),或者如果不是这种情况,则返回假(false)。
当底层通信通道确实被堵塞时,checkBacklog(Continuation<Void>continueNormal)函数可以例如利用输入参数continueNormal提供将来工作。
然后,将来工作continueNormal,可以在积压被减少返回到正常之后被调用。此外,将来工作continueNormal,可以被与调用线程并发的任何线程调用,或者被调用线程自身调用。此外,连续体只有当如果checkBacklog(Continuation<Void>continueNormal)函数返回真时才被调用。
参考图10,系统1000根据本发明的实施例示出。图10示出了由系统1000实现的功能配置的图示。系统1000包括接收器模块1010、存储模块1020、管理器1030和任务执行器模块1040。
接收器模块1010在具有多个服务器节点的分布式数据网格中的服务器节点处被提供。接收器模块1010接收一个或多个任务。存储模块1020存储有序单元。管理器1030允许接收到的一个或多个任务与有序单元相关联。任务执行器模块1040基于由分布式数据网格保证的有序单元在一个或多个服务器节点上执行所述一个或多个任务。
图11示出了包括众所周知的硬件元件的计算机系统1100的图示。即,计算机系统1100包括中央处理单元(CPU)1110、鼠标1120、键盘1130、随机存取存储器(RAM)1140、硬盘1150、磁盘驱动器1160、通信接口(I/F)1170和监视器1180。计算机系统1100可以充当构成系统1000的服务器节点。
根据本发明的实施例,接收器模块1010、管理器1030、存储模块1020以及任务执行器模块1040由一个或多个计算机系统1000提供。接收器模块1010、管理器1030、存储模块1020和任务执行器模块1040由CPU 1010实现。在还有的方面中,多于一个处理器可被使用,使得接收器模块1010、管理器1030、存储模块1020以及任务执行器模块1040被实现。即,接收器模块1010、管理器1030、存储模块1020以及任务执行器模块1040中的任何一个可以彼此物理上远离。
在还有的另一个方面,系统1000可以通过利用充当接收器模块1010、管理器1030、存储模块1020以及任务执行器模块1040的多个硬连线电路来实现。
本发明可以方便地利用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器来实现,其中包括一个或多个处理器、存储器和/或根据本公开内容的教导编程的计算机可读存储介质。如对软件领域的技术人员将是清楚的那样,适当的软件编码可以容易地由熟练的程序员基于本公开内容的教导来准备。
在一些实施例中,本发明包括计算机程序产品,它是其上存储有指令/其中能够用来编程计算机以执行本发明的任何过程的存储介质或计算机可读介质。存储介质可以包括,但不限于,任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微驱动器,及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或者适于存储指令和/或数据的任何类型的介质或设备。
本发明的以上描述是为了说明和描述的目的而给出的。它不是意在穷尽或者要把本发明限定到所公开的精确形式。对本领域技术人员来说,许多修改和变化都将是清楚的。修改和变化包括所描述特征的任何相关组合。实施例的选择和描述是为了最好地解释本发明的原理及其实际应用,由此使得本领域的其他技术人员能够理解本发明的各种实施例和具有适于预期特定用途的各种修改。本发明的范围要由以下的权利要求及其等同形式定义。

Claims (31)

1.一种用于支持分布式数据网格中的异步调用的方法,包括:
在具有多个服务器节点的分布式数据网格中的服务器节点处接收一个或多个任务;
允许所述一个或多个任务与有序单元相关联;及
基于由分布式数据网格保证的有序单元在所述服务器节点中的一个或多个服务器节点上执行所述一个或多个任务。
2.如权利要求1所述的方法,还包括:
经由分布式数据网格中的所述多个服务器节点利用点对点集群协议来支持有序单元保证。
3.如权利要求1或2所述的方法,还包括:
在分布式数据网格中的另一个服务器节点处接收至少一个任务,其中所述至少一个任务也与有序单元相关联。
4.如权利要求3所述的方法,还包括:
在分布式数据网格中的服务器节点处基于由分布式数据网格保证的有序单元执行所述至少一个任务。
5.如前面权利要求中任何一项所述的方法,还包括:
提供分布式数据网格中的服务器节点作为用于执行所述一个或多个任务的主服务器,及
利用分布式数据网格中的至少一个其它服务器作为用于执行所述一个或多个任务的备用服务器。
6.如权利要求5所述的方法,还包括:
在将与所述一个或多个任务的执行相关联的结果返回给客户端之前,经由主服务器向备用服务器发送与所述一个或多个任务的执行相关联的产物和所述结果。
7.如权利要求5或6所述的方法,还包括:
当主服务器发生故障时,经由备用服务器检查所述一个或多个任务是否已被主服务器执行。
8.如权利要求7所述的方法,还包括:
如果所述一个或多个任务已被主服务器执行,则将所述结果返回给客户端。
9.如权利要求7所述的方法,还包括:
如果所述一个或多个任务还没有被主服务器执行,则经由备用服务器基于由分布式数据网格保证的有序单元确定何时执行所述一个或多个任务。
10.如权利要求9所述的方法,还包括:
在执行所述一个或多个任务之后,将所述结果返回给客户端。
11.一种包括机器可读形式的程序指令的计算机程序,该程序指令当被计算机系统执行时,使得计算机系统执行如任一前面权利要求所述的方法。
12.一种包括如权利要求11所述的存储在机器可读存储介质上的计算机程序的计算机程序产品。
13.一种具有存储在其上的指令的非瞬时性机器可读存储介质,所述指令当被执行时,使得系统执行如权利要求1至10中任一所述的方法的步骤。
14.一种用于支持分布式数据网格中的异步消息处理的系统,包括:
一个或多个微处理器;
运行在所述一个或多个微处理器上、具有多个服务器节点的分布式数据网格,其中分布式数据网格操作来执行包括以下的步骤:
在分布式数据网格中的服务器节点处接收一个或多个任务;
允许所述一个或多个任务与有序单元相关联;及
基于由分布式数据网格保证的有序单元在所述服务器节点中的一个或多个服务器节点上执行所述一个或多个任务。
15.如权利要求14所述的系统,其中:
分布式数据网格中的所述多个服务器节点使用点对点集群协议来支持有序单元保证。
16.如权利要求14或15所述的系统,其中:
在分布式数据网格中的另一个服务器节点处接收至少一个任务,其中所述至少一个任务也与有序单元相关联。
17.如权利要求16所述的系统,其中:
在分布式数据网格中的服务器节点处基于由分布式数据网格保证的有序单元执行所述至少一个任务。
18.如权利要求14至17中任何一项所述的系统,其中:
服务器节点是分布式数据网格中用于执行所述一个或多个任务的主服务器,并且分布式数据网格中的至少一个其它服务器被用作用于执行所述一个或多个任务的备用服务器。
19.如权利要求18所述的系统,其中:
在将与所述一个或多个任务的执行相关联的结果返回给客户端之前,主服务器操作来向备用服务器发送与所述一个或多个任务的执行相关联的产物和所述结果。
20.如权利要求18或19所述的系统,其中:
当主服务器发生故障时,备用服务器操作来检查所述一个或多个任务是否已被主服务器执行。
21.如权利要求20所述的系统,其中:
如果所述一个或多个任务已被主服务器执行,则备用服务器操作来将所述结果返回给客户端。
22.如权利要求20所述的系统,其中:
备用服务器操作来:
如果所述一个或多个任务还没有被主服务器执行,则基于由分布式数据网格保证的有序单元确定何时执行所述一个或多个任务,及
在执行所述一个或多个任务之后,将所述结果返回给客户端。
23.一种用于支持分布式数据网格中的异步调用的系统,包括:
接收单元,配置为在具有多个服务器节点的分布式数据网格中的服务器节点处接收一个或多个任务;
关联单元,配置为将所述一个或多个任务与有序单元关联;及
执行单元,配置为基于由分布式数据网格保证的有序单元在一个或多个所述服务器节点上执行所述一个或多个任务。
24.如权利要求23所述的系统,其中:
分布式数据网格中的所述多个服务器节点使用点对点集群协议来支持有序单元保证。
25.如权利要求23所述的系统,其中:
在分布式数据网格中的另一个服务器节点处接收至少一个任务,其中所述至少一个任务也与有序单元相关联。
26.如权利要求25所述的系统,其中:
在分布式数据网格中的服务器节点处基于由分布式数据网格保证的有序单元执行所述至少一个任务。
27.如权利要求23所述的系统,其中:
服务器节点是分布式数据网格中用于执行所述一个或多个任务的主服务器,并且分布式数据网格中的至少一个其它服务器被用作用于执行所述一个或多个任务的备用服务器。
28.如权利要求27所述的系统,其中:
在将与所述一个或多个任务的执行相关联的结果返回给客户端之前,主服务器操作来向备用服务器发送与所述一个或多个任务的执行相关联的产物和所述结果。
29.如权利要求23所述的系统,其中:
当主服务器发生故障时,备用服务器操作来检查所述一个或多个任务是否已被主服务器执行。
30.如权利要求29所述的系统,其中:
如果所述一个或多个任务已被主服务器执行,则备用服务器操作来将所述结果返回给客户端。
31.如权利要求29所述的系统,其中:
备用服务器操作来:
如果所述一个或多个任务还没有被主服务器执行,则基于由分布式数据网格保证的有序单元确定何时执行所述一个或多个任务,及
在执行所述一个或多个任务之后,将所述结果返回给客户端。
CN201480070817.4A 2013-12-27 2014-12-04 用于支持分布式数据网格中的异步调用的系统和方法 Active CN105874433B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361921320P 2013-12-27 2013-12-27
US61/921,320 2013-12-27
US14/322,540 2014-07-02
US14/322,562 US9846618B2 (en) 2013-12-27 2014-07-02 System and method for supporting flow control in a distributed data grid
US14/322,540 US9703638B2 (en) 2013-12-27 2014-07-02 System and method for supporting asynchronous invocation in a distributed data grid
US14/322,562 2014-07-02
PCT/US2014/068659 WO2015099974A1 (en) 2013-12-27 2014-12-04 System and method for supporting asynchronous invocation in a distributed data grid

Publications (2)

Publication Number Publication Date
CN105874433A true CN105874433A (zh) 2016-08-17
CN105874433B CN105874433B (zh) 2020-11-03

Family

ID=53481862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480070817.4A Active CN105874433B (zh) 2013-12-27 2014-12-04 用于支持分布式数据网格中的异步调用的系统和方法

Country Status (4)

Country Link
US (2) US9703638B2 (zh)
EP (1) EP3087483B1 (zh)
JP (1) JP6615761B2 (zh)
CN (1) CN105874433B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107493312B (zh) * 2016-06-12 2020-09-04 中国移动通信集团安徽有限公司 一种服务调用方法及装置
US10509680B2 (en) * 2016-11-23 2019-12-17 Vmware, Inc. Methods, systems and apparatus to perform a workflow in a software defined data center
CN106911557B (zh) * 2017-01-17 2020-12-01 腾讯科技(深圳)有限公司 消息传输方法和装置
JP6937337B2 (ja) * 2019-05-14 2021-09-22 株式会社日立製作所 分散処理方法、分散処理システム及びサーバ
US11550628B2 (en) * 2019-12-18 2023-01-10 Mastercard International Incorporated Performing runbook operations for an application based on a runbook definition
CN113300966B (zh) * 2020-07-27 2024-05-28 阿里巴巴集团控股有限公司 流量控制方法、装置、系统以及电子设备
CN114827033B (zh) * 2022-04-15 2024-04-19 咪咕文化科技有限公司 数据流控方法、装置、设备与计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103816A1 (en) * 2001-01-31 2002-08-01 Shivaji Ganesh Recreation of archives at a disaster recovery site
WO2005078581A1 (ja) * 2004-02-18 2005-08-25 Ibm Japan, Ltd. システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
CN1965305A (zh) * 2000-10-18 2007-05-16 Bep技术公司 分布式多处理系统
CN101719931A (zh) * 2009-11-27 2010-06-02 南京邮电大学 一种基于多智能主体的层次式云端计算模型构建方法
US8046780B1 (en) * 2005-09-20 2011-10-25 Savi Technology, Inc. Efficient processing of assets with multiple data feeds
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system
US20130346995A1 (en) * 2005-03-11 2013-12-26 Adaptive Computing Enterprises, Inc. System and Method for Enforcing Future Policies in a Compute Environment

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535878B1 (en) 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US6687257B1 (en) * 1999-08-12 2004-02-03 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing dynamic guaranteed mixed priority scheduling for communications and processing
US6298451B1 (en) * 1999-11-02 2001-10-02 Idini Corporation Directory-based failure recovery and load balancing system
US20030037133A1 (en) 2001-08-15 2003-02-20 Thomas Owens Method and system for implementing redundant servers
US7219103B2 (en) * 2001-08-21 2007-05-15 Dell Products L.P. System and method for data replication in a computer system
CN1292346C (zh) 2003-09-12 2006-12-27 国际商业机器公司 用于在分布式计算体系结构中执行作业的系统和方法
US20050213507A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Dynamically provisioning computer system resources
US7861246B2 (en) * 2004-06-17 2010-12-28 Platform Computing Corporation Job-centric scheduling in a grid environment
US7657657B2 (en) 2004-08-13 2010-02-02 Citrix Systems, Inc. Method for maintaining transaction integrity across multiple remote access servers
US20070226226A1 (en) * 2006-03-23 2007-09-27 Elta Systems Ltd. Method and system for distributing processing of computerized tasks
US20080030764A1 (en) 2006-07-27 2008-02-07 Microsoft Corporation Server parallel aggregation
US8688850B2 (en) * 2007-04-10 2014-04-01 International Business Machines Corporation Method for inter-site data stream transfer in cooperative data stream processing
US8225129B2 (en) * 2007-04-10 2012-07-17 International Business Machines Corporation Methods and apparatus for effective on-line backup selection for failure recovery in distributed stream processing systems
US8417762B2 (en) * 2007-04-10 2013-04-09 International Business Machines Corporation Mechanism for execution of multi-site jobs in a data stream processing system
US20080263106A1 (en) 2007-04-12 2008-10-23 Steven Asherman Database queuing and distributed computing
US7779298B2 (en) * 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
US20090210876A1 (en) 2008-02-20 2009-08-20 Jinmei Shen Pull-model Workload Management with Synchronous-Asynchronous-Synchronous Bridge
JP4612714B2 (ja) * 2008-08-12 2011-01-12 株式会社日立製作所 データ処理方法、クラスタシステム、及びデータ処理プログラム
US8875142B2 (en) 2009-02-11 2014-10-28 Hewlett-Packard Development Company, L.P. Job scheduling on a multiprocessing system based on reliability and performance rankings of processors and weighted effect of detected errors
US8495193B2 (en) * 2010-02-23 2013-07-23 Microsoft Corporation Centralized management tool for remote presentation session server farms
US8484340B2 (en) 2010-06-14 2013-07-09 Microsoft Corporation Server array capacity management calculator
US8850261B2 (en) * 2011-06-01 2014-09-30 Microsoft Corporation Replaying jobs at a secondary location of a service
US8938638B2 (en) 2011-06-06 2015-01-20 Microsoft Corporation Recovery service location for a service
JP5948933B2 (ja) 2012-02-17 2016-07-06 日本電気株式会社 ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US20140068621A1 (en) 2012-08-30 2014-03-06 Sriram Sitaraman Dynamic storage-aware job scheduling
JP6201530B2 (ja) 2013-08-30 2017-09-27 富士通株式会社 情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1965305A (zh) * 2000-10-18 2007-05-16 Bep技术公司 分布式多处理系统
US20020103816A1 (en) * 2001-01-31 2002-08-01 Shivaji Ganesh Recreation of archives at a disaster recovery site
WO2005078581A1 (ja) * 2004-02-18 2005-08-25 Ibm Japan, Ltd. システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US20130346995A1 (en) * 2005-03-11 2013-12-26 Adaptive Computing Enterprises, Inc. System and Method for Enforcing Future Policies in a Compute Environment
US8046780B1 (en) * 2005-09-20 2011-10-25 Savi Technology, Inc. Efficient processing of assets with multiple data feeds
CN101719931A (zh) * 2009-11-27 2010-06-02 南京邮电大学 一种基于多智能主体的层次式云端计算模型构建方法
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system

Also Published As

Publication number Publication date
US9846618B2 (en) 2017-12-19
EP3087483B1 (en) 2022-04-13
EP3087483A1 (en) 2016-11-02
US9703638B2 (en) 2017-07-11
US20150186489A1 (en) 2015-07-02
CN105874433B (zh) 2020-11-03
US20150186181A1 (en) 2015-07-02
JP2017502414A (ja) 2017-01-19
JP6615761B2 (ja) 2019-12-04

Similar Documents

Publication Publication Date Title
CN105874433A (zh) 用于支持分布式数据网格中的异步调用的系统和方法
CN111061715B (zh) 基于Web和Kafka的分布式数据集成系统及方法
JP5102901B2 (ja) データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム
US9787561B2 (en) System and method for supporting a selection service in a server environment
US9559977B2 (en) System and method for supporting a dynamic resource broker in a transactionial middleware machine environment
CN100410872C (zh) 用于增强的运行时间主机支持的方法和设备
US7260818B1 (en) System and method for managing software version upgrades in a networked computer system
CN105659562B (zh) 一种用于容障的方法和数据处理系统和包括用于容障的计算机可用代码的存储设备
US9164806B2 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
CN109313564A (zh) 用于支持多个不同租户的高度可用虚拟桌面的服务器计算机管理系统
US10333859B2 (en) Multi-tenant resource coordination method
US20120297056A1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US20090187668A1 (en) Protocol Independent Server Replacement and Replication in a Storage Area Network
EP2115586A2 (en) Distributed platform management for high availability systems
CN111427675A (zh) 一种数据处理方法、装置以及计算机可读存储介质
CN112162841A (zh) 面向大数据处理的分布式调度系统、方法及存储介质
CN105830029B (zh) 用于在计算环境中支持自适应忙等待的系统和方法
CN111078119A (zh) 一种数据重建方法、系统、装置及计算机可读存储介质
CN107528871A (zh) 存储系统中的数据分析
US11113106B2 (en) Coordinating distributed task execution
CN114090201A (zh) 资源调度方法、装置、设备及存储介质
CN113515524A (zh) 一种分布式缓存接入层节点的自动动态分配方法及装置
Kim et al. A tactic-based approach to embodying non-functional requirements into software architectures
US11334246B2 (en) Nanoservices—a programming design pattern for managing the state of fine-grained object instances
US20240069970A1 (en) System and method for sharing vitals among service replicas to enable processing of long running automation workflows in a container orchestration system

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