1 Mnesia Release Notes
This document describes the changes made to the Mnesia system
from version to version. The intention of this document is to
list all incompatibilities as well as all enhancements and
bugfixes for every release of Mnesia. Each release of Mnesia
thus constitutes one section in this document. The title of each
section is the version number of Mnesia.
1.1 Mnesia 4.1.12
1.1.1 Improvements and new features
None
1.1.2 Fixed Bugs and malfunctions
-
Mnesia could hang if mnesia:add_table_copy/3 was
called before all tables had been loaded.
Own Id: OTP-5065
Aux Id: EABln14388
1.1.3 Incompatibilities
None
1.1.4 Known bugs and problems
None.
1.2 Mnesia 4.1.11
1.2.1 Improvements and new features
None
1.2.2 Fixed Bugs and malfunctions
-
Mnesia's internal state could be inconsistent between nodes
on ram-only systems. Data could be commited on nodes despite
that the lock was not grabbed on all nodes (that could
happen on all type of nodes).
Own Id: OTP-5039
Aux Id: EABln12188
1.2.3 Incompatibilities
None
1.2.4 Known bugs and problems
None.
1.3 Mnesia 4.1.10
1.3.1 Improvements and new features
None
1.3.2 Fixed Bugs and malfunctions
-
Mnesia could crash if a cleartable operation was made
during startup of any node.
Own Id: OTP-5012
Aux Id: seq8431
-
Restarting mnesia (fast) could lead to synchronization problems,
leaving transactions unfinished.
Own Id: OTP-5013
Aux Id: seq8485
-
Mnesia could fail to load tables that only existed
on 2 nodes and mnesia couldn't grab a lock on that table
in 20 tries.
Own Id: OTP-5014
Aux Id: seq8629
1.3.3 Incompatibilities
None
1.3.4 Known bugs and problems
None.
1.4 Mnesia 4.1.9
1.4.1 Improvements and new features
None
1.4.2 Fixed Bugs and malfunctions
-
Mnesia's monitor process could crash with
badarg
or
badmatch
in mnesia-4.1.8.
Own Id: OTP-4964
Aux Id: Seq8448
1.4.3 Incompatibilities
None
1.4.4 Known bugs and problems
None.
1.5 Mnesia 4.1.8
1.5.1 Improvements and new features
None
1.5.2 Fixed Bugs and malfunctions
-
Fixed startup problems with ram based mnesia nodes,
multiple synchronization problems could cause mnesia to
either hang or crash.
Own Id: OTP-4926
Aux Id: Seq8410 Seq8317 Seq8256
1.5.3 Incompatibilities
None
1.5.4 Known bugs and problems
None.
1.6 Mnesia 4.1.7
1.6.1 Improvements and new features
None
1.6.2 Fixed Bugs and malfunctions
-
This release is the same as
mnesia-4.1.6
but keeps
backward compability with OTP-R8
,
the previous release used erlang:phash2/2 which
didn't exist there.
1.6.3 Incompatibilities
None
1.6.4 Known bugs and problems
None.
1.7 Mnesia 4.1.6
1.7.1 Improvements and new features
None
1.7.2 Fixed Bugs and malfunctions
-
Mnesia couldn't mix normal transactions and activities
(fragmented tables) in nested transactions.
Own Id: OTP-4863
Aux Id: seq8254
-
Mnesia copied to much data when connecting to an old node,
this could cause slow startup times.
Own Id: OTP-4864
Aux Id: seq8270
1.7.3 Incompatibilities
None
1.7.4 Known bugs and problems
None.
1.8 Mnesia 4.1.5
1.8.1 Improvements and new features
None
1.8.2 Fixed Bugs and malfunctions
-
Mnesia could deadlock if add_table_copy was called
during a node startup.
Own Id: OTP-4803
Aux Id: seq8151
1.8.3 Incompatibilities
None
1.8.4 Known bugs and problems
None.
1.9 Mnesia 4.1.4
1.9.1 Improvements and new features
-
Added an environment variable
-mnesia core_dir DIR
which
when set always writes (even on ram only nodes)
a coredump to DIR
when mnesia crashes.
Own Id: OTP-4726
-
Overloaded events are reported as warnings via
error_logger:warning_msg/2 (instead of
error_msg), if available.
Own Id: OTP-4638
1.9.2 Fixed Bugs and malfunctions
-
Mnesia did a controlled crash if a table was created (or
moved) with the same name as an already existing named ets
table, i.e. the needed resources were not available.
Now
{aborted,Reason}
will be returned.
Own Id: OTP-4321
Aux Id: seq7331
1.9.3 Incompatibilities
-
Soft upgrade is not possible, a restart of mnesia must be performed.
-
Calling
mnesia:restore()
with option
recreate
will crash mnesia if not all mnesia nodes
have been upgraded to mnesia-4.1.4 or later.
1.9.4 Known bugs and problems
None.
1.10 Mnesia 4.1.3
1.10.1 Improvements and new features
None.
1.10.2 Fixed Bugs and malfunctions
-
Mnesia-4.1.2 couldn't load tables from mnesia-3.10.*
nodes.
Own Id: OTP-4610
Aux Id: seq7754
1.10.3 Incompatibilities
None
1.10.4 Known bugs and problems
-
Mnesia fatals (controlled crash) if a table is created
with the same name as an already existing named ets table.
Own Id: OTP-4321
Aux Id: seq7331
1.11 Mnesia 4.1.2
1.11.1 Improvements and new features
None.
1.11.2 Fixed Bugs and malfunctions
-
Calls to
mnesia:transaction()
which makes a badarg,
e.g. calls to mnesia:select/2
with a bad match spec as
argument, loops forever.
Own Id: OTP-4596
-
Mnesia could be deadlocked during start of several nodes.
Own Id: OTP-4597
Aux Id: seq7754
-
Mnesia used table names as the name on opened disk_log files,
which could cause strange behavoiurs if the name interfered
with other opened disk_log files.
Own Id: OTP-4599
Aux Id: seq7705
1.11.3 Incompatibilities
None
1.11.4 Known bugs and problems
-
Mnesia fatals (controlled crash) if a table is created
with the same name as an already existing named ets table.
Own Id: OTP-4321
Aux Id: seq7331
1.12 Mnesia 4.1.1
1.12.1 Improvements and new features
None.
1.12.2 Fixed Bugs and malfunctions
-
Nested transactions could be aborted with
{aborted,{node_not_running,Node}}.
Own Id: OTP-4564
Aux Id: seq7460
-
Mnesia could not load dets files of old format over
the network.
Own Id: OTP-4524
-
mnesia:change_table_copy_type/3
failed to copy
data when changing storage type from disc_only_copies
to ram_copies
.
Own Id: OTP-4565
1.12.3 Incompatibilities
None
1.12.4 Known bugs and problems
-
Mnesia fatals (controlled crash) if a table is created
with the same name as an already existing named ets table.
Own Id: OTP-4321
Aux Id: seq7331
1.13 Mnesia 4.1
1.13.1 Improvements and new features
-
The table fragmentation functionality in Mnesia has been
improved.
Select
and match_object
is done
in parallel which should improve performance.
A new concept of hash modules has been introduced.
This means that a user now can define its own mapping
between record keys and the actual table fragment hosting
the record. A hash module must implement the
mnesia_frag_hash
callback behaviour (see the
reference manual). The default hash module for new tables
is mnesia_frag_hash
, while old already existing
tables are using the mnesia_frag_old_hash
module.
The mnesia_frag_old_hash
is still using the poor
depricated erlang:hash/1
function, while
mnesia_frag_hash
is using the better erlang:phash/1
.
Own Id: OTP-4403
Aux Id: seq7458
-
Improved table loading performance during startup.
Mnesia should be able to utilize the network bandwidth
better, and Mnesia also uses new
dets
functionality to
improve the loading of disc_only_copies
tables,
if possible.
Own Id: OTP-4473
1.13.2 Fixed Bugs and malfunctions
-
Local content tables on ram nodes didn't load during
startup.
Own Id: OTP-4369
Aux Id: seq7415
-
Sometime Mnesia could hang if schema operations where done during
a mnesia node startup.
Own Id: OTP-4474
1.13.3 Incompatibilities
-
Downgrade to previous mnesia versions is not possible if
you are using fragmented tables.
1.13.4 Known bugs and problems
-
Mnesia fatals (controlled crash) if a table is created
with the same name as an already existing named ets table.
Own Id: OTP-4321
Aux Id: seq7331
1.14 Mnesia 4.0.2
1.14.1 Improvements and new features
None
1.14.2 Fixed Bugs and malfunctions
-
Checkpoints could crash mnesia when mnesia nodes started.
Own Id: OTP-4318
Aux Id: seq7206
-
Some schema operations could return {atomic, ok} but still fail to commit the
operation on nodes with disc, e.g. transform_table.
Own Id: OTP-4319
-
Mnesia left disk_log files opened in some cases, which could lead to crashes.
Own Id: OTP-4320
Aux Id: seq7338
-
mnesia:transform_table
didn't work if table had indecies, it returned
{atomic, ok} but the meta-data was not transformed.
Own Id: OTP-4325
Aux Id: seq7342
-
Transform table on disc_copies tables, sometimes fail to store
the transformed records to disc.
Own Id: OTP-4292
-
An empty (ram_copies table) file could be created when unpacking
a fallback.
Own Id: OTP-4338
-
Removed a possibilty for getting inconsistent tables during table
copying.
Own Id: OTP-4338
-
mnesia:select/[2|3]
now works with fragmented tables.
Own Id: OTP-4338
1.14.3 Incompatibilities
None
1.14.4 Known bugs and problems
None.
1.15 Mnesia 4.0.1
1.15.1 Improvements and new features
None.
1.15.2 Fixed Bugs and malfunctions
-
Using
mnesia:dump_tables/1
or
mnesia:change_table_copy(Tab, Node, disc_copies)
on a
ram node (schema in ram) causes a crash in earlier mnesia-3.10.* releases.
Own Id: OTP-4187
Aux Id: Seq 7188
-
If a mnesia node was restarted during a checkpoint (also
affects backups) the checkpoint would be trashed, which
could lead to hangings, crashes and other undesired
behaviours, including that the checkpoint could delete other applications
ets tables.
Own Id: OTP-4215
Aux Id: Seq 7206 and
probably Seq 7184, Seq 7151
-
mnesia:delete_object/[1|3]
sometimes failed to delete
entries on set
tables.
-
mnesia:select/[2|3]
now works with fragmented tables.
1.15.3 Incompatibilities
Release mnesia-4.0 and later will only run OTP R8 and later.
1.15.4 Known bugs and problems
None.
1.16 Mnesia 4.0
1.16.1 Improvements and new features
-
The function
mnesia:[dirty_]select/[2|3]
has been added,
the function can and should be used to write complex queries.
-
The function
mnesia:sync_transaction/[1|2|3]
has been added,
the function can be used to avoid overloading mnesia on other nodes.
Own Id: OTP-3481
Aux Id: Seq 4362
-
Mnesia's locker mechanism has been optimized, and it is now possible to
acquire a sticky_write lock in
mnesia:read/3
.
1.16.2 Fixed Bugs and malfunctions
None
1.16.3 Incompatibilities
Release mnesia-4.0 and later will only run OTP R8 and later.
1.16.4 Known bugs and problems
None.
Copyright © 1991-2005
Ericsson AB