From 572323a87f3ed28ae2af42f32cbc745e35b95101 Mon Sep 17 00:00:00 2001 From: xsipewe Date: Mon, 18 May 2015 14:54:00 +0200 Subject: Update asn1 documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language cleaned up by the technical writer xsipewe from Combitech. Proofreading and and additional corrections by Björn Gustavsson and Dan Gudmundsson. --- lib/mnesia/doc/src/Mnesia_overview.xml | 192 +++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 lib/mnesia/doc/src/Mnesia_overview.xml (limited to 'lib/mnesia/doc/src/Mnesia_overview.xml') diff --git a/lib/mnesia/doc/src/Mnesia_overview.xml b/lib/mnesia/doc/src/Mnesia_overview.xml new file mode 100644 index 0000000000..4758612053 --- /dev/null +++ b/lib/mnesia/doc/src/Mnesia_overview.xml @@ -0,0 +1,192 @@ + + + + +
+ + 19972013 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + Mnesia + Claes Wikström, Hans Nilsson and Håkan Mattsson + Bjarne Däcker + + Bjarne Däcker + Bjarne Däcker + + C + Mnesia_overview.xml +
+ +

The management of data in telecommunications system has many + aspects, thereof some, but not all, are addressed by traditional + commercial Database Management Systems (DBMSs). In particular the + high level of fault tolerance that is required in many nonstop + systems, combined with requirements on the DBMS to run in the same + address space as the application, have led us to implement a new + DBMS, called Mnesia.

+

Mnesia is implemented in, and tightly connected to Erlang. + It provides the functionality that is necessary for the + implementation of fault tolerant telecommunications systems.

+

Mnesia is a multiuser distributed DBMS specially made for + industrial telecommunications applications written in Erlang, + which is also the intended target language. + Mnesia tries to address all the data + management issues required for typical telecommunications systems. + It has a number of features that are not normally found in traditional + databases.

+

In telecommunications applications, there are different needs + from the features provided by traditional DBMSs. The applications now + implemented in Erlang need a mixture of a broad range + of features, which generally are not satisfied by traditional DBMSs. + Mnesia is designed with requirements like the following in + mind:

+ + Fast real-time key/value lookup + + Complicated non-real-time queries mainly for + operation and maintenance + + Distributed data because of distributed applications + + High fault tolerance + + Dynamic reconfiguration + + Complex objects + + +

Mnesia is designed with the typical data management problems + of telecommunications applications in mind. This sets Mnesia + apart from most other DBMS. Hence Mnesia + combines many concepts found in traditional databases such as + transactions and queries with concepts found in data management + systems for telecommunications applications, for example:

+ + Fast real-time operations + + Configurable degree of fault tolerance (by replication) + + The ability to reconfigure the system without stopping or + suspending it. + + +

Mnesia is also interesting because of its tight coupling to + Erlang, thus almost turning Erlang into a database programming + language. This has many benefits, the foremost is that + the impedance mismatch between the data format used by the DBMS + and the data format used by the programming language, which is used + to manipulate the data, completely disappears.

+ +
+ Mnesia Database Management System (DBMS) +
+ Features +

Mnesia contains the following features that combine to + produce a fault-tolerant, distributed DBMS written in Erlang: +

+ + Database schema can be dynamically reconfigured at runtime. + + Tables can be declared to have properties such as location, + replication, and persistence. + + Tables can be moved or replicated to several nodes to improve + fault tolerance. The rest of the system can still access the tables + to read, write, and delete records. + + Table locations are transparent to the programmer. + Programs address table names and the system itself keeps track of + table locations. + + Database transactions can be distributed, and many + functions can be called within one transaction. + + Several transactions can run concurrently, and their execution + is fully synchronized by the DBMS. Mnesia ensures that no + two processes manipulate data simultaneously. + + Transactions can be assigned the property of being executed on + all nodes in the system, or on none. Transactions can also be + bypassed in favor of running "dirty operations", which reduce + overheads and run fast. + + +

Details of these features are described in the following sections.

+
+ +
+ Add-On Application +

Query List Comprehension (QLC) can be used with Mnesia + to produce specialized functions that enhance the operational + ability of Mnesia. QLC has its own documentation as part + of the OTP documentation set. The main features of QLC + when used with Mnesia are as follows:

+ + QLC can optimize the query compiler for the Mnesia + DBMS, essentially making the DBMS more efficient. + + QLC can be used as a database programming + language for Mnesia. It includes a notation called "list + comprehensions" and can be used to make complex database + queries over a set of tables. + + +

For information about QLC, see the + qlc manual page + in STDLIB.

+
+ +
+ When to Use Mnesia +

Use Mnesia with the following types of applications:

+ + Applications that need to replicate data. + + Applications that perform complicated searches on data. + + Applications that need to use atomic transactions to + update several records simultaneously. + + Applications that use soft real-time characteristics. + + +

Mnesia is not as appropriate with the + following types of applications:

+ + Programs that process plain text or binary data files. + + Applications that merely need a look-up dictionary that + can be stored to disc. Those applications use the standard + library module dets, which is a disc-based version + of the module ets. For information about dets, + see the dets + manual page in STDLIB. + + Applications that need disc logging facilities. + Those applications can + use the module disk_log by preference. For + information about disk_log, see the + disk_log + manual page in Kernel. + + Hard real-time systems. + + +
+
+
-- cgit v1.2.3