为啥要PATCH?
Mnesia最大的缺陷是存储限制。这不是数据库系统的错误,因为Mnesia能够控制虚拟数据的大小。主要的问题在于过时的Erlang DETS存储引擎,速度慢并且使用的32位偏移量(限制单文件大小为2GB)。
思路?
超乎想象的 mnesia 补丁包 mnesiaex 。这个东西解除了加在 mnesia 数据库系统上所有的限制(虽说上面已经提到,实际上 mnesia 代码本身没有什么真正的限制)——你现在可以用 SleepyCat/BerkeleyDB/MySQL/Amazon S3/Tokyo Cabinet/… 甚至是你自己喜欢的某种东西来当作 mnesia 的后端,就像 ets/dets 一样。而访问的接口仍保持不变——继续沿用 mnesia 的接口,一行也不用改。 DIY 这种扩展也变得相当容易,写一个 behavior 就成了。
实现过程
1:与从源代码编译的方式安装Erlang
tar xvf otp_src_R12B-5.tar.gz
cd otp_src_R12B-5
./configure & make & make install
注意:我的系统是RHEL 5.3,默认安装目录为/usr/local/erlang
2:安装