随着应用的增加,数据量日双增长,一般电脑以难以维持时,分布式数据库是一个很好的选择。最近研究了一下分布式数据库的存储与分布式算法,现总结了一下。
分布式数据的存储为确保数据紧密一致,在我的测试中用了聚块分片的方式。也就是把数据文件看成是一随机分的由块够成的,这样以来数据占用空间比固定块的方式要紧密一些,特别是纯索引的情况下,在带数据块(BTree带数据块)的情况下也相当好,4000万20byte键int 值占用900M算来还相当于压缩了一点。
分式算法对分布式数据库很重要,在BTree中数据量相当大时,可对BTree进行分布式处理,分布式BTree树可看成是,很多小树组成的一棵树,每一棵小树对应一个计算单元,要计算时数据入队列计算。在刷数据到文件时,应用MPI的窗口把更改的数据依次刷入文件,这样应快些。小树分离算也很重要,能保持数据库计算的平衡。
(以上分布式算是构想中,未测,但单机多线测试良好)