Github user nickva commented on the issue:
https://github.com/apache/couchdb-couch/pull/239
@davisp @eiri
I tried a 5 minute eprof run. At default 500 max_dbs_open. Cluster had 20
continuous 1-to-n replications.
```
==== master + ETS lru (this PR)
eprof:start_profiling([couch_server], {couch_lru, '_', '_'}),
timer:sleep(300000), eprof:stop_profiling(), eprof:analyze(), eprof:stop().
****** Process <4641.251.0> -- 100.00 % of profiled time ***
FUNCTION CALLS % TIME [uS / CALLS]
-------- ----- ------- ---- [----------]
couch_lru:insert/2 564 1.46 11437 [ 20.28]
couch_lru:close_int/3 1800 5.36 42068 [ 23.37]
couch_lru:close/1 450 6.29 49341 [ 109.65]
couch_lru:update/2 26542 86.90 681987 [ 25.69]
--------------------- ----- ------- ------ [----------]
Total: 29356 100.00% 784833 [ 26.74]
==== master + monotonic counter
(https://github.com/cloudant/couchdb-couch/commit/4b49e71c14837c0f1b63e5d0ba2fea34c5fd997e)
eprof:start_profiling([couch_server], {couch_lru, '_', '_'}),
timer:sleep(300000), eprof:stop_profiling(), eprof:analyze(), eprof:stop().
****** Process <4641.251.0> -- 100.00 % of profiled time ***
FUNCTION CALLS % TIME [uS / CALLS]
-------- ----- ------- ---- [----------]
couch_lru:close_int/2 323 1.50 13817 [ 42.78]
couch_lru:insert/2 621 2.36 21723 [ 34.98]
couch_lru:close/1 320 3.90 35962 [ 112.38]
couch_lru:update/2 25953 92.24 849899 [ 32.75]
--------------------- ----- ------- ------ [----------]
Total: 27217 100.00% 921401 [ 33.85]
==== current master
eprof:start_profiling([couch_server], {couch_lru, '_', '_'}),
timer:sleep(300000), eprof:stop_profiling(), eprof:analyze(), eprof:stop().
****** Process <4641.251.0> -- 100.00 % of profiled time ***
FUNCTION CALLS % TIME [uS / CALLS]
-------- ----- ------- ---- [----------]
couch_lru:close_int/2 513 1.60 22893 [ 44.63]
couch_lru:insert/2 727 2.06 29407 [ 40.45]
couch_lru:close/1 507 3.90 55623 [ 109.71]
couch_lru:update/2 35114 92.44 1318808 [ 37.56]
--------------------- ----- ------- ------- [----------]
Total: 36861 100.00% 1426731 [ 38.71]
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---