如何保证内存里的数据永不丢失?

2018-05-02 11:02:17 +08:00
 whatisnew

看到有 v 友分享面试经历,我想起来几年面试的时候遇到的一个问题,至今还没有解答:

面试官:如何保证内存里的数据永不丢失,包括断电的时候。

我:数据持久化、分布式,配合硬件上的灾备支持。

面试官:不对

我:那有什么好方法分享一下吗

面试官:我就不跟你多说了,你回去了解一下

我:一脸懵 b 的走了

至今还是没有明白这个问题到底是啥情况,真的有更优雅的解决方案吗。。。

9248 次点击
所在节点    问与答
82 条回复
sampeng
2018-05-02 16:53:39 +08:00
除了硬件容灾,真想不到有什么着了。所以的一切都是建立在物理介质上备份的。压根和内存的本身定义就没有什么关系。不管是断电自动写入还是 log flush 到某个地方防止断电丢失。

难道面试官的 G 点是 mmap ?也不像啊。。。。只能说。很有趣的面试官
recordnow
2018-05-02 17:18:25 +08:00
对面试官使用激将法
脸上略带嘲讽:哦,原来你也不知道。不错喔,你很因脆丝汀。
eurokingbai2
2018-05-02 17:39:09 +08:00
不就是 nvm 么。。
limbo0
2018-05-02 17:58:29 +08:00
这个面试官有点叼, 我去买橘子
chentydev
2018-05-02 18:27:29 +08:00
这题目本身就有问题。
根本不存在“永不丢失”的数据。最极端的情况,宇宙炸了,数据还能不丢失吗?实际能做到的只能是尽可能减小数据丢失的可能性。
从这个角度来看,要么就承认 LZ “数据持久化、分布式,配合硬件上的灾备支持”的答案是合格的,要么就只能承认自己提的问题本身无解了。
sumu
2018-05-02 18:31:17 +08:00
在一个不完美的基础上构建一个,比如 5 个 9,或者 6 个 9 系统,是可以的,但构建一个 100%可靠的?我估计他没学过概率
cabing
2018-05-02 18:32:25 +08:00
哪有绝对的不丢失。。一般的都是磁盘持久化,分布式,多机房备份~~
whatisnew
2018-05-02 18:35:36 +08:00
@chentydev 我当时就想跟面试官说这世界上没有 100%保证的事,但是我看他好像并不想知道。。。
whatisnew
2018-05-02 18:36:57 +08:00
@chentydev 而且还想引用支付宝机房停电的事例,但是从面试官的表情上感觉他好像并不想知道。。。
360045
2018-05-02 18:38:48 +08:00
根据能量守恒定律,这些数据本身就不会消失啊,就算上面说的炸了也不会消失,只是换了另外一种形式存在,手动滑稽
swulling
2018-05-02 19:15:34 +08:00
@7654 那也不能保证永不丢失,机房进水了解下,机房爆炸了解下,机房被雷劈了了解下。
leeg810312
2018-05-02 19:18:17 +08:00
遇到这种装 b 面试官,直接嘲讽怼,反正肯定不会要你了,不要让自己不爽
GjriFeu
2018-05-02 19:19:10 +08:00
persistent memory 了解一下
zj299792458
2018-05-02 19:20:11 +08:00
@7654 在美国?
jinyang656
2018-05-02 19:21:26 +08:00
nvram?
iceheart
2018-05-02 19:42:08 +08:00
他是想问 filemapping 吧?
jetyang
2018-05-02 19:53:06 +08:00
有时候就这样,面试官想要的点候选人总是 get 不到,只能说这个问题设计的不好。启发式的发问最好,有个背景有个一般的方案,候选人在面试官的引导下逐步优化,再考察一下边界情况。题主说的这个题,双方没想到一起就尴尬了,面试官也不好据此判断候选人的能力,只好换题
pkookp8
2018-05-02 19:57:18 +08:00
硬盘读写多了费硬盘费时间
硬盘读少了丢数据

看取舍吧,像 word 这种 1 分钟保存一次也没事
内存又叫易失性存储器,不易失请用 rom
murmur
2018-05-02 20:19:00 +08:00
@7654 什么机房的 ups 能撑 4 个小时
nov11
2018-05-02 20:20:24 +08:00
non-volatile memory?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/451378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX