Delta debug MS
-
a triangular tract of sediment deposited at the mouth of a river, typically where it diverges into several outlets.
-
the fourth letter of the Greek alphabet ( Δ , δ ), transliterated as ‘d.’.
-
variation of a variable or function.
-
一组影响系统执行dimensions,高效找出导致错误的deltas。这里delta包括(deployment、enviromental、configurations)
-
四个dimensions:node、instance、configuration、sequence
-
node:分布式的服务器,未知性较多
-
instance:微服务的instance一般都是有状态的,如果没有处理好,相同的instance如果不是同样的状态就会出错。
-
configuration:docker的配置,k8s的配置,是挺恶心的,万一内存不够,就爆了
-
sequence:异步的invocation导致错误
-
微服务settings作为circumstances,就可以用delta bebugging了,db是一种简化和隔离错误案例的方法
-
Istio是微服务service mesh的?Istio可以部署在k8s里的
-
delta debugging的作用是找到min的deltas导致错误
-
controller:delta debugging的位置,是文章核心嗷
-
scheduler:根据容器状态选择test case去执行。queue,有可用资源就去跑测试
-
executor:根据所给的circumstances在docker上跑测试用例,返回测试结果
-
circumstance:4个dimension的组合
-
delta:两个cir之间的差异
-
delta db目的:通过最简单cir抽取导致错误的最小delta set
-
min setting:一个node,一个instance,默认conf(full memory),正确的seq
-
general setting:一个可能引起错误的cir
-
表示方法:0表示min setting,1表示general setting
-
seq的表示方法稍微复杂一点,0表示顺序执行,1表示逆序执行
-
seq能全覆盖,node、instance numbers可以放低一点要求
-
If the given failing test case still fails with the simplest circumstance, the failure can be thought to be caused by internal faults of related microservices
-
我们的目标是找到应用在min cir上导致ftc产生ftr的同时ptc产生ptr的deltas
-
atomic delta是什么意思??
-
we partition the set of deltas X into n equal-sized partitions
-
13vm each 8-core cpu 24gb memory
-
36-63 deltas -》 1-2deltas
-
就是能分出到底是哪种问题
-
但是有个很重要的点就是要开发再确认bug