Redian新闻
>
service crash后,怎么解决database和cache数据不一致?
avatar
service crash后,怎么解决database和cache数据不一致?# JobHunting - 待字闺中
u*p
1
看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
大牛给给说说这种问题怎么处理比较好?
avatar
x*u
2
logs
avatar
u*p
3
你意思对比crash前的log,那然后呢?
avatar
c*w
4
她的意思是通过commit log做log replay
avatar
j*r
5
这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
一遍,这中间不保证一致。

【在 u****p 的大作中提到】
: 看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
: 大牛给给说说这种问题怎么处理比较好?

avatar
A*l
6
cache会有写入。不少于10个字


: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
新load

: 一遍,这中间不保证一致。



【在 j**********r 的大作中提到】
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
: 一遍,这中间不保证一致。

avatar
u*p
7
为什么重新load之后也不保证一样呢?

load

【在 j**********r 的大作中提到】
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
: 一遍,这中间不保证一致。

avatar
u*p
8
能具体说说吗? 谢谢啊

【在 A********l 的大作中提到】
: cache会有写入。不少于10个字
:
:
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
: 新load
:
: 一遍,这中间不保证一致。
:

avatar
g*e
10
你这个问题太general了
用什么database, 用什么cache。解决什么问题,避免什么情况。
你这些都不说,别人怎么说。
avatar
n*r
11
只能以数据库为准再load一遍吧?谁知道哪儿crash了。
只要保证crash后用户知道crash了,他刚才的操作可能无效就OK了吧
avatar
p*8
12
只要你系统设计没问题,很简单,把cache里的数据删掉,如果performance有问题,写
个script warm up一下就好

【在 u****p 的大作中提到】
: 看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
: 大牛给给说说这种问题怎么处理比较好?

avatar
w*z
14
那是 cache 实现的问题,没有 完成persist ,就不应该 ack success.

【在 A********l 的大作中提到】
: cache会有写入。不少于10个字
:
:
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
: 新load
:
: 一遍,这中间不保证一致。
:

avatar
u*p
15
看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
大牛给给说说这种问题怎么处理比较好?
avatar
x*u
16
logs
avatar
u*p
17
你意思对比crash前的log,那然后呢?
avatar
c*w
18
她的意思是通过commit log做log replay
avatar
j*r
19
这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
一遍,这中间不保证一致。

【在 u****p 的大作中提到】
: 看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
: 大牛给给说说这种问题怎么处理比较好?

avatar
A*l
20
cache会有写入。不少于10个字


: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
新load

: 一遍,这中间不保证一致。



【在 j**********r 的大作中提到】
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
: 一遍,这中间不保证一致。

avatar
u*p
21
为什么重新load之后也不保证一样呢?

load

【在 j**********r 的大作中提到】
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重新load
: 一遍,这中间不保证一致。

avatar
u*p
22
能具体说说吗? 谢谢啊

【在 A********l 的大作中提到】
: cache会有写入。不少于10个字
:
:
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
: 新load
:
: 一遍,这中间不保证一致。
:

avatar
g*e
24
你这个问题太general了
用什么database, 用什么cache。解决什么问题,避免什么情况。
你这些都不说,别人怎么说。
avatar
n*r
25
只能以数据库为准再load一遍吧?谁知道哪儿crash了。
只要保证crash后用户知道crash了,他刚才的操作可能无效就OK了吧
avatar
p*8
26
只要你系统设计没问题,很简单,把cache里的数据删掉,如果performance有问题,写
个script warm up一下就好

【在 u****p 的大作中提到】
: 看到个面经问在service的某步crash后,怎么解决数据库和cache的数据不一致?哪个
: 大牛给给说说这种问题怎么处理比较好?

avatar
w*z
28
那是 cache 实现的问题,没有 完成persist ,就不应该 ack success.

【在 A********l 的大作中提到】
: cache会有写入。不少于10个字
:
:
: 这有什么好想的,invalidate cache就行了。如果怕撑不住,不invalidate,重
: 新load
:
: 一遍,这中间不保证一致。
:

avatar
u*p
29
我也是面经上看来的问题。
那如果是mysql 该怎么处理?
如果是cassandra该怎么处理?
比如很多人下单付款,到一半的时候crash了,这种情况怎么处理?(不知道是不是问
这种)

【在 g*********e 的大作中提到】
: 你这个问题太general了
: 用什么database, 用什么cache。解决什么问题,避免什么情况。
: 你这些都不说,别人怎么说。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。