@
ayanamist不要太较真啊,这里唯一郁闷的只有你一个人,其他人想帮你,你却要传染自己的情绪给别人。
按照你自己的经验,99%正常,这是4sigma 的标准了,一个免费的服务,还不是很核心的产品,做到4sigma 的真的不多。你没有理解我的意思,或者我表达不到位,我其实是想说,作为程序作者,Robust 是要靠你自己来保证的,甚至是服务器本身也不能认为是100%可靠的。
我简单说下我参与的一个分布计算系统的设计,多层次可退化的设计,后层为前一层的逻辑缓存,每层之间定期同步校验。我们在保证数据安全的前提下,扩容变得不是那么容易。因此我们把硬件资源划分为核心区,交换区以及扩展区。新硬件资源加入的时候同步过程需要花费一定时间,前级请求虽然会缓存,但是因为网络交换延迟,以及同步运算时间,这个时间差上造成的De-sync 我们是没有能力保证其绝对正确的。所以目前的解决方案就是直接返回异常,对于客户端程序增加的成本就是异常中断的恢复处理,至于二次请求会不会造成错误,这是程序员要解决的问题。
我这里的异常可以类比到GAE 的DeadlineExceeded 错误,技术上,追踪同步期内的de-sync 是很消耗资源的事情,需要在大量节点之间反复进行验算。相比之下,返回一个代表“服务器不保证上一次请求正确”的信息可能是更高效更具成本的做法。按照我了解的数据来说,大概千分之一的时段上会出现一个unstable 的高峰,平均有0.5% 的通信会返回Unreliable 的结果。
我之前说我不了解,确实是我不了解GAE 开发,但是它的构架我之前是研究过许久的。我搜索了一下,发现普遍反映是DeadlineExceeded 和我了解的Unreliable 解决方案的状况是一样的。
我还是那句话,理解一下吧,GAE 做到现在的样子已经是相当厉害的了,与其在这抱怨你遇到的“不稳定”,不如花时间去找解决方案。