Implement an ETS-basd couch_lru 239/head
authorNick Vatamaniuc <vatamane@apache.org>
Wed, 15 Mar 2017 18:06:25 +0000 (14:06 -0400)
committerBenjamin Bastian <benjamin.bastian@gmail.com>
Fri, 17 Mar 2017 19:16:40 +0000 (12:16 -0700)
commit016e1aa0ef4db0bbf47a28a2cce48b85200702d6
treec7d58be9ca45061f2a1dc8f4c158c92c400fe39a
parentc50a8cda6b0b669dbc987ebd76362620077822fe
Implement an ETS-basd couch_lru

Use a monotonicaly incrementing counter instead of `erlang:now()`. We don't
technically need to time-based functionality and just want to know relative
insertion order.

Instead of gb_tree, use an ordered_set ETS. This keep items sorted by their
update order, with most recent ones at the bottom.

An set ETS replaces the dictionary which maintains a mapping from database
names to their entry in updates table.

Interface is the same as the old couch_lru, so it is a direct swap in.

Thanks to Eric Avdey for intial version of test module.

COUCHDB-3326
src/couch_lru.erl
test/couch_lru_tests.erl [new file with mode: 0644]