aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia/src
AgeCommit message (Collapse)Author
2012-12-13Merge branch 'ao/fix_mnesia_overload_msg_format'Henrik Nord
* ao/fix_mnesia_overload_msg_format: Fix format of mnesia overload message OTP-10639
2012-10-11Fix format of mnesia overload messageAhmed Omar
Using ~p in mnesia overload message could lead to wrong messages. mnesia_tm overload message contains a list of two numbers (queue length) example: instead of: Mnesia is overloaded: {mnesia_tm,message_queue_len,[100,105]} it prints : Mnesia is overloaded: {mnesia_tm,message_queue_len,"di"} Replacing ~p with ~w fixes the problem as it doesn't try to detect lists of printable characters
2012-10-01mnesia: Use chained send_after instead of send_intervalJames Wheare
timer:send_interval behaves badly when resuming from sleep on some platforms. For example, if I sleep for 10 minutes, and have a send_interval running once per minute, when I resume, 10 messages will be sent immediately, eliminating the benefit of only running the work periodically. This is admittedly a separate bug with send_interval, but the workaround is straightforward, and also protects from messages piling up in the queue when the work takes longer than the interval. This patch fixes piled up error reports on resume from sleep: ** WARNING ** Mnesia is overloaded: {dump_log, write_threshold} You'll still be warned if mnesia is overloaded, just not repeatedly. Additionally, erlang:send_after is more efficient than using the timer module equivalent [1] [1] http://www.erlang.org/doc/efficiency_guide/commoncaveats.html#id57251
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-08-27Bumped version nrFredrik Gustafsson
2012-06-18Prevent index from being corrupted if a nonexistent item is deletedBartlomiej Puzon
We have to ensure that we actually delete the last object with a given (key, index) pair before removing the index.
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
2012-03-26Merge branch 'ud/fix-return-do_get_disc_copy2' into maintGustav Simonsson
* ud/fix-return-do_get_disc_copy2: Fixes value returned by mnesia_loader:do_get_disc_copy2/4 OTP-10015 OTP-10016
2012-01-31[Mnesia] More optimizationsDan Gudmundsson
If a transaction releases a write, it can be deleted directly since no read locks or other write locks can be present
2012-01-31[Mnesia] Optimize double ets_lookupsDan Gudmundsson
2012-01-31[Mnesia] Optimize for lookup instead of match_objectDan Gudmundsson
5% faster on tpcb
2012-01-31[Mnesia] First try with ordered_set instead of bagDan Gudmundsson
Switch to ordered_set so match_object matches partially bound keys, more efficient.
2011-12-31Fixes value returned by mnesia_loader:do_get_disc_copy2/4Uwe Dauernheim
Returns the same value for `mnesia_loader:disc_load_table/2' as `mnesia_loader:net_load_table/4' if a table copy can not be found. This patch was stuck as a pull request in GitHub (authored by Uwe Dauernheim): https://github.com/erlang/otp/pull/16
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-12-09Merge branch 'dgud/mnesia/read-sticky-bug/OTP-9786'Dan Gudmundsson
* dgud/mnesia/read-sticky-bug/OTP-9786: [mnesia] Read record from correct node [mnesia] Fixed sticky read lock bug [mnesia] Whitespace fixes Conflicts: lib/mnesia/src/mnesia_log.erl
2011-12-09Merge branch 'rc/mnesia_log-no-async'Henrik Nord
* rc/mnesia_log-no-async: Use the synchronous log_terms instead of alog_terms in mnesia_log:ets2dcd() OTP-9804
2011-12-07Use the synchronous log_terms instead of alog_terms in mnesia_log:ets2dcd()Richard Carlsson
This avoids the situation where mnesia could dump a very large ets table in its entirety into the message queue of the disk_log process, causing memory blowup and choking the disk logger.
2011-12-07[mnesia] Read record from correct nodeDan Gudmundsson
Read from where_to_read otherwise bad data may read during move_table, where where_to_write is updated before where_to_read and the table is available.
2011-12-06[mnesia] Fixed sticky read lock bugDan Gudmundsson
wread on locks stuck at non-local node could return unexpected value. Thanks to Magnus Henoch who posted a nice testcase showing the bug.
2011-12-06[mnesia] Whitespace fixesDan Gudmundsson
2011-11-28[mnesia] Add possibility for implementation dependent storage options to ↵Dan Gudmundsson
create_table
2011-11-18Merge branch 'pr/mnesia_frag_hash'Henrik Nord
* pr/mnesia_frag_hash: add mnesia_frag_hash test Reduce calls to phash in key_to_frag_number OTP-9722
2011-11-11Merge branch 'maint-r14'Dan Gudmundsson
2011-11-07Prepare releaseDan Gudmundsson
2011-11-07[mnesia] Fix deadlock in aborted mnesia:del_table_copy/2Dan Gudmundsson
2011-11-07[mnesia] Make all schema operations protocol awareDan Gudmundsson
Allow schema operation even if not all nodes are upgraded to latest version.
2011-11-07[mnesia] Remove export of clear_table which is not a schema operation anymoreDan Gudmundsson
2011-11-07[mnesia] Cleanly bring down mnesiaDan Gudmundsson
Aviods failing/wobbling testcase. Mnesia mishandled supervisors.
2011-09-28Merge remote-tracking branch 'upstream/dev' into majorDan Gudmundsson
2011-09-28[mnesia] Prepare releaseDan Gudmundsson
2011-09-21Merge branch 'dev' into majorDan Gudmundsson
2011-09-21Merge branch 'dgud/mnesia/leaking-log/OTP-9551' into devDan Gudmundsson
* dgud/mnesia/leaking-log/OTP-9551: [mnesia] Use api to log decisions.
2011-09-19[mnesia] Use dedicated api for clearing tablesDan Gudmundsson
Mainly to correctly clear dets tables. It may also be faster to use the dedicated functions.
2011-09-19[mnesia] Use api to log decisions.Dan Gudmundsson
Instead of just appending decisions to the log, use mnesia_log:log(Decision), it will increment the counter which causes the log to be dumped even if no actual commits are stored on this node. This fixed a bug where the LATEST.log would grow forever on a node which had the schema on disc, but where not involved in any commits.
2011-09-19Merge branch 'dev' into majorDan Gudmundsson
2011-09-15[mnesia] Fix schema conversion to previous versionsDan Gudmundsson
2011-09-15[mnesia] Whitespace fixesDan Gudmundsson
2011-09-15[mnesia] Update protocol versionDan Gudmundsson
And remove old protocol version hacks
2011-09-15[mnesia] Mnesia schema merge tested with 2 nodes, r13b04 -> r14b (dev)Ulf Wiger
The do_merge_schema function now converts cstructs from a remote node when it detects that they are different. In order to be compatible the other way around, mnesia_controller:get_cstructs() detects a remote caller, and converts the cstructs before sending them.
2011-09-15[mnesia] Fixed bug in aborted schema transactionsDan Gudmundsson
2011-09-15[mnesia] Add hrl dependencyDan Gudmundsson
2011-08-16emulator: Add a fourth element in exception stacktracesBjörn Gustavsson
This commit is a preparation for introducing location information (filename/line number) in stacktraces in exceptions. Currently a stack trace looks like: [{Mod1,Function1,Arity1}, . . . {ModN,FunctionN,ArityN}] Add a forth element to each tuple that can be used indication the filename and line number of the source file: [{Mod1,Function1,Arity1,Location1}, . . . {ModN,FunctionN,ArityN,LocationN}] In this commit, the fourth element will just be an empty list, and we will change all code that look at or manipulate stacktraces.
2011-05-20Update copyright yearsBjörn-Egil Dahlberg
2011-05-17Prepare mnesia releaseDan Gudmundsson
2011-05-17Remove deadcodeDan Gudmundsson
2011-05-17Merge branch 'uw/mnesia-majority' into devHenrik Nord
* uw/mnesia-majority: dialyzer warning on mnesia_tm Add documentation text about majority checking add mnesia_majority_test suite where_to_wlock optimization + change_table_majority/2 bug in mnesia_tm:needs_majority/2 optimize sticky_lock maj. check check majority for sticky locks Write locks now check majority when needed. Add {majority, boolean()} per-table option. OTP-9304
2011-05-16dialyzer warning on mnesia_tmUlf Wiger
2011-05-16where_to_wlock optimization + change_table_majority/2Ulf Wiger
2011-05-16bug in mnesia_tm:needs_majority/2Ulf Wiger
2011-05-16optimize sticky_lock maj. checkUlf Wiger