`
hideto
  • 浏览: 2650083 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mnesia用户手册:一,介绍

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

application插件
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

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

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

前提
本手册的读者需要熟悉系统开发原则和数据库管理系统,并熟悉Erlang编程语言
分享到:
评论
1 楼 supercode 2008-09-04  
哥们,真强,每次找资料都找到你这里来

相关推荐

    Mnesia用户手册(PDF版本)

    Mnesia用户手册(PDF版本) 详细讲述Mnesia数据库操作。

    Mnesia 用户手册中文版 pdf

    Mnesia 用户手册中文版 pdf,把市面上的doc转成pdf,并添加重要章节的书签,细节并不完美,请见谅。

    Mnesia用户手册.pdf

    Mnesia用户手册.pdf

    Mnesia用户手册

    Mnesia用户手册Mnesia用户手册

    erlang——Mnesia用户手册.pdf

    8.附录.A:Mnesia.错误信息 8.1.Mnesia.中的错误 9.附录.B:备份回调函数接口 9.1.Mnesia.备份回调行为 10.附录.C:作业存取回调接口 10.1.Mnnesia.存取回调行为 11.附录.D:分片表哈希回调接口 11.1....

    Mnesia用户手册 4.4.10版.rar

    Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时特性的Erlang应用。 目 录 1 、介绍 . . .. . .. . . .. . 4 1.1 关于 Mnesia . . .. . .. . . .. . 4 1.2 Mnesia ...

    Mnesia用户手册(docx版)

    Mnesia用户手册(docx版) 详细讲解Mnesia数据库操作

    Mnesia用户手册.zip

    Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时 特性的Erlang应用。

    angular-amnesia-cache:角度的短期缓存

    如果您需要更多自定义处理/行为,为这些编写服务可能是一个更好的主意。 AmnesiaCache只是方便。 假设我们给AmnesiaCache的生命周期是2000 ( 2s )。 任何中间有至少2s暂停的实体, AmnesiaCache都会忘记它,如下所...

    mnesia_pg:Postgres后端通过mnesia_ext到Mnesia

    mnesia_pg Postgres后端通过mnesia_ext到Mnesia 这是一个非常原始的实现,用作概念验证和初步基准测试。 尚未用于生产中。 随时进行改进。

    amnesia:失忆备忘录

    二、为什么开源最最最最主要的原因还是因为小程序不允许个人发布这种用户可以输入功能的小程序,导致没有用户使用其次是因为,我个人觉得它是一款不错的软件,希望开源后可以让它更加的完善 从功能上来说:它的确...

    oauth2_mnesia_backend:Kivraoauth2项目的Mnesia后端

    oauth2_mnesia_backend 作者: Carlos ( )。 适用于后端。

    Mnesia User's Guide

    session, specify a Mnesia database directory, initialize a database schema, start Mnesia, and create tables. Initial prototyping of record definitions is also discussed. • Build a Mnesia Database ...

    amnesia_cck:“ amensia”项目的源代码,已针对CCK展示进行了修改-Show source code

    失忆症 “ amensia”项目的源代码,已针对CCK展示进行了修改

    Api-Social-Amnesia.zip

    Api-Social-Amnesia.zip,忘记过去。社交健忘症确保你的社交媒体帐户只显示你最近的历史,而不是5年前“那个阶段”的帖子。,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的...

    Chrome Amnesia-crx插件

    语言:English (United States) 遗忘的延伸 Chrome失忆症是一个Chrome扩展程序,可让您有选择地不记得自己的任何浏览历史记录。...有关更多信息,请访问https://github.com/DanielBok/chrome-amnesia。

    mnesiam:Mnesiam使Mnesia数据库的群集变得容易

    Mnesiam使Mnesia数据库的群集变得容易。 可以在上找到模块文档。 安装 该软件包可以通过添加安装mnesiam你在依赖列表mix.exs : def deps do [{ :mnesiam , " ~> 0.1.1 " }] end 在您的应用程序之前,请确保已...

    Amnesia-开源

    失忆症是一种提醒,允许您定义警报,贴纸(贴子)以提醒您一些重要的内容以及有关所需内容的注释。 可以将警报编程为在给定时间显示,可以在桌面上放置贴纸以随时查看。

Global site tag (gtag.js) - Google Analytics