为什么h2o.ai使用自我实现DKV而不是像kv商店一样的redis?

时间:2018-03-09 08:28:07

标签: h2o

h2o DKV剂量没有持续到磁盘支持,如果群集崩溃它无法恢复帧和数据,那么为什么他们使用它,是否有可能将DKV替换为redis?

2 个答案:

答案 0 :(得分:1)

问题的第一部分是非常主观的(当Redis非常年轻时我们开始研究H2O,我们使用高度优化的DKV来满足我们的需求,Redis很可能会更慢,让JVM中的所有东西都更容易和更快而不是使用无法在JVM中轻松嵌入的外部数据库,因为它是用C等编写的。)。

至于第二部分 - 由于某些原因(其中一些指出),你不能使用其他数据存储。

所有这一切,H2O帧可以保存到磁盘,但是在R中exportFile,在Python中export_file,还有一些方法可以用Java来实现/ Scala),作为CSV文件,可以在崩溃后导入。同样,模型可以随时保存和加载。您可以使用这些模型作为检查点继续训练或重新启动新数据。

答案 1 :(得分:0)

H2O被设计为内存系统。它的设计考虑了速度和扩展到大数据,而不是高可用性。

对磁盘的持久性将与这些主要设计目标进行权衡(或者至少是代码复杂性的增加,这会降低可靠性和/或增加开发人员的成本)。

我很想看到一些高可用性功能,并且有很多想法。例如。每隔10分钟,所有线程都会暂停,每台机器将其整个内存转储到磁盘,然后可以非常快速地恢复。每10分钟15秒就不会成为一次重大减速。

但我认为最重要的是H2O不会经常崩溃,因此永远不会成为足够高的优先级。因为它是开源的,也许有一天会有人痒痒地来抓它。