<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/couchdb.git/src/ebtree, branch devnode-boot-script</title>
<subtitle>github.com: apache/couchdb.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/'/>
<entry>
<title>Update README.md</title>
<updated>2021-01-15T11:46:53+00:00</updated>
<author>
<name>Robert Newson</name>
<email>rnewson@apache.org</email>
</author>
<published>2021-01-15T11:46:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=b2a34dc1139318312d01e328d6585e674ea716c5'/>
<id>b2a34dc1139318312d01e328d6585e674ea716c5</id>
<content type='text'>
1. The caching effort was a bust and has been removed. 2) chunkify can be done externally with a custom persist_fun.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. The caching effort was a bust and has been removed. 2) chunkify can be done externally with a custom persist_fun.</pre>
</div>
</content>
</entry>
<entry>
<title>Assure that all node ids are the same length</title>
<updated>2020-11-12T23:27:46+00:00</updated>
<author>
<name>Robert Newson</name>
<email>rnewson@apache.org</email>
</author>
<published>2020-11-12T23:27:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=263efd21d3e8f8e9c15bcbfd5866ec55cee10336'/>
<id>263efd21d3e8f8e9c15bcbfd5866ec55cee10336</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid deleting UUID keys that start with zeros</title>
<updated>2020-11-12T22:59:18+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-11-12T22:57:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=e11ab46a16a2fd9ecef3bc813e2d73a4ff84888d'/>
<id>e11ab46a16a2fd9ecef3bc813e2d73a4ff84888d</id>
<content type='text'>
Any ebtree that uses chunked key encoding will accidentally wipe out any
nodes that have a UUID with more than one leading zero byte.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Any ebtree that uses chunked key encoding will accidentally wipe out any
nodes that have a UUID with more than one leading zero byte.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove ebtree caching</title>
<updated>2020-11-10T20:09:32+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-11-10T17:44:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=8267950dc8055b883e599cd993e688de1cec3ab4'/>
<id>8267950dc8055b883e599cd993e688de1cec3ab4</id>
<content type='text'>
The ebtree caching layer does not work correctly in conjunction with
FoundationDB transaction retry semantics. If we incorrectly cache nodes
that are not actually read from FoundationDB, a retried transaction will
rely on incorrectly cached state and corrupt the ebtree persisted in
FoundationDB.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ebtree caching layer does not work correctly in conjunction with
FoundationDB transaction retry semantics. If we incorrectly cache nodes
that are not actually read from FoundationDB, a retried transaction will
rely on incorrectly cached state and corrupt the ebtree persisted in
FoundationDB.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug in ebtree:umerge_members/4</title>
<updated>2020-09-17T18:53:51+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-09-16T19:23:51+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=39aa7423b2e79d9859f8626b1678636dba738c9f'/>
<id>39aa7423b2e79d9859f8626b1678636dba738c9f</id>
<content type='text'>
Caught during Elixir tests. I've added a unit test to `ebtree.erl` to
ensure we don't regress in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Caught during Elixir tests. I've added a unit test to `ebtree.erl` to
ensure we don't regress in the future.
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable node validation in production</title>
<updated>2020-09-03T18:31:32+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-09-03T17:44:24+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=b55afbddc0013e3fff6f8ca0713d4f0f35b6eda0'/>
<id>b55afbddc0013e3fff6f8ca0713d4f0f35b6eda0</id>
<content type='text'>
This keeps validation during tests but disables the validation during
production to avoid the overhead of collation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This keeps validation during tests but disables the validation during
production to avoid the overhead of collation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize umerge_members</title>
<updated>2020-09-03T18:31:32+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-08-27T16:26:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=2dd85afd59d409617b974ca07924c22ec2979c50'/>
<id>2dd85afd59d409617b974ca07924c22ec2979c50</id>
<content type='text'>
Using lists:umerge/3 adds extra invocations of the collation algorithm
because its using `=&lt;` semantics when ebtree collations are capable of
producing `lt, eq, gt` results.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using lists:umerge/3 adds extra invocations of the collation algorithm
because its using `=&lt;` semantics when ebtree collations are capable of
producing `lt, eq, gt` results.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement caching of immutable ebtree nodes</title>
<updated>2020-09-03T18:31:32+00:00</updated>
<author>
<name>Robert Newson</name>
<email>rnewson@apache.org</email>
</author>
<published>2020-08-28T16:33:35+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=02e59140b5158ca1105f09ec24ba799426b88e1e'/>
<id>02e59140b5158ca1105f09ec24ba799426b88e1e</id>
<content type='text'>
Inner nodes of the B+Tree are now immutable so that they can be cached.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Inner nodes of the B+Tree are now immutable so that they can be cached.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement ebtree:lookup_multi/3</title>
<updated>2020-09-03T18:31:32+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-08-21T18:29:42+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=3e969fcd4d58ba18ae1a852ea03fc3a2d0bceb90'/>
<id>3e969fcd4d58ba18ae1a852ea03fc3a2d0bceb90</id>
<content type='text'>
This allows looking up multiple keys simultaneously which reduces the
amount of overhead due to node serialization and collation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows looking up multiple keys simultaneously which reduces the
amount of overhead due to node serialization and collation.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement ebtree:insert_multi/3</title>
<updated>2020-09-03T18:31:32+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2020-08-18T19:58:47+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=3acb20dcba3991fb6ea145041555b37c567fcbb3'/>
<id>3acb20dcba3991fb6ea145041555b37c567fcbb3</id>
<content type='text'>
This allows for batch insertion of keys in order to minimize node
serialization and collation costs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows for batch insertion of keys in order to minimize node
serialization and collation costs.
</pre>
</div>
</content>
</entry>
</feed>
