问题:有了像DAOS 或者Ceph这种分布式对象存储系统,还需要数据库吗?像DAOS中也有数据的结构定义,key-value操作,多副本一致性,数据恢复rebuild操作,对数据操作的鉴权管理
数据库要实现的功能:
1、数据定义。DBMS提供数据定义语言DDL,供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。
2、数据操作。DBMS提供数据操作语言DML,供用户实现对数据的追加、删除、更新、查询等操作。
3、数据库的运行管理。数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复。
4、数据组织,存储与管理。DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储级上组织这些数据。
5、数据库的保护。数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。
6、数据库的维护。这一部分包括数据库的数据载入、转换、转储、数据库的重组合重构以及性能监控等功能。
分布式对象存储系统介绍:拿DAOS系统来说,DAOS是面向高性能分布式异步文件存储,通过数据在磁盘中的逻辑组织形式为container-oid-dkey-akey-record(b+树EV树),数据落盘的时候使用SPDK中的blobstore,和PMDK中的pmemobj实现落盘操作,上层对外提供的服务如pool service,container service,object service,服务采用raft算法以及改进的二阶段提交策略保证分布式分布式一致性;客户端通过编写上层中间件通过libdfs底层接口进行key-value操作或者key-array操作;Rockdb数据库存储引擎是在SPDK中blobstore上构建blobfs文件系统的;