Age | Commit message (Collapse) | Author |
|
- first stab at fixing index_[read|match_object] w plugins
- do not include index plugins at match ops
- add index_plugin_test_suite
- Increase ix plugin test coverage + bug fix
|
|
|
|
Do not read from (set | order_set) source table if the content is
already in the transactional context (i.e., a previous write/delete).
|
|
* upstream/pr/1858:
Fix delete_object and write convergence in transaction.
OTP-15231
|
|
|
|
|
|
Fix a bug, when delete_object was deleting the record if it was written
in the same transaction even if it was written to a different value.
To verify:
%% Create a set table
mnesia:create_table(foo, []).
%% Write and delete_object in transaction
mnesia:transaction(fun() ->
mnesia:write({foo, bar, one}),
mnesia:delete_object({foo, bar, not_one})
end).
{atomic, [{foo, bar, one}]} = mnesia:transaction(fun() -> mnesia:read(foo, bar) end).
Added a section to isolation tests to check for non-matching delete_object
requests.
|
|
|
|
Take care of the call of erlang:get_stacktrace() in
module mnesia_lib.
|
|
* maint:
Fix type create_option() in mnesia
|
|
The create_option() type in mnesia lacks the user_properties field
which is used by mnesia in various places.
|
|
|
|
|
|
|
|
The module mnesia_frag_old_hash utilized the broken erlang:hash/2 function
which has been deprecated for a long time. Since erlang:hash/2 is now removed
there is no point in having this module any more.
|
|
* maint:
Use off_heap memory queue for mnesia_tm
Preserve key order in mnesia:table_info
|
|
|
|
|
|
To separate concerns and reduce confusion, avoid implementing two
behaviours in a single module. Make a single start_link() helper in
mnesia_sup and remove the unused mnesia_sup:start() utility function.
|
|
A continuation returned by mnesia:select/[14] should be reusable in
different, non-transactional activities. Aborting with
wrong_transaction doesn't make sense in a dirty context.
|
|
* dgud/mnesia/ext-backend/PR-858/OTP-13058:
mnesia_ext: Add basic backend extension tests
mnesia_ext: reuse snmp field for ext updates
mnesia_ext: Create table/data containers from mnesia monitor not temporary processes
mnesia_ext: Implement ext copies index
mnesia_ext: Load table ext
mnesia_ext: Dumper and schema changes
mnesia_ext: Refactor mnesia_schema.erl
mnesia_ext: Ext support in fragmented tables
mnesia_ext: Backup handling
mnesia_ext: Create schema functionality
mnesia_ext: Add ext copies and db_fold to low level api
mnesia_ext: Refactor record_validation code
mnesia_ext: Add create_external and increase protocol version to monitor
mnesia_ext: Add ext copies to records
mnesia_ext: Add supervisor and behaviour modules
|
|
Add ext to table/system information
Add add_backend_type
|
|
Should maybe be moved to mnesia.erl and inlined??
Or is it used elsewhere?
|
|
|
|
|
|
|
|
The docs express that exit({aborted, Reason}) are called when
an error occur.
|
|
* dgud/mnesia/try-catch:
mnesia: Replace catch with try-catch
|
|
Avoids building stacktraces where it is not needed and do
not mask errors, i.e. only catch the relevant classes in each try.
|
|
|
|
match_object returned wrong objects when matching on non key fields
and updates in the same transaction had been performed.
|
|
|
|
For performance reasons the file data is not synced to disk in mnesia,
data loss can happen between each dump.
mnesia:dump_log() can be used explicitly to ensure data is written to disk.
But that can take a long time, so mnesia:sync_log() which just
sync the log have been added.
|
|
|
|
|
|
|
|
|
|
Since the table loader also sets (table) write locks, a special
lock type, 'load', was needed. Unfortunately, this affects mnesia
activity callbacks that redefine the lock operation.
|
|
With help from Kostis
|
|
* is/mnesia-send-compressed:
Add option to compress data when copying tables between Mnesia nodes
OTP-8406 Igor Ribeiro Sucupira added the option to compress data when
copying tables between Mnesia nodes.
|
|
Optionally using data compression for copying Mnesia tables allows
the system to be tuned to eliminate network bottlenecks from
deployments where enough CPU is available to use zlib.
With this patch, running erl -mnesia send_compressed <level>
will enable compression for sending tables between nodes. The
compression level can be any integer in [0, 9], with 0 (the
default) meaning no compression (exactly the previous behaviour)
and 9 being the highest compression level.
To set any non-zero compression level at the sender, both nodes
must have the updated Mnesia modules (the receiver will work
according to the sender's configuration).
|
|
|