aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia
AgeCommit message (Collapse)Author
2013-04-12Optimize index creation for Mnesia set tablesNick Marino
ETS bag tables have very poor performance on insertion if you have lots of rows with duplicate keys, since it has to check each existing record and make sure it's not inserting any duplicates. This can lead to some pretty drastic slowdowns when inserting lots of rows into an Mnesia table, IF you're introducing lots of duplicate values into an indexed column. As it turns out, we can fix this by switching to duplicate_bag tables for storing Mnesia indexes on tables of type 'set', and it ultimately makes no functional difference since we will never actually attempt to insert any duplicate records anyway. (We would have to make some bigger changes to make this work for Mnesia bag tables though, so that is left as a possible enhancement for the future.)
2013-04-08Remove unused Postscript filesHans Bolinder
2013-03-11Fix timersDan Gudmundsson
2013-02-28mnesia: Decrease test timesDan Gudmundsson
2013-02-22Update copyright yearsBjörn-Egil Dahlberg
2013-01-29Prepare releaseOTP_R16A_RELEASE_CANDIDATEErlang/OTP
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2013-01-23Turn warnings to errors on selected applicationsBjörn Gustavsson
2013-01-22Merge branch 'lh/forget-mnemosyne/OTP-10729'Fredrik Gustafsson
* lh/forget-mnemosyne/OTP-10729: Remove what remains of the Mnemosyne code Remove support for the query keyword and query expressions
2013-01-18Merge branch 'nox/enable-silent-rules/OTP-10726'Björn-Egil Dahlberg
* nox/enable-silent-rules/OTP-10726: Implement ./otp_build configure --enable-silent-rules
2013-01-16Remove what remains of the Mnemosyne codeLoïc Hoguin
2013-01-15Implement ./otp_build configure --enable-silent-rulesAnthony Ramine
With silent rules, the output of make is less verbose and compilation warnings are easier to spot. Silent rules are disabled by default and can be disabled or enabled at will by make V=0 and make V=1.
2013-01-09Prepare OTP files for Unicode as default encodingHans Bolinder
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-09-25Shorten testcase namesDan Gudmundsson
Crashes on windows XP otherwise path > 256..
2012-09-04Merge tag 'OTP_R15B02'Björn-Egil Dahlberg
The R15B02 release
2012-09-03Prepare releaseOTP_R15B02Erlang/OTP
2012-08-31Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: lib/diameter/autoconf/vxworks/sed.general xcomp/README.md
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-08-27Merge branch 'maint'Lukas Larsson
* maint: Bumped version nr ssl & public_key: Workaround that some certificates encode countryname as utf8 and close down gracefully if other ASN-1 errors occur. Add more cross reference links to ct docs Remove config option from common_test args Update user config to use nested tuple keys Allow mixed IPv4 and IPv6 addresses to sctp_bindx Add checks for in6addr_any and in6addr_loopback Fix SCTP multihoming observer: fix app file (Noticed-by: Motiejus Jakstys) Fix lib/src/test/ssh_basic_SUITE.erl to fix IPv6 option typos Prevent index from being corrupted if a nonexistent item is deleted Add tests showing that trying to delete non-existing object may corrupt the table index Fix Table Viewer search crash on new|changed|deleted rows Escape control characters in Table Viewer Fix Table Viewer crash after a 'Found' -> 'Not found' search sequence inet_drv.c: Set sockaddr lengths in inet_set_[f]address Conflicts: erts/preloaded/ebin/prim_inet.beam
2012-08-27Bumped version nrFredrik Gustafsson
2012-07-25Merge branch 'egil/r16/remove-vxworks-support/OTP-10146'Björn-Egil Dahlberg
* egil/r16/remove-vxworks-support/OTP-10146: (30 commits) erts: Update doc to reflect VxWorks removal erts: Remove VxWorks from documentation Update preloaded erl_prim_loader and prim_file snmp: Remove VxWorks megaco: Remove VxWorks diameter: Remove VxWorks mnesia: Remove VxWorks typer: Remove VxWorks ssh: Remove VxWorks inets: Remove VxWorks hipe: Remove VxWorks cosFileTransfer: Remove VxWorks asn1: Remove VxWorks orber: Remove VxWorks os_mon: Remove VxWorks runtime_tools: Remove VxWorks test_server: Remove VxWorks references in doc test_server: Remove VxWorks stdlib: Remove VxWorks kernel: Remove VxWorks from tests ... Conflicts: erts/emulator/test/Makefile
2012-07-19mnesia: Remove VxWorksBjörn-Egil Dahlberg
2012-07-19Add mnesia tpc benchmarkLukas Larsson
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-18Add tests showing that trying to delete non-existing object may corrupt the ↵Bartlomiej Puzon
table index In case of bag tables, trying to delete a non-existing object leads to the index becoming corrupt. This happens if the non-existing object we try to delete happens to share its key and index field value with a single existing object in the table. Result: The index entry corresponding to the existing object is removed.
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
2012-05-23Fix compilation of examples and tc names on windowsLukas Larsson
2012-04-01Prepare releaseOTP_R15B01Erlang/OTP
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-02-08[mnesia] Fix warning in example codeDan Gudmundsson
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-12Prepare releaseErlang/OTP
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-07Merge branch 'dgud/mnesia/impl-table-options/OTP-8970'Dan Gudmundsson
* dgud/mnesia/impl-table-options/OTP-8970: [mnesia] Add possibility for implementation dependent storage options to create_table
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-29mnesia tests: Eliminate use of tuple funBjörn Gustavsson
2011-11-28[mnesia] Add possibility for implementation dependent storage options to ↵Dan Gudmundsson
create_table
2011-11-22Revert "Update version numbers for pre-release of R15"Björn-Egil Dahlberg
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.