CN105144099B - 通信系统 - Google Patents

通信系统 Download PDF

Info

Publication number
CN105144099B
CN105144099B CN201380072312.7A CN201380072312A CN105144099B CN 105144099 B CN105144099 B CN 105144099B CN 201380072312 A CN201380072312 A CN 201380072312A CN 105144099 B CN105144099 B CN 105144099B
Authority
CN
China
Prior art keywords
client
request
client request
control section
payload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380072312.7A
Other languages
English (en)
Other versions
CN105144099A (zh
Inventor
L·E·格林菲尔德
M·R·马蒂
F·德巴克
D·J·彭
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN105144099A publication Critical patent/CN105144099A/zh
Application granted granted Critical
Publication of CN105144099B publication Critical patent/CN105144099B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种在数据处理设备(210)上处理客户端请求(130)的方法(500)。所述方法包含从相应客户端(120)接收客户端请求的控制部分(132)。每一客户端请求具有控制部分及有效负载部分(134),其中所述有效负载部分包含数据(135)且所述控制部分包含关于所述有效负载部分的所述数据的信息(133)。所述方法还包含:在所述数据处理设备的非暂时性存储器中缓冲所述所接收的客户端请求控制部分;及在处理客户端请求之前检索所述客户端请求的所述有效负载部分。

Description

通信系统
技术领域
本发明涉及服务器与客户端之间的通信系统。
背景技术
服务器一般专用于运行由一或多个客户端(例如,用户)请求的一或多个服务。所述服务器通常提供特定服务,例如数据库服务器向客户端提供数据库服务、文件服务器为在不同客户端之间共享的文件提供位置、邮件服务器将邮件从一个客户端提供到另一客户端、打印服务器经由网络将客户端连接到特定打印机、网页服务器允许客户端查看网站的内容等等。每一服务器,不管其提供何种服务,通常包含硬件部分及软件部分。所述硬件部分允许软件部分运行执行特定服务器服务的软件程序。
所述服务器从客户端接收请求并基于客户端请求执行特定任务。所述服务器通常接收在各种优先级下的不可预测的请求模式。这些请求有时经排队以在缓冲器中处理,且服务器设计中的主要问题为管理客户端请求的进入队列。所述服务器应试图维持所述缓冲器的大小以避免用完存储器。在一些情况中,当缓冲器从客户端接收大量请求时,服务器拒绝所述请求或暂停连接并停止读取任何进入的客户端请求。因为客户端重发请求,所以拒绝请求消耗网络及计算机存储器资源。
发明内容
本发明的一方面提供一种在数据处理设备上处理客户端请求的方法。每一客户端请求具有控制部分及有效负载部分,其中所述有效负载部分包含数据且所述控制部分包含关于所述有效负载部分的数据的信息。所述方法包含:从相应客户端接收客户端请求的控制部分;在数据处理设备的非暂时性存储器中缓冲所接收的客户端请求控制部分;及在处理客户端请求之前检索所述客户端请求的有效负载部分。
本发明的实施方案可包含以下特征中的一或多者。在一些实施方案中,所述方法包含指定客户端控制部分的优先次序以用于客户端请求的顺序处理。所述方法可包含基于优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者来指定客户端控制部分的优先次序。另外或替代地,所述方法可包含基于客户端请求的相应优先次序按顺序处理客户端请求。所述方法可包含检索具有第一高优先次序、第二高优先次序或第三高优先次序的客户端请求的有效负载部分。
在一些实施方案中,检索客户端请求的有效负载部分包含使用远程直接存储器访问来访问客户端的非暂时性存储器。在处理客户端请求之后,所述方法可包含将经处理有效负载发送到经处理客户端请求的客户端。另外,所述方法可包含:确定经处理客户端请求的客户端是否具有足够的存储器可用来接收经处理有效负载;及当相应客户端具有足够的存储器可用时将经处理有效负载发送到所述客户端。
所述控制部分可包含用于完成客户端请求的持续时间。所述方法可包含当无法在指定持续时间内处理相应客户端的客户端请求时向所述客户端发送消息。另外或替代地,所述方法可包含当无法在指定持续时间内处理客户端请求时拒绝所述客户端请求。
本发明的另一方面提供一种在数据处理设备上执行以用于处理客户端请求的系统。所述系统包含接收器、缓冲器及有效负载检索器。所述缓冲器在数据处理设备上执行且从相应客户端接收客户端请求的控制部分。每一客户端请求具有控制部分及有效负载部分,其中所述有效负载部分包含数据且所述控制部分包含关于所述有效负载部分的数据的信息。所述缓冲器可在数据处理设备的非暂时性存储器中缓冲所述客户端请求的所接收控制部分。所述有效负载检索器在数据处理设备上执行且检索所述客户端请求的有效负载部分以处理所述客户端请求。
所述检索器可指定客户端控制部分的优先次序以用于客户端请求的顺序处理。另外,所述接收器可基于优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者指定客户端控制部分的优先次序。在一些实例中,所述有效负载检索器检索具有第一高优先次序、第二高优先次序或第三高优先次序的客户端请求的有效负载部分。
在一些实施方案中,所述有效负载检索器使用远程直接存储器访问(RDMA)来访问客户端的非暂时性存储器。所述系统可包含请求处理器,所述请求处理器处理客户端请求并将经处理有效负载发送到经处理客户端请求的客户端。另外或替代地,所述请求处理器可基于客户端请求的相应优先次序按顺序处理所述客户端请求。在一些实例中,所述请求处理器确定经处理客户端请求的客户端是否具有足够的存储器可用来接收经处理有效负载,且如果所述客户端确实具有足够的存储器可用,那么所述请求处理器将经处理有效负载发送到相应客户端。所述控制部分可包含用于完成客户端请求的持续时间,且当无法在指定持续时间内处理客户端请求时,所述请求处理器向相应客户端发送消息。
在本发明的又另一方面中,一种向数据处理设备发送客户端请求的方法包含产生客户端请求的控制部分及有效负载部分。所述有效负载部分包含数据且所述控制部分包含关于所述有效负载部分的数据的信息。所述方法包含:将客户端请求的控制部分发送到数据处理设备;接收用于检索客户端请求的有效负载部分的检索请求;及允许对客户端请求的有效负载部分的访问。
在一些实施方案中,所述方法包含允许通过远程直接存储器访问对有效负载部分进行检索。所述客户端控制部分可包含优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者。在发送客户端请求的控制部分之后,所述方法可包含从数据处理设备接收对应于客户端请求的有效负载部分的经处理有效负载。另外,所述方法可进一步包含当客户端具有足够的存储器容量时接收经处理有效负载。在一些实例中,所述方法包含:以第一顺序次序将对应客户端请求的多个控制部分发送到数据处理设备;及以不同于所述第一顺序次序的第二顺序次序接收对客户端请求的有效负载部分的检索请求。
在一些实施方案中,所述控制部分包含用于完成客户端请求的持续时间。所述方法可包含当无法在指定持续时间内处理客户端请求时从数据处理设备接收消息。另外,所述方法可包含当无法在指定持续时间内处理客户端请求时重发客户端请求的客户端控制部分。
在本发明的又另一方面中,一种用于将客户端请求发送到数据处理设备的系统包含请求部分产生器、消息传送器(messenger)及非暂时性存储器。所述请求部分产生器产生客户端请求的控制部分及有效负载部分。所述有效负载部分包含数据,且所述控制部分包含关于所述有效负载部分的数据的信息。所述消息传送器将客户端请求的控制部分发送到数据处理设备。所述非暂时性存储器存储有效负载部分,所述数据处理设备可访问所述有效负载部分以进行检索。
在一些实施方案中,所述非暂时性存储器可由数据处理设备通过远程直接存储器访问来访问。在一些实例中,所述客户端控制部分包含优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者。另外或替代地,所述控制部分可包含用于完成客户端请求的持续时间。
在一些实施方案中,所述系统包含接收器,所述接收器从数据处理设备接收对应于客户端请求的经发送控制部分的经处理有效负载。当非暂时性存储器具有足够的容量时,所述接收器可允许接收经处理有效负载。在一些实例中,当无法在指定持续时间内处理客户端请求时从数据处理设备接收消息。在一些实例中,所述消息传送器以第一顺序次序将对应客户端请求的多个控制部分发送到数据处理设备,且以不同于第一顺序次序的第二顺序次序从数据处理设备接收经处理有效负载部分。当无法在指定持续时间内处理客户端请求时所述消息传送器可重发所述客户端请求的客户端控制部分。
在附图及以下描述中陈述本发明的一或多个实施方案的细节。将从以下描述和图式且从权利要求书明白其它方面、特征及优点。
附图说明
图1A为具有客户端请求处理系统的示范性机器集群系统的示意图。
图1B为图1A的示范性客户端系统的示意图。
图2为示范性客户端-服务器系统的示意图。
图3为客户端与服务器之间的示范性通信的示意图。
图4A及4B为客户端与服务器之间的示范性通信的示意图。
图5提供用于处理客户端请求的方法的示范性操作布置。
图6提供用于发送客户端请求的方法的示范性操作布置。
各个图式中的相同参考符号指示相同元件。
具体实施方式
参考图1A、1B及2,在一些实施方案中,集群系统100包含在单元202中分组的机器210(例如,存储器主机、计算处理器、计算机等等)的集群200。集群200可实施分布式系统201,所述分布式系统包含松散耦合的机器210、210a至n(例如,实施为存储器主机或处理器的计算机或服务器),其各自具有与存储资源214(例如,非暂时性存储器、快闪存储器、动态随机存取存储器(DRAM)、相变存储器(PCM)及/或磁盘)通信的计算资源212(例如,一或多个处理器)。分布式系统201可包含覆盖在存储资源214上的存储抽象(例如,密钥/值库(store)或文件系统),其允许一或多个客户端120、120a至n对存储资源214的可扩展使用。客户端120可通过网络102与机器210通信。
客户端/服务器模型允许客户端120从机器210(本文中也称为服务器210)请求服务。服务器210通常专用于运行从一或多个客户端120接收的一或多个请求130。通常且如图中展示,客户端/服务器通信经由计算机网络102发生,其中客户端120及服务器210在不同位置处具有单独的硬件装置。集群系统100中的客户端/服务器模型的中心问题中的一者为集群系统100内的大量客户端120及机器210。在此类系统中,任何给定服务器210由可用客户端请求130使服务器210负担过重的许多客户端120共享。
客户端请求130包含两个部分,即,控制部分132及有效负载部分134。控制部分132相对较小且含有关于有效负载部分134的信息133(例如,元数据),例如优先级、大小等等。有效负载部分134包含与控制部分132相关联的数据135。因此,因为有效负载部分134含有更多的数据135,所以有效负载部分的大小通常比控制部分132大。
在其中一或多个客户端120将各自包含控制部分132及有效负载部分134两者的请求130发送到服务器210的情形中,当所述系统的性能受到若干有限组件(例如,存储资源)的限制时,可发生瓶颈问题。经常出现的情形是:服务器210接收大量客户端请求130,且如果每一请求130包含控制部分132及有效负载部分134,那么服务器210可接收比其存储资源214可处理的数据更多的数据。接着,服务器210可由于请求130而过载且可能用完存储器。另外或替代地,可发生队头阻塞(head-of-line blocking)。当第一输入(即,输入缓冲器的头)堵塞缓冲器中的剩余输入时,可发生队头阻塞(HOL阻塞)。除非处理或移除第一输入,否则无法处理缓冲器中的其它输入。因为单个连接可载送在各种优先级下的请求130,所以暂停连接暂停了在所有优先级下的请求130(例如,导致HOL阻塞)。此外,当客户端120必须重试请求130时,拒绝请求130消耗网络及CPU资源,且可使调度更困难,这是因为服务器210不再知晓请求130。另一方面,如果客户端120首先仅将请求130的控制部分132发送到服务器210,那么服务器210具有相对更多的可用存储资源214[图3]来处理相对更大数目的请求130。服务器210可在较晚时间(例如,在处理请求130时)检索有效负载部分134。
图3提供客户端120与服务器210之间的通信的概览。在一些实施方案中,客户端120将控制部分132发送到服务器210。服务器210将所述请求存储在其存储器214中直到处理器212准备好处理请求130为止。当处理器212可用且准备好处理请求130时,服务器210检索请求130的有效负载部分134并处理请求130。在一些实例中,所述服务器使用远程直接存储器访问(RDMA)来检索请求130的相应控制部分132的有效负载部分134。RDMA通过直接检索所要的数据来降低对网络102的数据要求。RDMA不涉及服务器210或客户端120的操作系统中的任一者,从而消除了对额外中央处理单元(CPU)、高速缓冲存储器或上下文切换(context switch)的需要。此外,当服务器210正处理不同的客户端请求130时,RDMA可以并行操作检索客户端请求130的有效负载部分134。虽然使用RDMA来描述客户端有效负载检索过程,但也可使用其它合适的检索过程及方法。
参考图4A及4B,在一些实施方案中,客户端120包含请求部分产生器150、存储资源160(例如,非暂时性存储器、快闪存储器、动态随机存取存储器(DRAM)、相变存储器(PCM)及/或磁盘)及消息传送器170。在将控制部分132发送到服务器210之前,客户端120的请求部分产生器150将客户端请求130分成有效负载部分134及控制部分132。客户端120将有效负载部分134存储在存储器160中。在一些实例中,存储器160可由服务器210访问以进行有效负载部分134的稍后检索。另外或替代地,存储器160可由服务器210通过远程直接存储器访问(RDMA)来访问。消息传送器170将控制部分132发送到服务器210。控制部分132可包含以下(例如,如元数据)中的一或多者:请求优先级(例如,高优先级、中优先级或低优先级)、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证。关于客户端120或客户端请求130的其它信息可包含在控制部分132中。在一些实例中,消息传送器170以第一顺序发送控制部分132;然而,接收器180可不以与发送控制部分132的次序相同的次序接收对应经发送控制部分132的经处理有效负载136。在一些实例中,客户端120为从服务器210发送的经处理有效负载136保留存储器160的一部分。
在一些实例中,客户端120包含接收器180,接收器180用于从服务器210接收先前发送到服务器210的对应控制部分132的经处理有效负载136。此外或替代地,仅当客户端存储资源160具有足够存储空间来接收经处理有效负载136时,接收器180接收经处理有效负载136。
在一些实例中,客户端120要求在指定持续时间内处理某些请求130。客户端120可在发送到服务器210的控制部分132中包含用于完成请求130的持续时间。服务器210可确定其是否可在由客户端120请求的指定时间内处理请求130。如果服务器210无法在所述指定时间内处理请求,那么服务器210向接收器180发送指示无法处理请求130的消息131(图3)。在此类情况中,客户端120可将所述请求重发到相同服务器210或另一服务器210。
服务器210可包含缓冲器230、有效负载检索器240、处理器212及接收器260。接收器260接收从客户端消息传送器170发送的控制部分132。在一些实例中,接收器260基于以下信息中的一或多者指定客户端控制部分132的优先次序:请求优先级(例如,高优先级、中优先级或低优先级)、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证。接收器260可基于包含在所接收的客户端控制部分132中的关于客户端120或客户端请求130的任何类型的消息来指定控制部分132的优先次序。在基于控制部分132中含有的消息指定请求130的优先次序之后,接收器260将经指定优先次序的控制部分132发送到缓冲器230。缓冲器230以由接收器260指定的次序维持控制部分132。缓冲器230为用于在处理控制部分132之前存储控制部分132的物理存储器存储装置(例如,非暂时性存储器、快闪存储器、动态随机存取存储器(DRAM)、相变存储器(PCM)及/或磁盘)。
在一些实例中,有效负载检索器240从缓冲器230接收客户端请求130的控制部分132且从客户端120检索对应有效负载部分134。当有效负载检索器240接收控制部分132的对应有效负载部分134时,处理器212可处理客户端请求130。此过程避免了针对等待被处理的经检索有效负载部分134的服务器存储器230分配。然而,在一些实例中,有效负载检索器240仅当在其已将先前客户端请求130发送到处理器212时检索对应控制部分132的有效负载部分134。有效负载检索器240可检索对应于准备好被处理的控制部分132的指定数目的有效负载部分134。举例来说,有效负载检索器240可考虑缓冲器230中的最后三个控制部分132且检索其对应有效负载部分134以为处理器212处理客户端请求130做准备。这允许处理器212连续处理客户端请求130而无需等待有效负载检索器240从客户端存储器检索有效负载部分134。一旦处理器212处理客户端请求130,服务器210便将经处理有效负载部分136发送到客户端120。
允许客户端120发送客户端请求130的控制部分132及允许服务器210在其准备好处理请求130时检索有效负载部分134的过程给予服务器210接收较大数目的请求130的机会,这是因为所接收的请求130仅包含在大小方面相对小于有效负载部分134的请求130的控制部分132。作为实例,有效负载部分134通常为数百个千字节,而相应控制部分132仅为数百个字节。因此,服务器210能够在其用完存储器之前接收多1000倍的请求。这提供更好的隔离、优先次序并改善长尾时延(long‐tail latency)。
再次参考图2,在一些实施方案中,代理104介接在一或多个客户端120与服务器210之间。代理104可从客户端120接收请求130并仅将控制部分132转发到适当服务器210(例如,基于控制部分132)。当服务器210请求时,代理104可将有效负载部分134发送到适当服务器210。替代地,代理104可仅从客户端120接收控制部分132并接着将控制部分132转发到适当服务器210,且在服务器210请求有效负载部分134时仅从客户端120请求有效负载部分134,因此减少在代理104内部进行缓冲的需要。
图5提供用于在数据处理设备210上处理客户端请求130的方法500的示范性操作布置。所述方法包含从相应客户端120接收502客户端请求130的控制部分132。每一客户端请求130具有控制部分132及有效负载部分134。控制部分132包含关于有效负载部分134的数据135的信息133。因此,因为有效负载部分134包含更多的数据135,所以有效负载部分134的大小比控制部分132大。方法500还包含:在数据处理设备210的非暂时性存储器214中缓冲504所接收的客户端控制部分132;及在处理客户端请求130之前检索所述客户端请求130的有效负载部分134。
在一些实例中,所述方法包含指定客户端控制部分132的优先次序以用于客户端请求130的顺序处理。所述方法可基于优先级(高优先级、中优先级或低优先级)、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者来指定客户端控制部分132的优先次序。在一些实例中,方法500进一步包含基于客户端请求130的相应优先次序来按顺序处理客户端请求130。此外,方法500可进一步包含检索具有第一高优先次序、第二高优先次序或第三高优先次序的客户端请求130的有效负载部分134。在一些实例中,有效负载检索器240基于客户端请求130的相应控制部分132在缓冲器230中的位置从客户端120接收所述控制部分132的预定数目的有效负载部分134(例如,有效负载检索器240检索缓冲器230中的最后三个控制部分132的有效负载部分134)。
在一些实施方案中,检索有效负载部分134包含使用远程直接存储器访问(RDMA)访问客户端120的非暂时性存储器160。在处理客户端请求130之后,方法500可包含将经处理有效负载136发送到经处理客户端请求130的客户端120。此外,所述方法可包含:确定经处理客户端请求130的客户端是否具有足够的存储器160可用来接收经处理有效负载136;及在客户端120具有足够的存储器160可用时将经处理有效负载136发送到相应客户端120。
在一些实例中,客户端120期望来自服务器210的服务,且要求所述服务在特定量的时间内执行。因此,控制部分132可包含用于完成客户端请求130的持续时间。方法500可包含在无法在指定持续时间内处理相应客户端120的客户端请求130时向所述客户端120发送消息。在一些实例中,当无法在指定持续时间内处理客户端请求130时或由于任何其它原因服务器210无法处理客户端请求130时,所述方法拒绝所述客户端请求130。这允许客户端120将请求130发送到另一服务器210,且避免在处理请求130(包含控制部分132及有效负载部分134)之前使请求130在缓冲器中排队的延迟。
参考图6,在一些实施方案中,提供将客户端请求130发送到数据处理设备210的方法600。方法600包含产生602客户端130的控制部分132及有效负载部分134。有效负载部分134包含数据且控制部分132包含关于有效负载部分134的数据的信息。方法600包含:将客户端请求130的控制部分132发送604到数据处理设备210;接收606检索客户端请求130的有效负载部分134的请求;及允许608访问客户端请求130的有效负载部分134。
在一些实施方案中,方法600包含允许通过远程直接存储器访问(RDMA)对有效负载部分134进行检索。可使用有效负载部分134的其它检索方法。客户端控制部分132可包含优先级(例如,高优先级、中优先级或低优先级)、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者。在将客户端请求130的控制部分132发送到服务器210之后,方法600可包含从服务器210接收对应于客户端请求130的有效负载部分134的经处理有效负载136。此外,所述方法可进一步包含当所述客户端120具有足够存储器160容量时接收经处理有效负载136。在一些实例中,方法600包含:以第一顺序次序将对应客户端请求130的多个控制部分134发送到数据处理设备210;及以不同于第一顺序次序的第二顺序次序接收对客户端请求的有效负载部分的检索请求。
在一些实施方案中,客户端120要求在指定量的时间中完成请求130。客户端120在控制部分132中包含用于完成客户端请求130的持续时间。接着,服务器210可确定其是否可在所述指定时间内执行客户端请求130。在一些实例中,方法600包含当无法在指定持续时间内处理客户端请求130时从数据处理设备210接收消息。此外,所述方法可包含当无法在指定持续时间内处理客户端请求时重发客户端请求130的客户端控制部分134。客户端120可将请求130发送到相同服务器210或另一服务器210。
可以数字电子及/光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件及/或其组合实现本文中描述的系统及技术的各种实施方案。这些各种实施方案可包含一或多个计算机程序中的实施方案,所述一或多个计算机程序可在包含可为专用或通用的至少一个可编程处理器的可编程系统上执行及/或解译,所述可编程处理器经耦合以从存储系统、至少一个输入装置及至少一个输出装置接收数据及指令及将数据及指令发送到所述存储系统、至少一个输入装置及至少一个输出装置。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包含用于可编程处理器的机器指令,且可以高级过程性及/或面向对象编程语言及/或以汇编语言/机器语言来实施。如本文中使用,术语“机器可读媒体”“计算机可读媒体”是指用于向可编程处理器提供机器指令及/或数据的任何计算机程序产品、非暂时性计算机可读媒体、设备及/或装置(例如,磁盘、光盘、非暂时性存储器、可编程逻辑装置(PLD)),其包含接收机器指令作为机器可读信号的机器可读媒体。术语“机器可读信号”是指用于向可编程处理器提供机器指令及/或数据的任何信号。
本说明书中描述的标的物及功能操作的实施方案可以数字电子电路或以计算机软件、固件或硬件(包含本说明书中揭示的结构及其结构等效物)或以其中一或多者的组合实施。此外,本说明书中描述的标的物可实施为一或多个计算机程序产品(即,编码在计算可读媒体上以由数据处理设备执行或控制数据处理设备的操作的计算程序指令的一或多个模块)。所述计算机可读媒体可为机器可读存储装置、机器可读存储衬底、非暂时性存储器装置或影响机器可读传播信号的物质的组成或其中一或多者的组合。术语“数据处理设备”、“计算装置”及“计算处理器”涵盖用于处理数据的所有设备、装置及机器,举例来说包含可编程处理器、计算机或多个处理器或计算机。除硬件之外,所述设备可包含为讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议堆叠、数据库管理系统、操作系统或其中一或多者的组合的代码。传播信号为经产生以编码信息以用于传输到合适接收器设备的人工产生的信号,例如机器产生的电信号、光学信号或电磁信号。
计算机程序(也称为应用程序、程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言(包含编译语言或解释性语言)编写且其可任何形式部署(包含部署为独立程序或模块、组件、子程序或适于用于计算环境中的其它单元)。计算机程序不一定对应于文件系统中的文件。程序可存储在保持其它程序或数据(例如,存储在标记语言文档中的一或多个脚本)的文件的一部分中、存储在专用于讨论中的程序的单个文件中或存储在多个协调文件(例如,存储一或多个模块、子程序或代码的部分的文件)中。计算机程序可经部署以在一个计算机上或在定位在一个地点处或跨越多个地点分布且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程及逻辑流程可由执行一或多个计算机程序以通过操作输入数据及产生输出来执行功能的一或多个可编程处理器执行。所述过程及逻辑流程还可由专用逻辑电路(例如FPGA(现场可编程门阵列))或ASIC(专用集成电路)执行且设备还可实施为专用逻辑电路(例如FPGA(现场可编程门阵列))或ASIC(专用集成电路)。
举例来说,适于执行计算机程序的处理器包含通用微处理器及专用微处理器及任何种类的数字计算机中的任何一或多个处理器。一般来说,处理器将从只读存储器或随机存储存储器或所述两者接收指令及数据。计算机的实质元件为用于执行指令的处理器及用于存储指令及数据的一或多个存储器装置。一般来说,计算机还将包含用于存储数据的一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或可经操作性地耦合以从一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)接收数据或将数据转移到一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或既从一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)接收数据又将数据转移到一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)。然而,计算机无需具有此类装置。此外,计算机可嵌入在另一装置(例如移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器等等)中。适于存储计算机程序指令及数据的计算机程序可读媒体包含所有形式的非易失性存储器、媒体及存储器装置,举例来说包含:半导体存储器装置,例如EPROM、EEPROM及快闪存储器装置;磁盘,例如内置硬盘或可移除磁盘;磁光盘;及CD ROM及DVD-ROM磁盘。所述处理器及存储器可由专用逻辑电路补充或可并入所述专用逻辑电路中。
为提供与用户的交互,本发明的一或多个方面可在具有用于向用户显示信息的显示装置(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器)或触摸屏及键盘及指针装置(例如,鼠标或轨迹球)的计算机上实施,其中用户可通过所述键盘及指针装置向所述计算机提供输入。也可使用其它种类的装置来提供与用户的交互;举例来说,向用户提供的反馈可为任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);且来自用户的输入可以任何形式接收,包含声音输入、语音输入或触觉输入。此外,计算机可通过将文档发送到由用户使用的装置及从所述装置接收文档(例如,通过响应于从网页浏览器接收的请求将网页发送到用户的客户端装置上的网页浏览器)来与用户交互。
本发明的一或多个方面可在包含后端组件(例如,数据服务器)或包含中间件组件(例如,应用程序服务器)或包含前端组件(例如,具有用户可通过其与本说明书中描述的标的物的实施方案交互的图形用户接口或网页浏览器的客户端计算机)或一或多个此类后端、中间件或前端组件的任何组合的计算系统中实施。所述系统的组件可通过任何形式或媒体的数字数据通信(例如,通信网络)互连。通信网络的实例包含局域网(“LAN”)及广域网(“WAN”)、互联网络(例如,因特网)及对等网络(例如,自组对等网络)。
所述计算系统可包含客户端及服务器。客户端及服务器通常彼此远离且通常通过通信网络交互。客户端及服务器的关系凭借在相应计算机上运行且彼此具有客户端-服务器关系的计算机程序呈现。在一些实施方案中,服务器将数据(例如,HTML页)传输到客户端装置(例如,出于向与客户端装置交互的用户显示数据及从所述用户接收用户输入的目的)。可在服务器处从客户端装置接收在客户端装置处产生的数据(例如,作为用户交互的结果)。
虽然本说明书含有许多特性,但这些特性不应解释为对本发明或可主张的内容的范围的限制,而是应解释为特定于本发明的特定实施方案的特征的描述。本说明书中在单独实施方案的背景下描述的某些特征也可在单个实施方案中以组合实施。相反地,在单个实施方案的背景下描述的各种特征也可单独地或以任何子组合在多个实施方案中实施。此外,虽然上文可将特征描述为以某些组合起作用其且甚至最初如此主张,但在一些情形中可从所述组合除去来自所主张组合的一或多个特征,且所主张组合可针对子组合或子组合的变型。
类似地,虽然在图式中以特定次序描绘操作,但这不应理解为要求以所展示的特定次序或以顺序次序执行此类操作或执行所有所说明的操作以实现所要结果。在某些情况中,多任务及并行处理可为有利的。此外,各种系统组件在上文描述的实施例中的分离不应理解为在所有实施例中需要此分离,且应理解,一般可将所描述的程序组件及系统一起集成在单个软件产品中或封装到多个软件产品中。
已描述若干实施方案。然而,将理解,可在不脱离本发明的精神及范围的情况下做出各种修改。因此,其它实施方案在所附权利要求书的范围内。举例来说,可以不同次序执行所附权利要求书中引述的动作且仍实现所要结果。

