Michael Ströder wrote:
HI!
In my monitoring check I'd like to indicate how many entries are in a
database.
Currently I'm using the no-op search control without any filtering to
count the entries which is obviously a huge waste of CPU and I/O
ressources for just retrieving the raw number of DB entries.
Is it easily possible to access the id2e sub-DB and query number of entries?
Something like
mdb_stat -s id2e -e <db-path> | grep Entries
but from Python with python-lmdb or a similar module. (Yes, I know
subprocess module but I really hate invoking command-line tools from
Python.)
It's pretty trivial in py-lmdb.
####
import lmdb
env = lmdb.open('/tmp/test', max_dbs=2)
with env.begin() as txn:
subdb = env.open_db('id2e', txn=txn, create=False)
print txn.stat(subdb)
####
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/