首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

最后写入胜利(丢弃并发写入

假定每个写请求都最终同步到所有副本,只要确定哪个写入是最新,则副本就能最终收敛到相同值。 但如何定义最新?...图-12中,当客户端向数据库节点发送写入请求时,客户端都不知道另一个客户端,因此不清楚哪个先发生。争辩哪个先发生其实没有大意义, 我们说支持写入并发,也就意味着它们的顺序不确定。...即使无法确定写请求的“自然顺序”,我们也能强制任意排序。如为每个写请求附加一个时间戳,然后选择最新即最大的时间戳,丢弃较早时间戳的写入。...这就是最后写入胜利(LWW, last write wins),Cassandra唯一支持的冲突解决方法。...LWW实现了最终收敛目标,但以牺牲持久性为代价:若同一K有多个并发写,即使它们都给客户端通知成功(因为完成了写入w个副本),但最好也只有一个写入能存活,其他的将被静默丢弃。

2.3K30

MySQL表添加了一个字段,竟然导致数据无法写入,反思

他说如果不添加索引字段room,业务就写入不了数据了。 这个大大超出了我的预期,大家可以仔细看下这条SQL,按照我刚刚描述的场景,是否能够理解。...经过沟通,理解了这个业务场景,总算是明白了为什么业务写入不了数据。...netid),连接的就近站点(room)是北京,在线时长(item)为15分钟(value) 在这种情况下,因为字段(day,kind,netid,item)是唯一性索引,那么第2条记录对应的数据是无法写入的...索引确实需要重建,根据业务反馈的查询场景,其实添加非唯一性索引(`day`,`netid`,`room`)已经足够覆盖目前的查询,而更有意义的是:数据写入不会因为索引设计不合理/新增业务字段而导致数据无法写入...在这个过程中,我是本着帮他的态度去理解这个问题的,在沟通中不断的调整自己的问题分析方向,最终发现这个问题,解决这个问题的过程其实是无法预料到这么多潜在的问题的,而逐步理解了业务,也就掌握了主动性。

1.6K30
领券