Claims (30)

1.一种在数据处理设备(210)上处理客户端请求(130)的方法(500),所述方法(500)包括:
在不使用远程直接存储器访问来访问相应客户端的客户端存储器的情况下从相应客户端(120)接收客户端请求(130)的控制部分(132),每一客户端请求(130)具有控制及有效负载部分(132、134),所述有效负载部分(134)包含数据(135)且所述控制部分(132)包含关于所述有效负载部分(134)的所述数据(135)的信息(133);
在所述数据处理设备(210)的非暂时性存储器(214)中缓冲所述客户端请求(130)的所接收的控制部分(132);及
在缓存所述客户端请求的所接收的控制部分之后以及当处理所述客户端请求中的一个时:
在处理该客户端请求(130)之前使用远程直接存储器访问来访问所述相应客户端的客户端存储器以检索所接收的缓冲的客户端请求控制部分的对应有效负载部分(134)并且不在数据处理设备中为所检索的有效负载部分分配存储器,以及
处理所述客户端请求并将经处理有效负载发送到经处理客户端请求的相应客户端。
2.根据权利要求1所述的方法,其进一步包括指定所述客户端控制部分(132)的优先次序以用于所述客户端请求(130)的顺序处理。
3.根据权利要求2所述的方法,其进一步包括基于优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者指定所述客户端控制部分(132)的优先次序。
4.根据权利要求2所述的方法,其进一步包括基于客户端请求(130)的相应优先次序按顺序处理所述客户端请求(130)。
5.根据权利要求4所述的方法,其进一步包括检索具有第一高优先次序、第二高优先次序或第三高优先次序的客户端请求(130)的所述有效负载部分(134)。
6.根据权利要求1所述的方法,其进一步包括:
确定所述经处理客户端请求的所述客户端(120)是否具有足够的存储器(160)可用来接收所述经处理有效负载;及
当所述客户端具有足够的存储器(160)可用时将所述经处理有效负载发送到所述相应客户端(120)。
7.根据权利要求1所述的方法,其中所述控制部分(132)包含用于完成所述客户端请求(130)的持续时间。
8.根据权利要求7所述的方法,其进一步包括当无法在指定持续时间内处理所述相应客户端(120)的客户端请求(130)时向所述客户端发送消息(131)。
9.根据权利要求7所述的方法,其进一步包括当无法在指定持续时间内处理客户端请求(130)时拒绝所述客户端请求(130)。
10.一种在数据处理设备(210)上执行以用于处理客户端请求(130)的系统,所述系统包括:
接收器(260),其在所述数据处理设备(210)上执行且在不使用远程直接存储器访问来访问相应客户端的存储器的情况下从相应客户端(120)接收客户端请求(130)的控制部分(132),每一客户端请求(130)具有控制及有效负载部分(132、134),所述有效负载部分(134)包含数据(135)且所述控制部分(132)包含关于所述有效负载部分(134)的所述数据(135)的信息(133);
缓冲器(230),其在所述数据处理设备(210)上执行且在所述数据处理设备(210)的非暂时性存储器(214)中缓冲所接收的客户端请求(130)控制部分(132);
有效负载检索器(240),其在所述数据处理设备(210)上执行,且在所述缓冲器缓冲所接收的客户端请求控制部分之后,所述有效负载检索器:
从所述缓冲器接收所述客户端请求的所缓冲的控制部分,以及
通过使用远程直接存储器访问访问所述相应客户端的存储器来检索所接收的缓冲的客户端请求的控制部分的对应有效负载部分(134)中的每一个,而不在数据处理设备中为所检索的有效负载部分分配存储器;
请求处理器(212),其在所述数据处理设备上执行,并且在所述有效负载检索器从所述相应客户端检索所述对应有效负载部分之后,所述请求处理器处理所述客户端请求并将经处理有效负载发送到每一经处理客户端请求的相应客户端。
11.根据权利要求10所述的系统,其中所述接收器(260)指定所述客户端控制部分(132)的优先次序以用于所述客户端请求(130)的顺序处理。
12.根据权利要求11所述的系统,其中所述接收器(260)基于优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者指定所述客户端控制部分(132)的优先次序。
13.根据权利要求11所述的系统,其进一步包括请求处理器(212),所述请求处理器(212)基于所述客户端请求(130)的相应优先次序来处理所述客户端请求(130)。
14.根据权利要求13所述的系统,其中所述有效负载检索器(240)检索具有第一高优先次序、第二高优先次序或第三高优先次序的客户端请求(130)的所述有效负载部分(134)。
15.根据权利要求10所述的系统,其中所述请求处理器(212):
确定所述经处理客户端请求的所述客户端(120)是否具有足够的存储器(160)可用来接收所述经处理有效负载;且
当所述客户端(120)具有足够的存储器(160)可用时将所述经处理有效负载发送到所述相应客户端(120)。
16.根据权利要求10所述的系统,其中所述控制部分(132)包含用于完成所述客户端请求(130)的持续时间,且当无法在指定持续时间内处理客户端请求(130)时,所述请求处理器(212)向所述相应客户端(120)发送消息(131)。
17.一种将客户端请求(130)发送到数据处理设备(210)的方法(600),所述方法(600)包括:
产生所述客户端请求(130)的控制及有效负载部分(132、134),所述有效负载部分(134)包含数据(135)且所述控制部分(132)包含关于所述有效负载部分(134)的所述数据(135)的信息(133);
在不使用远程直接存储器访问的情况下将所述客户端请求(130)的所述控制部分(132)发送到所述数据处理设备(210);以及
在数据处理设备缓冲发送的客户端请求的控制部分之后,从客户端的存储器接收所述客户端请求的有效负载部分的远程直接存储器访问检索,而不在数据处理设备中为所检索的有效负载部分分配存储器;及
在数据处理设备检索所述有效负载部分之后,从所述数据处理设备接收对应于所述客户端请求的所述有效负载部分的经处理有效负载。
18.根据权利要求17所述的方法,其中所述客户端控制部分(132)包括优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者。
19.根据权利要求17所述的方法,其进一步包括当客户端(120)具有足够存储器容量时接收所述经处理有效负载。
20.根据权利要求17所述的方法,其进一步包括:
以第一顺序次序将对应客户端请求(130)的多个控制部分(132)发送到所述数据处理设备(210);及
以不同于所述第一顺序次序的第二顺序次序接收对所述客户端请求(130)的有效负载部分(134)的远程直接存储器访问检索。
21.根据权利要求17所述的方法,其中所述控制部分(132)包含用于完成所述客户端请求(130)的持续时间。
22.根据权利要求21所述的方法,其进一步包括当无法在指定持续时间内处理所述客户端请求(130)时从所述数据处理设备(210)接收消息(131)。
23.根据权利要求22所述的方法,其进一步包括当无法在所述指定持续时间内处理所述客户端请求(130)时重发所述客户端请求(130)的所述客户端控制部分(132)。
24.一种用于将客户端请求(130)发送到数据处理设备(210)的系统(120),所述系统(120)包括:
请求部分产生器(150),其产生所述客户端请求(130)的控制及有效负载部分(132、134),所述有效负载部分(134)包含数据(135)且所述控制部分(132)包含关于所述有效负载部分(134)的所述数据(135)的信息(133);
消息传送器(170),在数据处理设备不使用远程直接存储器访问访问客户端存储器的情况下其将所述客户端请求(130)的所述控制部分(132)发送到所述数据处理设备(210);其中所述客户端存储器存储所述有效负载部分(134),所述有效负载部分(134)可由所述数据处理设备(210)在数据处理设备缓冲发送的客户端请求的控制部分之后通过远程直接存储器访问访问以用于检索,而不在所述数据处理设备中分配存储器;
接收器(180),从所述数据处理设备(210)接收对应于发送的所述客户端请求(130)的控制部分(132)的经处理有效负载(136)。
25.根据权利要求24所述的系统(120),其中所述客户端控制部分(132)包括优先级、大小、用户识别符、客户端识别符、时延、装置识别符或控制部分验证中的至少一者。
26.根据权利要求24所述的系统(120),其中当所述客户端存储器具有足够存储器容量时,所述接收器(180)允许接收所述经处理有效负载(136)。
27.根据权利要求24所述的系统(120),其中所述消息传送器(170)以第一顺序次序将对应客户端请求(130)的多个控制部分(132)发送到所述数据处理设备(210);且所述接收器(180)以不同于所述第一顺序次序的第二顺序次序从所述数据处理设备(210)接收经处理有效负载部分(136)。
28.根据权利要求24所述的系统(120),其中所述控制部分(132)包含用于完成所述客户端请求(130)的持续时间。
29.根据权利要求28所述的系统(120),其中当无法在指定持续时间内处理所述客户端请求(130)时,所述接收器(180)从所述数据处理设备(210)接收消息。
30.根据权利要求29所述的系统(120),其中当无法在所述指定持续时间内处理所述客户端请求(130)时,所述消息传送器(170)重发所述客户端请求(130)的所述客户端控制部分(132)。
CN201380072312.7A 2012-12-26 2013-06-21 通信系统 Active CN105144099B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/727,007 US9247033B2 (en) 2012-12-26 2012-12-26 Accessing payload portions of client requests from client memory storage hardware using remote direct memory access
US13/727,007 2012-12-26
PCT/US2013/047100 WO2014105155A1 (en) 2012-12-26 2013-06-21 Communication system

