分布式存储里的文件存储和数据库存储有什么区别?
钱安晏
2022-04-21 17:42:33
共 1 个回答
张晓雪
2022-04-24 11:03:49
首先你要区分使用方式不同,对于文件存储,往往调用的接口就是打开文件,读写文件和关闭文件。对于数据库,操作的对象就是表格,通过SQL语句实现表格的定义、插入删除和属性修改,所以数据库往往更加的灵活,也更加的复杂。分布式存储中,常见的接口一般就是文件、对象和表格等。这是从使用者角度来说。
我们再说一下存储的实现,我们可以通过文件存储的方式实现数据库存储的部分功能。为什么这么说呢,因为数据库存储不仅要存储数据,还要涉及到索引和事务的ACID。对于数据库中的数据,可以通过文件的形式保存,同时还要实现索引更新、事务保证等等,所以数据库存储更加的复杂。
那我们最后说说分布式的区别,分布式系统中,一份文件可能对应一份物理文件,一份文件也可能被切割打散到不同的机器上,这是不同的实现方式,可以参考下GFS和Haystack的设计。对于文件存储,最主要的是一致性问题处理,有强一致同步方法,亚马逊提出的nwr模型,还有paxos/raft等多数派协议。这些方法也可以用来存储数据库的数据,但是分布式数据库还要在这之上实现分布式事务等复杂技术,可以看一下目前流行的数据库论文spanner和Aurora。
阅读原文