<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/couchdb.git/test/javascript/tests/rewrite.js, 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>port rewrite and rewrite_js tests into elixir</title>
<updated>2020-10-07T07:13:30+00:00</updated>
<author>
<name>Juanjo Rodriguez</name>
<email>juanjo@apache.org</email>
</author>
<published>2020-07-23T06:26:36+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=b616cc17873bb45bdbe88efed6a93ecaafe39669'/>
<id>b616cc17873bb45bdbe88efed6a93ecaafe39669</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite ddoc_cache to improve performance</title>
<updated>2017-08-01T15:32:59+00:00</updated>
<author>
<name>Paul J. Davis</name>
<email>paul.joseph.davis@gmail.com</email>
</author>
<published>2017-06-16T18:29:47+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=939761b71830ec954701f94cb6df3dab6666a794'/>
<id>939761b71830ec954701f94cb6df3dab6666a794</id>
<content type='text'>
There were a couple issues with the previous ddoc_cache implementation
that made it possible to tip over the ddoc_cache_opener process. First,
there were a lot of messages flowing through a single gen_server. And
second, the cache relied on periodically evicting entries to ensure
proper behavior in not caching an entry forever after it had changed on
disk.

The new version makes two important changes. First, entries now have an
associated process that manages the cache entry. This process will
periodically refresh the entry and if the entry has changed or no longer
exists the process will remove its entry from cache.

The second major change is that the cache entry process directly mutates
the related ets table entries so that our performance is not dependent
on the speed of ets table mutations. Using a custom entry that does no
work the cache can now sustain roughly one million operations a second
with a twenty thousand clients fighting over a cache limited to one
thousand items. In production this means that cache performance will
likely be rate limited by other factors like loading design documents
from disk.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There were a couple issues with the previous ddoc_cache implementation
that made it possible to tip over the ddoc_cache_opener process. First,
there were a lot of messages flowing through a single gen_server. And
second, the cache relied on periodically evicting entries to ensure
proper behavior in not caching an entry forever after it had changed on
disk.

The new version makes two important changes. First, entries now have an
associated process that manages the cache entry. This process will
periodically refresh the entry and if the entry has changed or no longer
exists the process will remove its entry from cache.

The second major change is that the cache entry process directly mutates
the related ets table entries so that our performance is not dependent
on the speed of ets table mutations. Using a custom entry that does no
work the cache can now sustain roughly one million operations a second
with a twenty thousand clients fighting over a cache limited to one
thousand items. In production this means that cache performance will
likely be rate limited by other factors like loading design documents
from disk.
</pre>
</div>
</content>
</entry>
<entry>
<title>wipe all databases on test exit</title>
<updated>2017-07-07T16:38:13+00:00</updated>
<author>
<name>Joan Touzet</name>
<email>joant@atypical.net</email>
</author>
<published>2017-07-07T07:20:01+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=7885d80db6dbf4668c1b5b00c334de2942767dd4'/>
<id>7885d80db6dbf4668c1b5b00c334de2942767dd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix and re-enable many test cases</title>
<updated>2017-05-03T07:18:43+00:00</updated>
<author>
<name>Joan Touzet</name>
<email>joant@atypical.net</email>
</author>
<published>2017-05-03T07:18:43+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=235bd06564d00aba80f7bcd24ba1689d1de1d1eb'/>
<id>235bd06564d00aba80f7bcd24ba1689d1de1d1eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Deactivate rewrite tests</title>
<updated>2016-04-23T10:25:33+00:00</updated>
<author>
<name>sebastianro</name>
<email>sebastianro@apache.org</email>
</author>
<published>2016-04-14T18:00:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=0306da26cca2ed14dd0c226b3e18fa7b869d5567'/>
<id>0306da26cca2ed14dd0c226b3e18fa7b869d5567</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>JS test: update rewrite.js for 2.0</title>
<updated>2015-12-16T19:49:33+00:00</updated>
<author>
<name>Jan Lehnardt</name>
<email>jan@apache.org</email>
</author>
<published>2015-12-16T19:49:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=079a76874a59b4b747793752b89a2e912fa3026f'/>
<id>079a76874a59b4b747793752b89a2e912fa3026f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move JS tests to test/javascript/tests</title>
<updated>2014-12-10T11:07:01+00:00</updated>
<author>
<name>Jan Lehnardt</name>
<email>jan@apache.org</email>
</author>
<published>2014-10-10T18:46:08+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/couchdb.git/commit/?id=6a4893aabdb26eb957a4e57be91ff8d0152161f8'/>
<id>6a4893aabdb26eb957a4e57be91ff8d0152161f8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