Publications (2)

Publication Number Publication Date
CN105144099A CN105144099A (zh) 2015-12-09
CN105144099B true CN105144099B (zh) 2019-06-18

Family

ID=50975945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380072312.7A Active CN105144099B (zh) 2012-12-26 2013-06-21 通信系统

Country Status (6)

Country Link
US (1) US9247033B2 (zh)
EP (1) EP2939113B1 (zh)
CN (1) CN105144099B (zh)
CA (1) CA2896154C (zh)
DE (1) DE202013012473U1 (zh)
WO (1) WO2014105155A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229608A1 (en) * 2013-02-14 2014-08-14 Alcatel-Lucent Canada Inc. Parsimonious monitoring of service latency characteristics
GB2519534A (en) * 2013-10-23 2015-04-29 Ibm Persistent caching system and method for operating a persistent caching system
CN106528189B (zh) * 2015-09-10 2019-05-28 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
CN106487896B (zh) * 2016-10-14 2019-10-08 北京百度网讯科技有限公司 用于处理远程直接内存访问请求的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1498822A2 (en) * 2003-07-18 2005-01-19 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
CN1909485A (zh) * 2005-08-02 2007-02-07 韩美爱提株式会社 与多个客户端进行数据处理用系统服务器及数据处理方法
CN101540769A (zh) * 2008-03-19 2009-09-23 索尼株式会社 信息处理单元、客户端设备、信息处理方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4640357A (en) 1985-09-11 1987-02-03 Mobil Oil Corporation Multistep method for viscous hydrocarbon recovery
US5594490A (en) 1994-05-23 1997-01-14 Cable Services Technologies, Inc. System for distributing video/audio files from central location to a plurality of cable headends
US20020078028A1 (en) * 2000-12-18 2002-06-20 Trevalon Inc. Network server
JP3757857B2 (ja) 2001-12-12 2006-03-22 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
GB2394382A (en) 2002-10-19 2004-04-21 Hewlett Packard Co Monitoring the propagation of viruses through an Information Technology network
US7796515B2 (en) 2003-04-29 2010-09-14 Hewlett-Packard Development Company, L.P. Propagation of viruses through an information technology network
US20040252709A1 (en) * 2003-06-11 2004-12-16 Fineberg Samuel A. System having a plurality of threads being allocatable to a send or receive queue
US7539869B1 (en) 2003-09-17 2009-05-26 Sun Microsystems, Inc. System and methods for using a signature protocol by a nonsigning client
US8301739B1 (en) 2004-12-23 2012-10-30 Emc Corporation Storage system initialization utility
US8713393B2 (en) 2007-10-02 2014-04-29 Lantiq Deutschland Gmbh Retransmission and retransmission request in data communication systems
JP5140192B2 (ja) 2009-11-27 2013-02-06 パナソニック株式会社 スレーブ装置および通信システム
EP2390792B1 (en) 2010-05-27 2014-04-16 STMicroelectronics (Grenoble 2) SAS Communication system and method
US20130144951A1 (en) * 2010-07-23 2013-06-06 Smeak, Inc. Communication management system with extensible command language to consolidate and control multiple diverse communication mechanisms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1498822A2 (en) * 2003-07-18 2005-01-19 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
CN1909485A (zh) * 2005-08-02 2007-02-07 韩美爱提株式会社 与多个客户端进行数据处理用系统服务器及数据处理方法
CN101540769A (zh) * 2008-03-19 2009-09-23 索尼株式会社 信息处理单元、客户端设备、信息处理方法和系统

