CN109560985A - 一种因果语义测试方法 - Google Patents
一种因果语义测试方法 Download PDFInfo
- Publication number
- CN109560985A CN109560985A CN201811375328.6A CN201811375328A CN109560985A CN 109560985 A CN109560985 A CN 109560985A CN 201811375328 A CN201811375328 A CN 201811375328A CN 109560985 A CN109560985 A CN 109560985A
- Authority
- CN
- China
- Prior art keywords
- test
- read
- write operation
- write
- read operation
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种因果语义测试的方法,本发明测试框架包括客户端,Web服务器和数据存储三部分,其中,客户端运行真实的测试用例来模拟浏览器中的终端用户行为,它通过广域网向Web服务器发送请求以调用不同的基准测试服务,然后根据响应自动检测是否违背因果关系。Web服务器基于测试用例部署相应的RESTful基准测试服务,并通过局域网将用户请求传递给后端数据存储系统。通常数据存储系统是分布式数据库,在不失一般性的情况下,本发明假设每个数据项有三个副本,本发明评估和测试终端用户在不同分布式数据库下所感知的一致性水平。
Description
技术领域
本发明涉及智能测试领域,尤其涉及一种因果语义测试的方法。
背景技术
当前云计算和大数据系统中广泛使用数据备份以提高可扩展性和可用性。根据CAP定理的一致性与延迟和一致性与可用性之间的权衡,软件设计者提出了许多弱一致性模型,如最终一致性和因果一致性。从理论上可以对复制协议进行建模,并使用不同的指标定量分析一致性级别。例如,PBS提出了t-visibility和k-staleness来衡量副本系统的读取陈旧性,RSM-d提出了一个概率模型来量化写冲突。现有技术绕过了副本协议,并通过独立的检查器监视数据副本的一致性。采用定量模型的研究方法通常取决于特定类型的副本协议,开发人员通常在实际分布式系统中提供许多可配置参数等不同设计选择,这使得构建一个真实副本协议的精确模型变得十分困难。现有技术通过直接访问副本数据的工程化方法来检测可能会返回不可靠的结果,导致无论检查器看到同一个数据项的副本值是否相同,都无法确保终端用户通过副本协议读取的值是一致的。
发明内容
为了解决上述问题,本发明提出一种因果语义测试的方法,本发明测试框架包括客户端,Web服务器和数据存储三部分,其中,客户端运行真实的测试用例来模拟浏览器中的终端用户行为,它通过广域网向Web服务器发送请求以调用不同的基准测试服务,然后根据响应自动检测是否违背因果关系。Web服务器基于测试用例部署相应的RESTful基准测试服务,并通过局域网将用户请求传递给后端数据存储系统。通常数据存储系统是分布式数据库,在不失一般性的情况下,本发明假设每个数据项有三个副本。本发明评估和测试终端用户在不同分布式数据库下所感知的一致性水平。
附图说明
图1为本发明的整体流程图;
图2为本发明因果关系违反检测图;
图3为本发明的测试步骤流程图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在分布式系统中已经提出了许多一致性模型,例如最终一致性,因果一致性和顺序一致性,其中因果一致性描述了人类用户的感知期望并且可以分解为四种会话语义:读所写RWY(Read Your Writes),读后写WFR(Write Follow Reads),单调读MR(MonotonicReads),单调写MW(Monotonic Writes)。
a)RYW:RYW解决一个用户更新数据项然后立即读取,但发现更新丢失的问题。它确保在该会话中的后续读操作可以观察到会话中执行的任何写操作的结果。
b)WFR:WFR意味着写操作的值取决于用户已读取的内容,它确保了一个写操作应跟随在全局顺序中的前序相关写操作之后。
c)MR:MR表示在一次会话中用户不会读取到陈旧值。
d)MW:MW保证一个写操作实际传播到所有副本的时间应当晚于在逻辑上先于它的那些写操作。
这种四种因果关系语义不依赖于副本协议的特定实现,并且足够强大以测量不同的一致性级别。基于Lamport的happen-before关系,读写操作中的四种因果关系已经得到很好的研究,但是有时它们可能很难被捕获到,以一个WFR案例举例,一个用户U在一条推文T下发表了一条评论C,评论C的出现可能会受到U最近读过的推文或很久以前发生的一些操作的影响,由于存储等条件限制,用户很难探索所有可能的依赖操作,但我们可以假设它主要的直接的依赖是推文T。这种因果关系被称为显式因果关系。在本发明中,我们关注显式因果关系,并将因果关系语义作为一个统一的测试指标来衡量不同副本系统的一致性水平。
如图1所示为一种本发明测试框架,所述框架包括客户端,Web服务器和数据存储三部分。
其中,客户端运行真实的测试用例来模拟浏览器中的终端用户行为,它通过广域网向Web服务器发送请求以调用不同的基准测试服务,然后根据响应自动检测是否违背因果关系。Web服务器基于测试用例部署相应的RESTful基准测试服务,并通过局域网将用户请求传递给后端数据存储系统。通常数据存储系统是分布式数据库,在不失一般性的情况下,本发明假设每个数据项有三个副本。
为了捕捉真实的因果关系语义,本发明从三个热门网站收集和构建12个测试用例:社交媒体网站(Twitter),照片分享网站(Flickr)和在线购物网站(Amazon),从中根据RYW,WFR,MR和MW语义各提取4个测试用例。
对于每个网站,浏览其主页面并模拟常见的用户行为,例如输入文本和点击按钮。本发明从Twitter收集37个html页面,从Flickr收集42个html页面,从Amazon收集14个html页面,然后手动分析这些html页面以查找因果关系语义的代表性场景。通过观察发现,因果关系通常与html页面中的关键事件有关,例如,一个用户U在Twitter上的一条推文T中发表了一条评论C,评论html页面中,存在着一个重复出现多次的字符串,关联着推文T和评论C。本发明在所有收集的Twitter的html页面中共检测到1915个不同的有重复出现情况的字符串,并进行后续检查,通过这种方式可以减轻人工分析的负担。例如,来自Twitter的4个测试用例如下:
a)RYW:在Twitter中,当评论一条推文(写操作)时,用户可以立即读取到自己的评论(读操作)。但是如果没有读到,则认为它违反了RYW语义。
b)WFR:转发依赖于原始推文,如果用户完成转推(写操作)但无法读取原始推文(读操作),则将其视为违反WFR。
c)MR:考虑用户U1创建的moment(Twitter的一种服务),用户U2读取其初始值(读操作r0)。然后U1编辑该moment,U2读取它两次(连续两次读取操作r1和r2),如果r2读到一个比r1更陈旧的值,则意味着违反MR语义。
d)MW:用户保存一个moment作为版本N(写操作w0),后续保存版本为N+1(写操作w1),MW语义确保版本N+1将覆盖存在于所有副本中的版本N。否则另一个用户可能会先读到版本N+1,而后再读到版本N。
一实施例如图2所示,在一致性级别不同的数据存储系统上运行测试用例,需要自动检测是否违反了因果关系语义,实线代表消息从客户端传递至Web服务器,虚线表示在数据库中的数据传递。
a)RYW:RYW检查读操作结果是否与写入的值相同。如果读操作与尚未执行该写操作的节点通信,则它将不会获得写操作的值,从而导致违反RYW语义。
b)WFR:WFR假设r0读到的值是由w0写入的,r0之后执行写操作w1,检查r1是否返回w1的值,如果r1可以读到w1而不是w0的值,则会违反WFR语义。
c)MR:MR用w0和r0初始化一个键的值。在写入w1之后,检查两个连续的读取操作r1和r2是否具有相同的值,如果w1由于某些原因延迟到达Node3,r2将读到陈旧数据,从而违反MR语义。
d)MW:MW对于两个连续的写操作w0和w1,检查r2是否返回比r1更陈旧的数据。如果由于网络延迟等原因,w0在w1之后到达Node3,r2将读到w0的值,即比r1读到的值更陈旧,这违反了MW语义。
本发明通过检测出现违反因果语义情况的数量来衡量数据存储系统的一致性级别。
本发明的客户端基于Yahoo!Cloud Serving Benchmark(YCSB)实现,并扩展其专为RESTful服务而设计的REST负载,在该负载中,实现了12个测试用例并设置因果语义检查器来检测违反因果语义的情况。
本发明的Web服务器使用Apache Tomcat来部署RESTful服务来处理收到的请求,这些请求将由在Web服务器中转换为数据库的读/写操作。
本发明可以测试不同的分布式数据库系统,目前在测试框架中已经集成了多个流行的开源分布式数据库,对于每个数据存储系统,除了默认配置外,还考虑了一些高级配置,如设置不同的一致性级别参数、数据库负载均衡参数、持久化设置等。
客户端和Web服务器之间的环境为广域网,本发明使用指数分布来模拟客户端和Web服务器之间的广域网延迟。Web服务器和数据库节点位于一个局域网中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (3)
1.一种因果语义测试方法,所述方法检测出现违反因果语义情况的数量来衡量数据存储系统的一致性级别,所述检测使用的会话语义包括四种语义检查:读所写RWY,读后写WFR,单调读MR,单调写MW;在所述RYW语义检查中,检查读操作结果是否与写入的值相同,如果读操作与尚未执行该写操作的节点通信,则它将不会获得写操作的值,则违反RYW语义;在所述WFR语义检查中,第一次读操作读到第一次写操作写入的值,在第一次读操作中之后执行第二次写操作,检查第二次读操作是否返回第二次写操作的值,如果第二次读操作读到第二次写操作而不是第一次写操作的值,则违反WFR语义;在所述MR语义检查中,用第一次写操作和第一次读操作初始化一个键的值,在第二次写操作之后,检查两个连续的读取操作第二次读操作r1和第三次读操作r2是否具有相同的值,如果第三次读操作r2将读到陈旧数据,则违反MR语义;在所述MW语义检查中,对于两个连续的写操作第一次写操作和第二次写操作,检查第三次读操作是否返回比第二次读操作更陈旧的数据,如果第三次读操作将读到第一次写操作的值,则违反了MW语义;所述写操作均为对所有节点同时发出写指令,所述第一次读操作的节点最近,第二次读操作的节点距离居中,第三次读操作的节点最远。
2.如权利要求1所述的方法,所述RYW确保在会话的后续读操作中可以获取到在回话中任何写操作的结果,解决一个用户更新数据项然后立即读取过程中更新丢失的问题;所述WFR确保写操作跟随在全局顺序中的前序相关的写操作之后;所述MR表示在一次会话中用户不会读取到陈旧值;所述MW保证一个写操作实际传播到所有副本的时间晚于在逻辑上先于它的那些写操作。
3.如权利要求1所述的方法,所述测试方法使用的系统包括客户端,Web服务器和数据存储三部分,客户端运行真实的测试用例模拟浏览器中的终端用户行为,通过广域网向Web服务器发送请求以调用不同的基准测试服务,然后根据响应自动检测是否违背因果关系。Web服务器基于测试用例部署相应的RESTful基准测试服务,并通过局域网将用户请求传递给后端数据存储系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811375328.6A CN109560985A (zh) | 2018-11-19 | 2018-11-19 | 一种因果语义测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811375328.6A CN109560985A (zh) | 2018-11-19 | 2018-11-19 | 一种因果语义测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109560985A true CN109560985A (zh) | 2019-04-02 |
Family
ID=65866563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811375328.6A Pending CN109560985A (zh) | 2018-11-19 | 2018-11-19 | 一种因果语义测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109560985A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030121027A1 (en) * | 2000-06-23 | 2003-06-26 | Hines Kenneth J. | Behavioral abstractions for debugging coordination-centric software designs |
CN104704773A (zh) * | 2012-10-05 | 2015-06-10 | 微软公司 | 云存储环境中基于一致性的服务级协定 |
CN108829497A (zh) * | 2018-05-31 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 事务因果序的校正方法及装置、电子设备 |
-
2018
- 2018-11-19 CN CN201811375328.6A patent/CN109560985A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030121027A1 (en) * | 2000-06-23 | 2003-06-26 | Hines Kenneth J. | Behavioral abstractions for debugging coordination-centric software designs |
CN104704773A (zh) * | 2012-10-05 | 2015-06-10 | 微软公司 | 云存储环境中基于一致性的服务级协定 |
CN108829497A (zh) * | 2018-05-31 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 事务因果序的校正方法及装置、电子设备 |
Non-Patent Citations (4)
Title |
---|
DAVID BERMBACH,ET AL.,: ""A Middleware Guaranteeing Client-Centric Consistency on Top of Eventually Consistent Datastores"", 《2013 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING (IC2E)》 * |
J. BRZEZINSKI,: ""From session causality to causal consistency"", 《12TH EUROMICRO CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-BASED PROCESSING, 2004. PROCEEDINGS》 * |
企鹅号小编,: ""分布式系统一致性分类,你知道几种?"", 《WWW.CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1015442》 * |
曾珊,文杰,: ""分布式系统一致性研究与案例分析"", 《计算机与数字工程》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020530610A (ja) | 仮想ウェブページのプレビュー中におけるデータベースの編集 | |
Clarke | On the (mis) use of statistical methods in hydro-climatological research | |
US20150363504A1 (en) | Dynamically identifying and evaluating component hierarchy for rendering content components on a webpage | |
Cox et al. | A geologic timescale ontology and service | |
JP5848199B2 (ja) | 影響力予測装置、影響力予測方法、及びプログラム | |
Čeke et al. | Early effort estimation in web application development | |
Gao et al. | Causal inference from cross-sectional earth system data with geographical convergent cross mapping | |
Meijers et al. | Using toponym co-occurrences to measure relationships between places: Review, application and evaluation | |
Kyriazis et al. | Policycloud: analytics as a service facilitating efficient data-driven public policy management | |
Wu et al. | Concinnity: A generic platform for big sensor data applications | |
Nelson | Mastering redis | |
Llaves et al. | An event abstraction layer for the integration of geosensor data | |
Li et al. | Poet: Privacy on the edge with bidirectional data transformations | |
Zeini et al. | The impact of measurement time on subgroup detection in online communities | |
US11005912B2 (en) | Coordination of webpage publication | |
Ataei et al. | Application of microservices patterns to big data systems | |
Shadbolt et al. | EGovernment | |
CN109560985A (zh) | 一种因果语义测试方法 | |
Taxidou et al. | Rapid: A system for real-time analysis of information diffusion in twitter | |
Islam | A cloud based platform for big data science | |
Pierce et al. | Using Web 2.0 for scientific applications and scientific communities | |
Haddock et al. | Simulated data for census-scale entity resolution research without privacy restrictions: a large-scale dataset generated by individual-based modeling | |
Sejdiu et al. | A real-time semantic annotation to the sensor stream data for the water quality monitoring | |
Xie et al. | Modeling and verifying HDFS using process algebra | |
Daireaux et al. | Towards the Correct Interpretation of Real-Time Signals on the Well-Site |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190402 |
|
RJ01 | Rejection of invention patent application after publication |