数据库的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
分布式数数据库独立存储采用独点空间的策略机制。
独站空间是数据空间的一种,可以通过数据空间中的一个属性来描述,通常这个空间会在磁盘上有独占的存储目录,与其他空间是物理隔离的,独占空间包含多个shard,所有的shard属于同一个数据空间,属于同一张表。用于满足特定的业务应用场景。
原理
分布式数据库与其他关系型数据库一样,有具体的存储结构、数据和元数据的,作为分布式数据库系统,首先要决定数据的存储模型,即数据是以何种形式保存下来。一个表对应一个表空间,一个表空间里可以有多个shard,在表创建时指定好表的空间及目录结构。即单独占用了一个磁盘目录。其它的表不能再用这个磁盘目录。1个磁盘存储指的就是一个磁盘目录,也就是一个存储的实例。用分布式数据库独立存储机制,实现独立存储中基本的文件读写操作,将数据写入独立存储文件中,并读取出来。
实现方式
元数据存储(”/”分隔符,实际不存在) 如下DB名称”DB1”,TABLE名称为” TABLE1”。 * KV元数据与Range之间的映射,如: 存储空间映射Range信息。 * 数据存储方式(如果“索引ID”设计时本身就定义了一个“特殊的前缀”,那就不再需要索引前缀),如:KEY为 存储记录数据。
优势与劣势
优势
•每个表都有自已独立的表空间,每个表的数据和索引都会存在自已的表空间中,可以实现单表在不同的数据库中移动。
•空间可以回收(除drop table操作处,表空不能自已回收)
•Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过,回缩不用的空间。
•对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。
劣势
•单表增加过大,当单表占用空间过大时,存储空间不足,只能从操作系统层面思考解决方法;
•不适用于小表的存储。
面临挑战
•独占表空间转换为非独占表空间,涉及技术细节较多,实现技术比较复杂。
•对数据表的规划及未来的增长量需要相当明确。
•涉及数据均匀分布算法实现比较复杂。
以上为独立存储的优势与劣势,「分布式技术专题」是国产数据库hubble团队精心整编,专题会持续更新,欢迎大家保持关注。