Mnesia用户手册:一,介绍

news/2024/7/16 5:24:27 标签: Erlang, 电信, 编程, 配置管理, 数据结构
Mnesia是一个分布式数据库管理系统DBMS,适合于需要连续运算和软实时特性的电信应用及其他Erlang应用

目录
1,介绍
2,Mnesia快速上手
3,构建一个Mnesia数据库
4,事务和其他访问上下文
5,多种Mnesia特性
6,Mnesia系统信息
7,联合Mnesia和SNMP
8,Mnesia错误消息
9,备份callback接口
10,活动访问callback接口
11,碎片表哈希callback接口

1,介绍
本手册介绍了Mnesia数据库管理系统
Mnesia是一个分布式数据库管理系统,它是OTP的一部分,OTP是构建电信应用的控制系统平台

1.1 关于Mnesia
电信系统里数据的管理和传统的商业DBMS有很多相似之处,但不全是
特别是在许多永不宕机系统里的高级别的容错、和应用程序运行在同一地址空间等需求导致我们实现一个全新的DBMS——Mnesia
Mnesia使用Erlang实现,并且和Erlang紧密连接在一起,它提供实现容错电信系统必要的功能
Mnesia是多用户分布式DBMS,特别为使用符号编程语言Erlang写就的工业级电信应用量身打造
Mnesia尝试解决典型的电信系统所以的数据管理问题,它有许多传统数据库所没有的特性

电信应用里有许多不同于传统DBMS的需求,使用Erlang实现的应用混合了多种特效,这是传统DBMS所满足不了的
Mnesia的设计符合以下需求:
1,快速实时key/value查询
2,复杂的非实时查询,主要为运营和维护
3,分布式数据,为分布式应用
4,高容错
5,动态重配置
6,复杂对象

让Mnesia区别于大部分其他DBMS的是它是设计来解决电信应用典型的数据管理问题
Mnesia有许多传统数据库的概念,如事务和查询
Mnesia也有许多电信应用里的数据管理,如快速实时计算,配置容错级别(通过备份),不宕机的重配置等等
Mnesia和Erlang编程语言紧密结合在一起,这样它在操作数据时没有阻抗失配的问题(数据库和编程语言所操作的数据格式一样)

1.2 Mnesia数据库管理系统
[b]特性[/b]
Mnesia包括以下特性,以产生容错、分布式数据库管理系统:
1)数据库结构可以在运行时动态重配置
2)表可以声明含有location、replication和persistence等属性
3)表可以迁移或备份到多个不同的节点来改进容错,系统其他部分仍然可以访问表来读写和删除记录
4)表的位置对程序员透明。程序让表名和系统本身来跟踪表的位置
5)数据库事务可以分布,大量的方法可以在一个事务里调用
6)不同的事务可以并行运行,它们的执行由数据库管理系统保证完全同步。Mnesia保证不会有两个进程同时操作数据
7)事务可以在系统的所有节点上执行,也可以不在任何节点上执行。事务也可以在避免“脏操作”时避开以减少开销并保证运行快速

[b]application插件[/b]
QLC和Mnesia Session可以和Mnesia一起使用来提供一些特有的功能,以加强Mnesia的操作能力
Mnesia Session和QLC都有相应的OTP文档
下面是Mnesia Session和QLC的主要特性:
1)QLC拥有为Mnesia数据库管理系统优化查询编译器的能力,从根本上让DBMS更高效
2)QLC可以用来作为Mnesia的数据库编程语言,它包括“list comprehension”,可以用来在一些表上做复杂的数据库查询
3)Mnesia Session是Mnesia数据库管理系统的一个接口
4)Mnesia Session允许外部编程语言(即除了Erlang以外的语言)访问Mnesia DBMS

[b]何时使用Mnesia[/b]
在以下几种应用场景使用Mnesia:
1)需要备份数据的应用
2)在数据上执行复杂的搜索的应用
3)需要使用原子事务来同步更新一些记录的应用
4)使用软实时特性的应用
另一方面,Mnesia可能不适合以下类型的应用:
1)处理纯文本或二进制文件数据的程序
2)仅仅需要可以持久化到硬盘的字典查询的应用可以使用标准库dets,它是硬盘版的ets
3)需要硬盘日志功能的应用更应该使用disc_log
4)不适合硬实时系统

[b]作用域和目的[/b]
本手册是OTP文档的一部分,它描述了怎样构建Mnesia数据库应用,怎样集成和使用Mnesia数据库管理系统和OTP
本手册讲述了编程结构,并包含了大量编程实例来解释Mnesia的使用

[b]前提[/b]
本手册的读者需要熟悉系统开发原则和数据库管理系统,并熟悉Erlang编程语言

http://www.niftyadmin.cn/n/727248.html

相关文章

项目进度管理:掌握合适的方法和工具

项目管理贯穿于项目的整个生命周期,对项目的整个过程进行管理。它是一种运用既有规律又经济的方法对项目进行高效率的计划、组织、指导和控制的手段,并在时间、费用和技术效果上达到预定目标。 项目进度管理包含两部分的内容: 1、项目进度计…

Mnesia用户手册:二,Mnesia快速上手

本章介绍了Mnesia: 1)启动一个Erlang session并制定Mnesia数据库的目录 2)初始化数据库结构 3)启动Mnesia并创建必要的表1,初次启动Mnesia 以下是Mnesia系统启动的一个简单展示: [code] unix> erl -mnes…

Mnesia用户手册:三,构建Mnesia数据库

本章详细介绍了设计Mnesia数据库和编程结构的基本步骤: 1)定义schema 2)数据模型 3)启动Mnesia 4)创建新表1,定义schema Mnesia系统的配置在schema里描述 schema是一个特殊的表,它包含了表名、每…

明确生产计划,做好生产进度跟踪

生产计划流于形式,员工、设备、产线安排与进度等方面,信息不透明、交互慢、共享乱,企业加班加点的赶工,效果却并不理想。所以,如何才能解决这些困扰呢? 不论存货生产型还是订货生产型,销售部门…

Rails程序开发的最大问题是代码规范

使用Rails开发大型复杂B2B应用一年了,这个项目目前开发人员达到近20人 现在感觉最痛苦的事情就是大家没有遵循统一的代码规范 我一直建议PM要设立一个项目架构师的角色,来统一大家的代码规范,但是PM不听 因为Ruby这种动态语言太灵活&#xff…

如何有效进行多项目管理

与单项目相比,多项目管理需要承担更大的压力,无论是在进度、成本还是质量上,因此想要确保每个项目可以按时完成,保质完成,借助项目管理工具是最好的办法,运用合适的项目管理软件在企业管理中能起到事半功倍…

优秀项目经理需必备的五个项目管理工具

1、工作分解结构(WBS) WBS是一种常用的项目管理工具,是把一个项目,按一定的原则分解,总任务在上方,往下分解为分项目,然后进一步分解为独立的任务。再把任务分配到每个人的日常活动中&#xff0…

Mnesia用户手册:四,事务和其他访问上下文

本章讲述Mnesia事务系统和事务属性,它们让Mnesia成为一个容错的、分布式的数据库管理系统 讲述内容包括锁(table lock和sticky lock)、如何绕开事务(dirty operation)、嵌套事务(nested transaction&#x…