CN113490933A - 分布式数据处理 - Google Patents
分布式数据处理 Download PDFInfo
- Publication number
- CN113490933A CN113490933A CN202080017158.3A CN202080017158A CN113490933A CN 113490933 A CN113490933 A CN 113490933A CN 202080017158 A CN202080017158 A CN 202080017158A CN 113490933 A CN113490933 A CN 113490933A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- response
- requested
- request
- 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
Links
- 238000012545 processing Methods 0.000 title description 10
- 230000004044 response Effects 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Evolutionary Biology (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
在包括至少一个服务器和多个客户端的分布式计算环境中处置数据,其中多个客户端至少包括第一客户端和第二客户端。第一客户端向第二客户端发送对数据的第一请求,从第二客户端接收第一响应作为对第一请求的响应,基于第一响应中包括的有效性指示确定所请求数据的有效性的概率,该有效性指示表示从第二客户端请求的数据无效的概率。第一客户端确定第一请求所请求的并且从第二客户端可用的数据可能无效,向服务器发送第二请求以从服务器获得数据,并从服务器接收数据。
Description
本发明涉及分布式计算机环境中的数据处置,该分布式计算机环境包括至少一个服务器和多个客户端,该多个客户端至少包括第一客户端和第二客户端。更具体而言,本发明涉及在诸如对等网络的客户端之类的客户端之间传播数据。
在过去的几十年中,web技术和分布式计算系统的不断扩大的范围导致需要分发仅在有限时间内有效的数据。因此,预期进一步优化网络上的数据分发,以便确保服务器和客户端主要仅接收和发送有效数据,例如,未过时的数据,从而消除无效数据的传输和处理,并且因此减少web流量负荷以及服务器和客户端的工作负荷。在过去几年中,已经在这方面采取了一些方法。
US 7,509,372 B2描述了一种对等系统,其中第一(客户端)对等节点向已经存储所请求的内容的第二对等节点发送对内容的请求。基于第二(服务器)对等节点的过载状况,第二(服务器)对等节点将所请求的内容返回给第一对等节点,或者返回具有从其可以检索所请求的内容的替代对等节点的列表。第一(客户端)对等节点然后可以从替代对等节点之一检索所请求的内容。
US 8,145,845 B2涉及从可以应用于对等系统的轻量级目录访问协议(LDAP)检索数据。如果所请求的数据存在、有效并且LDAP属性或LDAP索引的生存时间(TTL)尚未过期,那么数据可以从虚拟属性高速缓存中被检索并返回到发出请求的客户端、应用服务器或LDAP操作。TTL指示符被用于允许确定高速缓存、索引、虚拟高速缓存、虚拟索引或类似数据结构中的相关联的数据项是否准确或可靠。如果虚拟属性被索引,但索引的TTL已过期或以其它方式失效,那么可以发送信号以发起索引的重建。
US 2002/0120710 A1描述了客户端向服务器发送对动态内容的集合的请求。然后服务器访问与内容的被高速缓存的版本相关联的信息并确定该内容是否仍然有效。如果内容无效,那么内容的更新后的版本被导出并被发送到客户端。
US 2003/0061272 A1涉及驻留在网络环境中并接收对特定资源的请求的代理高速缓存。如果代理高速缓存确定文档不驻留在高速缓存中或文档可能无效,那么代理高速缓存构造针对作为文档的源的服务器的请求并请求文档的副本或被高速缓存的版本是否有效。
根据第一方面,提供了一种用于在分布式计算环境中处置数据的方法,该分布式计算环境包括至少一个服务器和多个客户端,该多个客户端至少包括第一客户端和第二客户端。该方法包括在第一客户端处向第二客户端发送对数据的第一请求;从第二客户端接收作为对第一请求的响应的第一响应;基于包括在第一响应中的有效性指示确定第一请求所请求的并且从第二客户端可用的数据的有效性的概率,该有效性指示表示从第二客户端请求的数据无效的概率;并且响应于确定第一请求所请求的并且从第二客户端可用的数据可能无效,向服务器发送第二请求以从服务器获得数据并在对第二请求的第二响应中接收来自服务器的数据。
根据另一方面,第二响应包括表示从服务器请求的数据无效的概率的有效性指示。存储从服务器接收的与第二响应中包括的有效性指示相关联的数据。
根据又一方面,确定第一请求所请求的并且从第二客户端可用的数据的有效性的概率包括基于第一响应中包括的所请求的数据的大小以及到第二客户端的连接的给定带宽来估计从第二客户端接收数据的时间。数据的有效性概率是在估计的接收时间确定的。
根据又一方面,该方法包括,响应于确定第一请求所请求的并且从第二客户端可用的数据可能有效,如果数据尚未包括在第一响应中,那么从第二客户端检索数据,并存储与包括在第一响应中的有效性指示相关联的检索到的数据。
根据另外的方面,第一客户端从第三客户端接收对数据的第三请求并且响应于第三请求而向第三客户端发送第三响应,其中第三响应包括与数据相关联的有效性指示。
根据又一方面,响应于接收到第三请求,第一客户端基于所存储的与数据相关联的有效性指示来评估所请求的数据无效的概率,并且响应于确定所请求的数据可能仍然有效,在第三响应中包括由第三客户端请求的数据。
根据另一方面,有效性指示包括时间戳t0,时间戳t0指示生成所请求的数据的时间。
根据另一方面,有效性指示还包括由概率模型建模的所请求的数据的有效性速率C。
根据又一方面,确定所请求的数据可能无效包括计算由(公式1)给出的有效性概率值,其中t表示当前时间或估计的数据接收时间,并将有效性概率值与给定阈值进行比较,并且如果有效性概率值低于给定阈值,那么确定所请求的数据可能无效。
根据另一方面,提供了一种计算机器,该计算机器充当用于在分布式计算环境中处置数据的第一客户端,该分布式计算环境包括至少一个服务器和多个客户端,该多个客户端至少包括第一客户端和第二客户端,计算机器被布置为执行上面提到的方面中的任一个的方法。
根据另一方面,提供了一种计算机程序产品,该计算机程序产品包括存储在计算机可读介质上的程序代码指令,用于当所述程序在计算机上执行时执行根据上面提到的方面中的任一个的方法步骤。
将参考附图描述给出的机制。相似的附图标记一般表示相同或功能相似的元件:
图1是根据本文描述的分布式计算机环境的示意图。
图2是根据一些实施例的消息序列图。
图3示出了根据一些实施例的作为以任意单位(例如,以秒为单位)的所传输数据的大小的函数的以任意单位(例如,以秒为单位)的接收时间。
图4示出了根据一些实施例的第一响应的可能数据格式。
图5示出了根据一些另外的实施例的第一响应的可能数据格式。
图6在流程图中示出了根据一些实施例的第一客户端可用于接收数据的可能场景。
图7示出了根据一些实施例的当所请求的数据被包括在第一响应中时的可能场景。
图8是根据另一个实施例的消息序列图。
图9是根据又一个实施例的消息序列图。
图10示出了根据一些实施例的随时间降低的可能性准确度的示例性函数。
图11是根据一些实施例的计算机器的内部组件的图解表示。
web技术和分布式计算系统的应用领域的增加导致了在对等系统上有效传输具有时间有限的有效性的数据的问题。特别地,应当确保作为分布式环境的一部分的请求数据的客户端接收有效数据,以便避免分布式环境内的数据不一致。
例如,当数据库内容(例如通过经由数据更新更改底层数据)经历改变时,在从存储在数据库中的底层数据选择和复制的数据中可能发生数据无效。在已经执行数据库中的数据更新之后,从所选择的底层数据的集合复制的数据然后可能不再与对应的更新后的底层数据的集合完全相同。因此,复制的数据变得过时并因此无效,并且通过网络的进一步分发和客户端进行的处理导致分布式环境的客户端内的数据不一致。
在某个生命期之后数据变得无效的示例是用于计算装备(诸如移动电话)的电子电路的计划,该计划可以在移动电话的新版本发布时改变,以及随着时间的推移进行修订并且因此存在于多个发布和版本中的技术标准(诸如3GPP规范)。
图1以示意性方式图示了分布式计算系统,诸如本文使用的对等网络。该计算系统包括多个客户端1、服务器4和多个通信接口6。在一些实施例中,服务器4和客户端1是单独的计算机器(诸如个人计算机)、移动站(诸如膝上型计算机或平板计算机、智能电话等),以及在一些实施例中,是更强大的机器,诸如分别包括多个互连的机器的数据库应用服务器、分布式数据库系统、数据中心等。在一些实施例中,服务器4可以是与客户端1类似的机器,而在其它实施例中,服务器4比客户端1更强大。在一个实施例中,服务器4和客户端1是数据中心,其中客户端1复制由服务器数据中心保持的数据并使数据可用,例如,在服务器数据中心的地理位置之外的世界的其它地理部分(例如,其它大陆)中可用。
服务器4和客户端1可以根据性能要求由若干硬件机器构成。服务器4和客户端1两者都被实施为例如包括如图11中所示的计算机器100的固定或移动硬件机器,和/或被实施为诸如被布置为用于特定技术目的的嵌入式系统之类的专用系统,和/或被实施为在通用或专用计算硬件机器上运行的软件组件(诸如web服务器和web客户端)。
服务器4和客户端1通过通信接口6互连。接口6中的每一个利用有线或无线局域网(LAN)或者有线或无线城域网(MAN)或者有线或无线广域网(WAN)(诸如互联网)或上面提到的网络技术的组合并且通过任何合适的通信和网络协议来实现。
在数据在某个生命期之后可能变得无效的示例性分发场景中,服务器4保持关系SQL(结构化查询语言)数据库并从第一客户端1(其进一步表示为客户端1A,参见以下的图2)接收用于从SQL数据库中检索一些数据的SQL查询,诸如基于包含底层数据的两个数据库表“tableA”和“tableB”的视图“tableAB”。在接收到来自第一客户端1A的请求之后,服务器4识别SQL数据库的相关数据库表。随后,服务器4接收识别出的数据库表并将该数据库表存储在例如服务器4的主存储系统中。
服务器4继续处理检索到的数据库表并使用SQL命令CREATE VIEW从数据库表创建数据库表的子集。数据库表的子集再次形成数据库表并且通常被称为视图,并用作使用SQL语句(诸如JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN等)创建新数据库表的基础。随后,通过使用SQL语句(诸如SELECT),服务器4创建由客户端1A请求的数据。此外,可以根据在来自客户端1A的请求中识别出的准则对数据进行分类。
为了进一步说明该示例,数据库表“tableA”可以驻留在第一SQL数据库中并且数据库表“tableB”可以驻留在第二SQL数据库中。服务器4接收“tableA”和“tableB”并将它们存储在主存储系统或服务器4的高速缓存中。在上面提到的示例中描述的解码、消除错误和定义通用格式之后,服务器4使用以下SQL语句继续处理:
CREATE VIEW viewA(data1A,data2A)AS
SELECT data1A,data2A FROM tableA;
CREATE VIEW viewB(data1B,data2B)AS
SELECT data1B,data2B FROM tableB;
CREATE VIEW tableAB AS
SELECT data1C,data2C,data2A,data3C,data2B
from tableC,viewA,viewB
where tableC.data1C=viewA.data1A
and tableC.data2C=viewB.data1B
最后,可能在诸如压缩之类的某种后处理之后,存储在视图“tableAB”中的数据被发送到已请求该数据的第一客户端1A。
稍后,第一客户端1A从第二客户端1(其进一步表示为客户端1B,参见以下的图2)接收对视图“tableAB”的请求,并将“tableAB”发送到第二客户端1B。在稍后的时间,第二客户端1B还可以自己接收来自第三客户端1(其进一步表示为客户端1C,参见图9)的进一步请求,并将视图“tableAB”发送到第三客户端1C。这个处理的进一步级联通过网络分发视图“tableAB”。
当视图“tableAB”通过网络被分发时,原始存储在数据库表“tableA”和/或“tableB”中的底层数据被新的底层数据替换,即,视图“tableAB”底层的数据被更新。第一客户端1A的相同SQL查询现在将产生不同的视图“tableAB_UPDATED”,该视图建立在更新后的/不同的数据之上。因此,视图“tableAB”已经变得过时了。
但是,在客户端1A没有重新发送上面提到的SQL查询的情况下,其它客户端将不会接收建立在更新后的有效数据之上的视图“tableAB_UPDATED”。代替地,具有无效数据的视图“tableAB”继续被分发到网络的其它客户端。
此外,视图底层的数据的更新可能会引入数据不一致。例如,当第一客户端1A确实重新发送了上面提到的SQL查询并随后接收到视图“tableAB_UPDATED”时,第一客户端1A保持该视图的更新后的版本。因此,从其它客户端到第一客户端1A的对视图“tableAB”的任何请求现在都将使用通过网络传播的“tableAB_UPDATED”进行响应。然而,诸如第二客户端1B和第三客户端1C之类的其它客户端仍然维护旧的、过时版本的视图“tableAB”并且因此将响应于请求而继续分发这个过时的版本。因此,这导致建立在有效数据之上的更新后的视图“tableAB_UPDATED”以及建立在无效数据之上的过时视图“tableAB”的并行分发。例如,如果客户端形成分布式数据库,那么这个数据库中可能出现相同数据的不一致版本。
因此,目标是提供确保以高效方式向驻留在网络(诸如对等网络)或分布式数据库中并从另一个客户端请求数据的客户端提供有效数据的机制。在提高分布式环境中的数据一致性的同时,避免将额外的负荷加到服务器上也是一个目标。
一般而言,通过将有效性信息与由客户端保持的数据相关联并使得发出数据请求的客户端能够确定从其它客户端请求并由其它客户端保持的数据是否可能仍然有效来应对这些目标。更具体而言,与数据相关联的有效性指示被提供给发出数据请求的客户端。作为示例,有效性指示可以包括计算出的或可计算的有效性概率值(下面进一步详述)。然后响应于确定与所请求的数据相关联的有效性概率值低于给定的阈值,发出请求的客户端认为所请求的数据是无效的。作为示例,有效性概率值的计算可以包括基于生成日期和当前时间计算所请求的数据的当前年龄。
图2中呈现了根据一些实施例的通用机制的消息序列图。第一客户端1A向第二客户端1B发送对数据的第一请求10(例如,如上文介绍的视图“tableAB”)并且从第二客户端1B接收第一响应11作为对第一请求10的响应。第一响应11包括表示第一客户端1A从第二客户端1B请求的数据无效的概率的有效性指示。随后,第一客户端1A然后基于第一响应11中包括的有效性指示来确定12由第一请求10请求并且从第二客户端1B可用的数据的有效性概率。如果确定12得出由第一请求11请求并且从第二客户端1B可用的数据可能无效,那么第一客户端1A向服务器4发送第二请求13A以从服务器4获得数据,因为假定服务器4保持所请求数据的当前有效版本。响应于第二请求13A,第一客户端1A在第二响应14A中从服务器4接收数据。
参考上面的具体示例,第二客户端1B可以保持过时版本的视图“tableAB”。基于第一响应11中包括的有效性指示,第一客户端1A计算出视图“tableAB”不再有效的高可能性。第一客户端1A然后借助于第二请求13A转向服务器4并且通过第二响应14A接收当前有效版本的视图“tableAB_UPDATED”。
这超出了对等网络中数据请求的单纯重定向,例如在US 7,509,372 B2中描述的,其中在第二个节点处于过载状况的情况下,从第一对等节点(客户端)向第二对等节点(服务器)的数据请求被重定向到替代对等节点。虽然US 7,509,372 B2教导了负荷管理,但是本机制通过使得客户端能够为所请求的数据提供有效性指示、在发出数据请求的客户端处的有效性概率计算以及在无效概率高(即,高于给定阈值)的情况下参考原始数据源(例如,服务器4)而增加了分布式环境中的数据一致性。
在一些实施例中,第二响应14A还包括表示从服务器4请求和检索到的数据的有效性概率的有效性指示。第一客户端1A存储从服务器4接收的与第二响应14A中包括的有效性指示相关联的数据。从服务器4接收的数据(例如,视图“tableAB_UPDATED”)具有生成日期,根据生成日期可以计算数据的年龄。因此,包括在第二响应14A中的有效性指示可以指示接收到的数据的生成日期。这使得第一客户端1A能够将从服务器4检索到的数据的有效性指示提供给其它发出数据请求的客户端(诸如第三客户端1C,参见图9),以便使得这些其它客户端能够确定所请求的数据的有效性概率。再次参考以上示例,服务器4可以在对第一客户端1A的第二响应14A中包括视图“tableAB_UPDATED”的生成日期。当第三客户端1C向第一客户端1A发送对视图“tableAB_UPDATED”的请求时,第一客户端1A可以首先以视图“tableAB_UPDATED”的生成日期进行响应,以便使得第三客户端1C能够评估有效性概率以便决定是从第一客户端1A检索视图“tableAB_UPDATED”还是从服务器4检索视图“tableAB_UPDATED”的潜在的进一步更新后的版本。
在一些实施例中,有效性指示包括关于从第二客户端1B请求的数据的大小、所请求的数据的生成时间、可选地包括所请求的数据的有效性速率以及进一步可选地包括存储在第二客户端1B处的所请求的数据的版本信息。
数据大小指示对于大的所请求的数据特别有利,大的所请求的数据从第二客户端1B到第一客户端1A的传输可能消耗期间所请求的数据的有效性可能显著降低或停止的时间跨度。因此,在这些实施例中,第一客户端1A考虑所指示的数据大小,以便计算在来自第二客户端1B的所请求的数据完全到达的估计时间的有效性概率。更具体而言,有效性概率确定12包括基于包括在第一响应11中的所请求的数据的大小和到第二客户端1B的连接的给定带宽来估计从第二客户端1B(完全)接收数据的时间。此外,第一客户端1B计算在估计的接收时间的数据的有效性概率。例如,第一客户端1A使用创建时间来计算所请求数据在估计的接收时间的年龄。可选地,如有效性指示中包括的有效性速率和/或关于数据版本的信息被包括在估计的接收时间的有效性概率的计算中。如上面已经提到的,将有效性概率与(例如,存储在第一客户端1A处的)给定的阈值进行比较。
与检索(可能大的)数据本身并且然后才确定检索到的数据可能已过时相比,这种预先确定12可能花费短得多的时间。如果第一客户端1A基于计算的结果确定12从第二客户端1B请求的数据在估计的接收时间可能无效,那么第一客户端1A可以继续将第二请求13A发送到服务器4并从服务器4获得数据。
在一些实施例中,第二请求13A包括与第一请求相同的数据,但还将包括关于从第二客户端1B请求的数据(例如,视图“tableAB”)的有效性的信息。在一些实施例中,第二请求13A包括如由第一客户端1A计算的从第二客户端1B请求的数据(例如,视图“tableAB”)的有效性概率。在一些实施例中,存储在第二客户端1B上的数据的版本(例如,视图“tableAB”)被包括在第二请求13A中。在图2中未示出的一些实施例中,服务器4使用这个有效性概率和/或关于版本的信息来检查服务器4是否在其自身处存储了从第二客户端1B请求的数据的相同版本,例如在其自身处存储了视图“tableAB”还是视图“tableAB”的更新后的版本(在所引用的示例中,是视图“tableAB_UPDATED”)。如果服务器4也存储了从第二客户端1B请求的数据的相同版本(视图“tableAB”),那么在一些实施例中,服务器4可以在对第一客户端1A的第二响应14A中仅包括如下信息:即,没有从第二客户端1B请求的数据的更新后的版本以及因此没有更有效的版本是可用的,并且推荐第一客户端1A从第二客户端1B请求数据(例如,视图“tableAB”)。这种方法导致仅创建短的第三响应16,因此减轻了服务器4的额外工作负荷。
图3可视化了作为针对相同大小的数据的以GB(千兆字节)为单位的所传输的数据大小的函数的以2000秒的步长的不同的接收时间。两个客户端之间(例如,第一客户端1A和第二客户端1B之间)的连接在其部署时所拥有的带宽越大,第一客户端1A就越早接收到所请求的数据(例如,视图“tableAB”)。作为示例,如果假设由第一客户端1A请求的视图“tableAB”的大小为1GB,那么0.5MByte/s(兆字节每秒)的带宽使第一客户端1A能够在2000秒(或大约33分钟,参见图3中的曲线D)内接收到视图“tableAB”。更高的带宽(例如,1MB/s)将使第一客户端1A能够在1000秒(或大约17分钟,参见图3中的曲线E)内接收到视图“tableAB”,因此导致视图“tableAB”在估计的接收时间的更高的有效性预测概率。相反,较低的带宽(诸如0.3MB/s(曲线C)、0.25MB/s(曲线B)和0.2MB/s(曲线A))导致接收时间较晚,因此导致视图“tableAB”在估计的接收时间的更低的有效性预测概率。
由第一客户端1A用来确定所请求的数据的估计接收时间的带宽信息可以包括在第一响应11中,可以通过第一客户端1A的(在第一请求10之前、在等待第一响应11时和/或在第一响应11之后进行的)连接测量获得,或者可以使用默认带宽值。
图4和图5示出了第一响应11和第二响应14A的数据格式示例。响应11、14A可以包括报头部分20和数据部分21。作为上面提到的有效性指示的一部分,报头部分20可以附加地包括数据的大小、指示数据的创建的时间戳、有效性速率、数据的版本等(图4)。取决于报头的OSI模型协议层,包括在报头部分20中且未在任何一个图中示出的进一步信息可以包括诸如协议信息、发送者和接收者地址等之类的信息。第一响应11还可以包括用第一请求10请求的数据(例如,视图“tableAB”)。在第一请求10中请求的数据可以包括在第一响应11的数据块部分21中。在一些实施例中和/或取决于报头20的OSI模型协议层,有效性指示可以被包括在第一响应11的数据部分21中(图5)。例如,有效性指示可以被包括在对等应用协议的应用层(OSI层7)报头中(图4),而从网络层(OSI层3)的角度来看,报头20是互联网协议(IP)报头并且有效性指示位于数据块21中(图5)。
图2的消息序列图表示其中有效性指示被包括在第一响应11中的本发明的一个实施例。然而,在一些实施例中,不一定所有第一响应11都包括有效性指示。在此类实施例中,第一客户端1A确定有效性指示是否包括在第一响应中。在这些实施例中,第二客户端1B可以直接用第一响应11中的所请求的数据进行响应。另外,如果这种有效性指示没有包括在第一响应11中,那么第一客户端1A可以基于进一步的信息来决定是否应当(附加地)从服务器4请求由第一请求10请求的数据。例如,第一响应11中不存在有效性指示可能表示第一响应11中包括的数据很可能有效。因此,第一客户端1A不需要附加地从服务器检索数据。在一些实施例中,作为示例,这个决定基于从第二客户端1B接收的数据的大小。如果数据相对小,那么附加地从服务器检索数据并比较数据的两个版本以便确定哪个是更当前的版本不会对网络造成显著负荷。但是,如果数据相对大,那么可以省去从服务器4附加检索数据并且第一客户端1A继续处理从第二客户端1B接收的数据。
图6示出了当第一响应11中的有效性指示存在或者不存在时第一客户端1A用于接收所请求的数据的方式的流程图。在30中,第一客户端1A向第二客户端1B发送对数据的第一请求10(与图2对应)。在31中,第一客户端1A接收第一响应11。在32中,第一客户端1A检查第一响应11中是否包括有效性指示。当确定包括有效性指示时,动作的流程与以下参考的图2或图8对应。即,第一客户端1A确定12由第一请求11请求并且从第二客户端1B可用的数据是否可能无效。如果确定从第二客户端可用的数据可能无效,那么第一客户端1A在35中向服务器4发送对数据的第二请求13A并最终在39中与第二响应14A一起从服务器4接收所请求的数据。另一方面,如果通过确定操作12,在33中确定从第二客户端(第二客户端1B)可用的数据可能有效,那么第一客户端1A在36中向第二客户端1B发送对数据的第二请求13A,并且进而在第二响应14A中从服务器4接收40所请求的数据。另一方面,如果有效性指示不包括在第一响应11中,如在32中确定的,那么第一客户端1A在34中基于上面提到的另外的信息决定是否在38中从第二客户端1B接收数据(如上面提到并且下面参考图7更详细描述的,数据可以已经被包括在第一响应11中,在这种情况下活动31和38重合;可替代地,第一响应可以仅指示所请求的数据在第二客户端1B处可用,在这种情况下执行专用检索38),和/或在37中从服务器4接收数据。
图7示出了当数据(例如,视图“tableAB”)已经包括在第一响应11中时的场景。在41处,第一客户端1A认识到第一响应11已经包括所请求的数据。当确定操作12在33处得出由第一请求11请求并且从第二客户端1B可用的数据可能有效时,检索处理结束并且第一客户端1A处理数据的接收到的版本。但是,如果第一响应11中包括的数据被确定12为可能无效,那么第一客户端1A在35处通过第二请求13A从服务器4请求数据并根据图2继续操作,以在39中接收例如当前有效视图“tableAB_UPDATED”。在一些实施例中,第一客户端1A不作为整体检索所请求的数据(例如,有效视图“tableAB_UPDATED”),而是仅检索已从第二客户端1B接收到的可能过时的数据与来自服务器4的数据的可能更新后的版本之间的差异。这附加地节省了网络和服务器计算资源负荷。
用于根据一些实施例的机制的消息序列图表由图8示出。在图8的示例中,通过第二客户端1B可用的数据被确定为可能有效。如上面参考图2已经描述的,第一客户端1A首先向第二客户端1B发送对数据(例如,视图“tableAB”)的第一请求10并且从第二客户端1B接收第一响应11,作为对第一请求10的响应。第一响应11包括表示从第二客户端1B请求的数据无效的概率的有效性指示。随后,第一客户端1A然后基于包括在第一响应11中的有效性指示来确定12第一请求所请求的并且从第二客户端可用的数据的有效性概率。如果确定12得出由第一请求11请求并且从第二客户端1B可用的数据可能有效并且如果该数据尚未包括在第一响应11中,那么第一客户端1A作为响应向第二客户端1B发送第二请求13B以从第二客户端1B获得数据(视图“tableAB”)。最后,响应于第二请求13B,第一客户端1A在第二响应14B中接收来自第二客户端1B的数据并存储与包括在第一响应11中的有效性指示相关联的检索到的数据(视图“tableAB”)。
图9呈现了一种场景,其中第一客户端1A已经根据图2从服务器4或者根据图8从第二客户端1B或者如参考图7所提到的从两者预先检索并存储了数据以及相关联的有效性指示。因此,第一客户端1A处于能够将检索到的数据提供给其它客户端1的位置。第一客户端1A从第三客户端1C接收对数据的第三请求15,由此第三客户端1C请求例如视图“tableAB”或视图“tableAB_UPDATED”。第一客户端1A响应于第三请求15而向第三客户端1C发送第三响应16,其中第三响应16包括与所请求的数据相关联的有效性指示。在一些实施例中,第三响应16中包括的有效性指示包括与来自第二客户端1B的第一响应11或来自服务器4的第二响应13A中包括的有效性指示相同的信息,如上所述。第三客户端1C然后能够确定是否从第一客户端1A和/或从服务器4检索数据。
在一些实施例中,第一客户端1A响应于从第三客户端1C接收到第三请求15而基于存储的与数据相关联的有效性指示来评估(在当前时间点或在估计的在第三客户端1C处的数据接收时间)所请求的数据无效的概率。继续上面介绍的具体示例,第一客户端1A评估由第三客户端1C请求的例如视图“tableAB”或例如视图“tableAB_UPDATED”无效的概率。如果确定得出所请求的数据可能有效,那么响应于该结果,第一客户端1A可以将所请求的数据直接包括到对第三客户端1C的第三响应16(例如,视图“tableAB”或视图“tableAB_UPDATED”)中。然而,如果第一客户端1A确定由第三客户端1C请求的数据(在当前时间点或在估计的在第三客户端1C处的数据接收时间)可能无效,那么在一些实施例中,第一客户端1A在第三响应16中包括有效性指示,但不包括所请求的数据本身。
如上面已经提到的,在一些实施例中,有效性指示包括时间戳t0,时间戳t0表示所请求的数据(例如,视图“tableAB”或例如视图“tableAB_UPDATED”)被生成的时间,以及所请求的数据的有效性速率C。例如,基于概率模型,有效性速率C可以近似于随时间的无效概率。所请求的数据(例如,视图“tableAB”或视图“tableAB_UPDATED”)的有效性速率C是对所请求的数据保持有效多长时间或所请求的数据由于底层原始数据的改变而有多快变得无效的度量。例如,给定的所请求的数据的这种有效性速率是从所请求的数据与其先前状态或值的比较以及过去的(重新)计算或(重新)收集的发生和结果中统计得出的。例如,已确定特定的所请求的数据的有效性速率C为每小时10%,这意味着所请求的数据(例如,视图“tableAB”或视图“tableAB_UPDATED”)有效的概率每小时下降10%。在其(重新)收集或(重新)计算时,视图“tableAB”或视图“tableAB_UPDATED”一般是100%有效的。一小时之后,视图“tableAB”或视图“tableAB_UPDATED”以90%的概率有效。在两小时之后,视图“tableAB”或视图“tableAB_UPDATED”的有效性为81%(=90%又降低了10%)。在三小时之后,视图“tableAB”或视图“tableAB_UPDATED”的概率有效性为72.9%,以此类推。
在一些实施例中,由(如上文介绍的)公式1给出的有效性概率值由第一客户端1A计算,其中t表示当前时间或估计的数据接收时间。可以采用有效性速率C来提供所请求的数据在给定时间之后保持有效的概率的估计。这也被称为所请求的数据(例如,视图“tableAB”或视图“tableAB_UPDATED”)有效,或者换句话说,未过时的概率。图10描绘了这种概率有效性随时间下降的两个示例性函数。函数F表示所请求的数据,该数据可能比与函数G相关联的另一个所请求的数据保持地更准确(或更准确地说,随着时间的推移保持更高的有效概率)。例如,由函数F表示的所请求的数据在其上次生成之后35小时仍然以70%的概率有效,而以函数G为特征的另一个所请求的数据在其上次生成之后35小时仅以最多大约50%有效。第一客户端1A将例如视图“tableAB”或视图“tableAB_UPDATED”的有效性概率值与给定阈值进行比较,并且如果有效性概率值低于给定阈值,那么确定12所请求的数据可能无效。
图11是服务器4和/或客户端1A、1B、1C的计算机器的内部组件的图解表示。计算机器100包括指令集,当由计算机器100执行时,指令集使得计算机器100执行本文讨论的任何方法。计算机器100包括经由总线104彼此通信的至少一个处理器101、主存储器106和网络接口设备103。可选地,计算机器100还可以包括静态存储器105和盘驱动单元。可以提供视频显示器、字母数字输入设备和光标控制设备作为用户接口102的示例。网络接口设备103将计算机器100连接到分布式计算系统的其它组件,诸如客户端1A、1B、1C、服务器4或另外的组件(诸如数据库)。
计算机器100还托管高速缓存107。107也可以将接收到的数据库表存储在高速缓存中。本实施例中的高速缓存107可以由存储数据库表的硬件和软件组件组成,使得可以比没有高速缓存的情况更快地处理对数据库表的未来请求。可以存在基于硬件的高速缓存,诸如CPU高速缓存、GPU高速缓存、数字信号处理器和转换旁视缓冲区,也可以存在基于软件的高速缓存,诸如页面高速缓存、web高速缓存(超文本传输协议,HTTP,高速缓存)等。服务器4和客户端1A、1B、1C都可以包括高速缓存107。服务器4开始数据处理,诸如对接收到的数据库表进行解码,通过从数据库表中移除例如冗余数据集或移除具有缺失条目的数据集来消除驻留在数据库表中的错误。此外,数据库表采用通用数据格式,以方便进一步处理。
实施本文描述的任何一个或所有方法的计算机可执行指令的集合(即,计算机程序代码)完全地或至少部分地驻留在机器可读介质(例如,主存储器106)中或机器可读介质上。主存储器106托管用于诸如数据库请求处理108之类的功能实体的计算机程序代码,其包括接收和处理数据库请求的功能以及数据处理功能109。指令还可以作为传播信号经由互联网通过网络接口设备103或经由用户接口103被传输或接收。计算机器内的通信经由总线104执行。计算机器100的基本操作由同样位于主存储器106中的操作系统、至少一个处理器101和/或静态存储器105控制。
一般而言,为了实现实施例而被执行的例程,无论是作为操作系统的一部分还是作为特定应用、组件、程序、对象、模块或指令序列,或者甚至作为其子集,都可以在本文被称为“计算机程序代码”或简称为“程序代码”。程序代码通常包括在不同时间驻留在计算机中的各种存储器和存储设备中的计算机可读指令,并且当被计算机中的一个或多个处理器读取和执行时,使该计算机进行执行实施本发明实施例的各个方面的操作和/或元素所必需的操作。用于执行本发明的实施例的操作的计算机可读程序指令可以是例如汇编语言或者以一种或多种编程语言的任何组合编写的源代码或者目标代码。
Claims (11)
1.一种用于在分布式计算环境中处置数据的方法,所述分布式计算环境包括至少一个服务器和多个客户端,所述多个客户端至少包括第一客户端和第二客户端,所述方法包括,在第一客户端处:
向第二客户端发送对数据的第一请求;
从第二客户端接收第一响应作为对第一请求的响应;
基于包括在第一响应中的有效性指示确定第一请求所请求的并且从第二客户端可用的数据的有效性的概率,所述有效性指示表示从第二客户端请求的数据无效的概率;
响应于确定第一请求所请求的并且从第二客户端可用的数据可能无效,
向服务器发送第二请求以从服务器获得数据;
在对第二请求的第二响应中接收来自服务器的数据。
2.如权利要求1所述的方法,其中第二响应包括表示从服务器请求的数据无效的概率的有效性指示,所述方法还包括:
存储从服务器接收的与第二响应中包括的有效性指示相关联的数据。
3.如权利要求1或权利要求2所述的方法,其中确定第一请求所请求的并且从第二客户端可用的数据的有效性的概率包括:
基于第一响应中包括的所请求的数据的大小以及到第二客户端的连接的给定带宽来估计从第二客户端接收数据的时间;
确定数据在估计的接收时间的有效性的概率。
4.如权利要求2或权利要求3所述的方法,还包括:
响应于确定第一请求所请求的并且从第二客户端可用的数据可能有效,
如果数据尚未包括在第一响应中,那么从第二客户端检索数据;存储与包括在第一响应中的有效性指示相关联的检索到的数据。
5.如权利要求2至4中的任一项所述的方法,还包括,在第一客户端处:
从第三客户端接收对数据的第三请求;
响应于第三请求而向第三客户端发送第三响应,其中第三响应包括与数据相关联的有效性指示。
6.如权利要求5所述的方法,还包括,在第一客户端处:
响应于接收到第三请求,基于所存储的与数据相关联的有效性指示来评估所请求的数据无效的概率,
响应于确定所请求的数据可能仍然有效,在第三响应中包括由第三客户端请求的数据。
7.如权利要求2至6中的任一项所述的方法,其中有效性指示包括时间戳t0,时间戳t0指示生成所请求的数据的时间。
8.如权利要求7所述的方法,其中有效性指示还包括由概率模型建模的所请求的数据的有效性速率C。
10.一种计算机器,所述计算机器充当用于在分布式计算环境中处置数据的第一客户端,所述分布式计算环境包括至少一个服务器和多个客户端,所述多个客户端至少包括第一客户端和第二客户端,所述计算机器被布置为执行如权利要求1至9中的任一项所述的方法。
11.一种计算机程序产品,所述计算机程序产品包括存储在计算机可读介质上的程序代码指令,当在计算机上执行所述程序时执行根据权利要求1至9中的任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR1902193 | 2019-03-04 | ||
FR1902193A FR3093575B1 (fr) | 2019-03-04 | 2019-03-04 | Traitement de données distribuées |
PCT/EP2020/055697 WO2020178340A1 (en) | 2019-03-04 | 2020-03-04 | Distributed data processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113490933A true CN113490933A (zh) | 2021-10-08 |
Family
ID=67587828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080017158.3A Pending CN113490933A (zh) | 2019-03-04 | 2020-03-04 | 分布式数据处理 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11829345B2 (zh) |
EP (1) | EP3935520A1 (zh) |
CN (1) | CN113490933A (zh) |
FR (1) | FR3093575B1 (zh) |
WO (1) | WO2020178340A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3093575B1 (fr) * | 2019-03-04 | 2021-12-03 | Amadeus | Traitement de données distribuées |
FR3104865A1 (fr) * | 2019-12-13 | 2021-06-18 | Orange | Procédé de traitement de requêtes de résolution de nom de domaine. |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578113B2 (en) | 1997-06-02 | 2003-06-10 | At&T Corp. | Method for cache validation for proxy caches |
US7155487B2 (en) * | 2000-11-30 | 2006-12-26 | Intel Corporation | Method, system and article of manufacture for data distribution over a network |
US7580971B1 (en) * | 2001-01-11 | 2009-08-25 | Oracle International Corporation | Method and apparatus for efficient SQL processing in an n-tier architecture |
US7320023B2 (en) | 2001-02-23 | 2008-01-15 | Sun Microsystems, Inc. | Mechanism for caching dynamically generated content |
US7509372B2 (en) | 2001-09-13 | 2009-03-24 | International Business Machines Corporation | Method and system for redirecting data requests in peer-to-peer data networks |
US7490237B1 (en) * | 2003-06-27 | 2009-02-10 | Microsoft Corporation | Systems and methods for caching in authentication systems |
US8145845B2 (en) | 2006-11-29 | 2012-03-27 | Red Hat, Inc. | Limited life virtual attribute values |
US8219752B1 (en) * | 2008-03-31 | 2012-07-10 | Amazon Technologies, Inc. | System for caching data |
CN104471573B (zh) * | 2012-08-14 | 2017-07-18 | 艾玛迪斯简易股份公司 | 更新高速缓存的数据库查询结果 |
US9774661B1 (en) * | 2013-04-03 | 2017-09-26 | Amdocs Software Systems Limited | System, method, and computer program for processing interdependent transactions between a requesting system and a target system |
US11196569B2 (en) * | 2018-09-12 | 2021-12-07 | Bitclave Pte. Ltd. | Systems and methods for accuracy and attestation of validity of data shared in a secure distributed environment |
US20220021521A1 (en) * | 2018-12-06 | 2022-01-20 | Gk8 Ltd | Secure consensus over a limited connection |
FR3093575B1 (fr) * | 2019-03-04 | 2021-12-03 | Amadeus | Traitement de données distribuées |
US11468044B2 (en) * | 2019-11-25 | 2022-10-11 | Visa International Service Association | Optimizations for verification of interactions system and method using probability density functions |
US11514079B1 (en) * | 2019-11-27 | 2022-11-29 | Amazon Technologies, Inc. | Peer-based access to distributed database |
US20230180214A1 (en) * | 2021-12-03 | 2023-06-08 | 6Sense Insights, Inc. | Mapping Entities to Accounts for De-Anonymization of Online Activity |
-
2019
- 2019-03-04 FR FR1902193A patent/FR3093575B1/fr active Active
-
2020
- 2020-03-04 WO PCT/EP2020/055697 patent/WO2020178340A1/en unknown
- 2020-03-04 CN CN202080017158.3A patent/CN113490933A/zh active Pending
- 2020-03-04 US US17/430,871 patent/US11829345B2/en active Active
- 2020-03-04 EP EP20707447.7A patent/EP3935520A1/en active Pending
-
2023
- 2023-10-03 US US18/376,134 patent/US20240028583A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
FR3093575B1 (fr) | 2021-12-03 |
US20220035790A1 (en) | 2022-02-03 |
US20240028583A1 (en) | 2024-01-25 |
WO2020178340A1 (en) | 2020-09-10 |
EP3935520A1 (en) | 2022-01-12 |
FR3093575A1 (fr) | 2020-09-11 |
US11829345B2 (en) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220321927A1 (en) | Providing access to managed content | |
US10983868B2 (en) | Epoch based snapshot summary | |
US7840618B2 (en) | Wide area networked file system | |
US8065275B2 (en) | Systems and methods for cache optimization | |
US7647417B1 (en) | Object cacheability with ICAP | |
US8639742B2 (en) | Refreshing cached documents and storing differential document content | |
US6292880B1 (en) | Alias-free content-indexed object cache | |
US6289358B1 (en) | Delivering alternate versions of objects from an object cache | |
US6209003B1 (en) | Garbage collection in an object cache | |
EP2545458B1 (en) | Method and memory cache data center | |
US8868707B2 (en) | Adaptive write-back and write-through caching for off-line data | |
US20240028583A1 (en) | Distributed data processing | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
US9928178B1 (en) | Memory-efficient management of computer network resources | |
Gessert et al. | Quaestor: Query web caching for database-as-a-service providers | |
US9928174B1 (en) | Consistent caching | |
US9317432B2 (en) | Methods and systems for consistently replicating data | |
US10402373B1 (en) | Filesystem redirection | |
US6981098B2 (en) | Methods and apparatus for coordinating a plurality of updates to a cache | |
CN117539915B (zh) | 一种数据处理方法及相关装置 | |
US20240214449A1 (en) | Ensuring Coherency Across Responses When Handling A Series Of Client Requests | |
US11144504B1 (en) | Eliminating redundant file system operations | |
US11294862B1 (en) | Compounding file system metadata operations via buffering | |
Chang et al. | Web-based energy-efficient cache invalidation in wireless mobile environment | |
Deora et al. | Architecture of Cloud Server with Cache on Server |
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 |