怎么使用erlang mnesia 数据库

怎么使用erlang mnesia 数据库,第1张

1、MSSQL,不管网络的单机的,都适合。

2、是要装,一般都是把安装脚本写好,跟你的应用程序一起打包装的。

3、ACCESS对生成的安装包比SQL要简单,至于要安全,数据部分可以用MD5算法加密,再写进数据库里。

一、背景介绍:

本文所述PostgreSQL服务端运行在RedHat Linux上,IP为:192.168.230.128

客户端安装在Windows XP上, IP为:192.168.230.1

二、配置方法:

1.修改服务端/opt/postgresql/data/postgresql.conf文件,将:

#listen_address='localhost'

改成

listen_address='*'

2.修改/opt/postgresql/data/gp_hba.conf文件:

在其中增加客户端的ip,如下,注意最后一行:

# TYPE DATABASE USERCIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only

local all alltrust

# IPv4 local connections:

host all all 127.0.0.1/32 trust

# IPv6 local connections:

host all all ::1/128trust

#kevin add

# IPv4 local connections:

host all all 192.168.230.1/32 trust

3.重启PG服务:

[postgres@localhost data]$ pg_ctl restart

waiting for server to shut down....LOG: received smart shutdown request

LOG: autovacuum launcher shutting down

LOG: shutting down

LOG: database system is shut down

done

server stopped

server starting

[postgres@localhost data]$ LOG: database system was shut down at 2011-07-09 14:54:29 CST

LOG: autovacuum launcher started

LOG: database system is ready to accept connections

[postgres@localhost data]$

4. 使用客户端连接,配置如下:

5.点击“确定”进行连接。

HBase没有研究过,因为我们公司用Erlang开发,这个数据库直接不支持。

mongodb当时选型的时候部分数据可以给你看看,最后也没有选:

mongodb

一、性能

1.在mongodb shell中对单个数据库中未建立索引插入100万条数据时花费1分钟左右时间。建立索引后100W条数据时性能下降不明显。

插入速度 >10000/s

2.使用Tony编写的Erlang-mongodb驱动用编程语言对单个数据库插入100W条数据,每个数据7个字段,没有建立索引的情况下花费大约3分钟。

插入速度 >5000/s

3.使用Tony编写的Erlang-mongodb驱动用编程语言向有3个数据节点2个arbiter的副本集(replica set)插入100W条数据时花费13分钟左右。

插入速度 >1000/s

4.使用Tony编写的Erlang-mongodb驱动用编程语言,有500个并发时,向有3个数据节点2个arbiter的副本集(replica set)插入100W条数据时花费13分钟左右。

插入速度 >1000/s

5.在1000W条数据时对创建索引的信息查询时性能都很不错。

6.索引大小大于内存时查询性能会急剧下降。

二、可靠性

1.单机可靠性通过journal保证。

journal相当于redo日志,是mongodb存储在磁盘上的 *** 作日志。系统默认每100ms会将 *** 作写入journal文件,journal文件再将 *** 作对内存中的shared view进行修改。系统默认每60s会将内存中的shared view写入硬盘的数据库文件。数据文件由shared view写入数据文件,journal文件中已输出到数据文件的 *** 作会被删除。如果发生非正常关闭,重新打开时mongodb的journal上的写 *** 作会重演。

写 *** 作图解:

默认每100ms(该参数通过启动mongos时de journalCommitInterval设置)将 *** 作写入磁盘上的journal,journal会将 *** 作写入内存中的shared view

默认每60秒(该参数通过启动mongod时使用syscdelay设置)shared view会将数据写入磁盘上的数据文件中,被写入磁盘的 *** 作会从journal中删除

2.mongodb通过replica set提高集群的可靠性。

replica set正常运行时在其中由一个primary和若干个secondary和arbiter。仅可以对primary进行读写 *** 作,通过连接上secondary并设置rs.slaveOk()后可以对secondary进行读 *** 作。对primary的写 *** 作会自动同步到状态正常的secondary上。

当primary非正常退出时replica set会自动选出新的primary,并可以保持继续运行。在节点切换时会有短时间无法进行写 *** 作。replica set中可以参加选举的节点越多,系统能够保证在更多节点崩溃时继续运行。同一个replica set中具有选举权的节点不能超过七个。

需要注意的地方:

(replica set中增加数据节点似乎会降低写入的速度,还要进一步核实。)

。。。。。。

三、对写入失败的处理

为了减少写 *** 作等待时间,默认情况下写入失败时mongodb不会返回错误信息。

。。。。。。

四、事务

MongoDB只支持对单行记录的原子性修改,并不支持对多行数据的原子 *** 作。通过一些 *** 作步骤,实际上也可以自己实现该事务。 其步骤如下:

。。。。。

五、使用中其他可能遇到的问题

1.存储空间占用不断增大

。。。。

因为是之前花了很久实验的结果,公司也不让随便发这些东西,全文不能这里透露,你可以留邮箱,发给你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6699750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存