Also Published As

Publication number Publication date
WO2014105155A1 (en) 2014-07-03
DE202013012473U1 (de) 2017-02-09
EP2939113A1 (en) 2015-11-04
CN105144099A (zh) 2015-12-09
CA2896154C (en) 2018-01-02
EP2939113A4 (en) 2016-11-30
CA2896154A1 (en) 2014-07-03
US20140181181A1 (en) 2014-06-26
US9247033B2 (en) 2016-01-26
EP2939113B1 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
US11647081B2 (en) Method and system for reducing connections to a database
US9888048B1 (en) Supporting millions of parallel light weight data streams in a distributed system
US7979509B1 (en) Clustered network acceleration devices having shared cache
CN107590001B (zh) 负载均衡方法及装置、存储介质、电子设备
US7676554B1 (en) Network acceleration device having persistent in-memory cache
US7912949B2 (en) Systems and methods for recording changes to a data store and propagating changes to a client application
US7644108B1 (en) Network acceleration device cache supporting multiple historical versions of content
US9686371B2 (en) Proxy application with dynamic filter updating
US9569742B2 (en) Reducing costs related to use of networks based on pricing heterogeneity
US20080177883A1 (en) Web server for managing session and method thereof
US20110225229A1 (en) Distributed publish/subscribe system
CN101739296B (zh) 数据处理系统和方法
CN103209223A (zh) 分布式应用会话信息共享方法、系统和应用服务器
CN107451853B (zh) 一种红包实时派发的方法、装置、系统及存储介质
KR101991537B1 (ko) 자율형 네트워크 스트리밍 기법
CN106537375B (zh) 具有本地高速缓存的内存缓存系统
CN105144099B (zh) 通信系统
US6934761B1 (en) User level web server cache control of in-kernel http cache
CN106484805A (zh) 一种数据导出方法及数据处理系统
CN113630310A (zh) 一种分布式高可用网关系统
US20160205047A1 (en) Hierarchical caching system for lossless network packet capture applications
CN105897767A (zh) 调度方法、调度响应方法及设备和系统
CN114401262A (zh) 基于rdma的大数据传输系统、方法、装置、设备及存储介质
Williams et al. Twisted and HTTP/2
CN117997727A (zh) 用于cdn的日志落盘方法、装置、介质和电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant