<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/mnesia/src, branch maint</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'dgud/mnesia/sticky-bug/ERL-768/OTP-15979' into maint</title>
<updated>2019-08-09T10:52:59+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-08-09T10:52:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d48dd93bee87d039b80553031e7fe6625feff908'/>
<id>d48dd93bee87d039b80553031e7fe6625feff908</id>
<content type='text'>
* dgud/mnesia/sticky-bug/ERL-768/OTP-15979:
  mnesia: Bump protocol version
  mnesia: Introduce sync_asym_trans protocol
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dgud/mnesia/sticky-bug/ERL-768/OTP-15979:
  mnesia: Bump protocol version
  mnesia: Introduce sync_asym_trans protocol
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Bump protocol version</title>
<updated>2019-07-25T12:49:37+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-07-25T09:59:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7e92eb6666f3d73eb683516bc4b74b827953ec4a'/>
<id>7e92eb6666f3d73eb683516bc4b74b827953ec4a</id>
<content type='text'>
Remove unsupported conversions from the old protocols.
This means mnesia on OTP-R18 nodes is no longer able to connect to
OTP-22 mnesia nodes.

Add protocol conversion for old nodes and sync_asym_trans transactions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove unsupported conversions from the old protocols.
This means mnesia on OTP-R18 nodes is no longer able to connect to
OTP-22 mnesia nodes.

Add protocol conversion for old nodes and sync_asym_trans transactions.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Introduce sync_asym_trans protocol</title>
<updated>2019-07-25T09:07:28+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-07-25T09:07:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=edfeb5d9b7dcba2380f629b5a41cbab65cd40cb8'/>
<id>edfeb5d9b7dcba2380f629b5a41cbab65cd40cb8</id>
<content type='text'>
Transactions with sticky locks could with async_asym transactions be
committed in the wrong order, since asym transaction are spawned on
the remote nodes.

See ERL-768.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Transactions with sticky locks could with async_asym transactions be
committed in the wrong order, since asym transaction are spawned on
the remote nodes.

See ERL-768.
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Fix deadlock caused by add_table_copy</title>
<updated>2019-06-28T11:13:13+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-06-28T11:13:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2bf7b5b5abbc1097a0b30bea2d390a2a0bec004c'/>
<id>2bf7b5b5abbc1097a0b30bea2d390a2a0bec004c</id>
<content type='text'>
If add_table_copy was called when a node was starting it deadlock
waiting for mnesia_controller, when schema was not merged.

Abort if that is the case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If add_table_copy was called when a node was starting it deadlock
waiting for mnesia_controller, when schema was not merged.

Abort if that is the case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Report stacktrace in non-transactions activity function errors.</title>
<updated>2019-05-07T07:40:07+00:00</updated>
<author>
<name>Daniil Fedotov</name>
<email>hairyhum@gmail.com</email>
</author>
<published>2019-04-26T20:53:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d63237bd38059b8468ec4e147cca49b1cf8caac4'/>
<id>d63237bd38059b8468ec4e147cca49b1cf8caac4</id>
<content type='text'>
If an activity function fails with an error, the stacktrace is
dropped in non_transaction function try/catch clause.
This makes debuging of errors inside a transaction really hard.

Transaction activities handle errors and exits differently, non-transaction
activities should do the same.

Adding the stacktrace to the exit reason when translating errors to exits.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If an activity function fails with an error, the stacktrace is
dropped in non_transaction function try/catch clause.
This makes debuging of errors inside a transaction really hard.

Transaction activities handle errors and exits differently, non-transaction
activities should do the same.

Adding the stacktrace to the exit reason when translating errors to exits.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix erroneous aborts when using index plugins (ERL-556)</title>
<updated>2019-03-20T16:12:49+00:00</updated>
<author>
<name>Ulf Wiger</name>
<email>ulf@feuerlabs.com</email>
</author>
<published>2018-01-30T07:10:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fabd7fc883834982417219d4ace57e257e5f9892'/>
<id>fabd7fc883834982417219d4ace57e257e5f9892</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2019-02-25T10:52:55+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-02-25T10:52:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=593eec697ab26a048f0407494da3c0d5b481b3fb'/>
<id>593eec697ab26a048f0407494da3c0d5b481b3fb</id>
<content type='text'>
* maint:
  mnesia: Avoid raise in overload reports
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  mnesia: Avoid raise in overload reports
</pre>
</div>
</content>
</entry>
<entry>
<title>mnesia: Avoid raise in overload reports</title>
<updated>2019-02-22T08:57:17+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dgud@erlang.org</email>
</author>
<published>2019-02-22T08:57:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5e40f34b27454b38c1eff389e9c68c84a1d26290'/>
<id>5e40f34b27454b38c1eff389e9c68c84a1d26290</id>
<content type='text'>
Several processes could invoke adjust_log_writes, which
could cause overload reports.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several processes could invoke adjust_log_writes, which
could cause overload reports.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2102 from dszoboszlay/optimise-ext-table-dumping-further</title>
<updated>2019-02-18T12:22:47+00:00</updated>
<author>
<name>Dan Gudmundsson</name>
<email>dangud@gmail.com</email>
</author>
<published>2019-02-18T12:22:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1c5c381fda617c6299ebc8200ea28f95954f53bd'/>
<id>1c5c381fda617c6299ebc8200ea28f95954f53bd</id>
<content type='text'>
Optimise ext table dumping

OTP-15588
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Optimise ext table dumping

OTP-15588
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimise ext table dumping</title>
<updated>2019-01-22T11:27:38+00:00</updated>
<author>
<name>Dániel Szoboszlay</name>
<email>daniel.szoboszlay@klarna.com</email>
</author>
<published>2019-01-04T14:26:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=69bff908293f00e242a8f0776efff0c3765ce235'/>
<id>69bff908293f00e242a8f0776efff0c3765ce235</id>
<content type='text'>
The original algorithm first grouped ops in a commit by ext engine
type via folding over the list with orddict:append/3, that resulted in
an O(n^2) algorithm.

However, grouping the ops is not needed, the ops can be dispatched to
insert_op/6 one-by-one, after looking up the storage semantics of
their respective engine. This is a much cheaper algorithm, assuming
looking up the storage semantics is cheap (which should be).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The original algorithm first grouped ops in a commit by ext engine
type via folding over the list with orddict:append/3, that resulted in
an O(n^2) algorithm.

However, grouping the ops is not needed, the ops can be dispatched to
insert_op/6 one-by-one, after looking up the storage semantics of
their respective engine. This is a much cheaper algorithm, assuming
looking up the storage semantics is cheap (which should be).
</pre>
</div>
</content>
</entry>
</feed>
