nostrdb

an unfairly fast embedded nostr database backed by lmdb
git clone git://jb55.com/nostrdb
Log | Files | Refs | Submodules | README | LICENSE

commit 56952c8e629b016336399a700e304ba180e1669c
parent 464649828f88bb844caf573c4c82c47478f9c932
Author: William Casarin <jb55@jb55.com>
Date:   Tue, 14 Nov 2023 10:25:22 -0800

ndb/stat: include totals in stat output

Diffstat:
Mndb.c | 14++++++++++++--
Mnostrdb.c | 2+-
Mnostrdb.h | 1+
3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/ndb.c b/ndb.c @@ -24,16 +24,26 @@ static void print_stats(struct ndb_stat *stat) const char *name; struct ndb_stat_counts *c; + struct ndb_stat_counts total; + ndb_stat_counts_init(&total); + printf("name\tcount\tkey_bytes\tvalue_bytes\ttotal_bytes\n"); - printf("dbs\n---\n"); + printf("---\ndbs\n---\n"); for (i = 0; i < NDB_DBS; i++) { name = ndb_db_name(i); + total.count += stat->dbs[i].count; + total.key_size += stat->dbs[i].key_size; + total.value_size += stat->dbs[i].value_size; + printf("%s\t", name); print_stat_counts(&stat->dbs[i]); } - printf("kinds\n-----\n"); + printf("total\t"); + print_stat_counts(&total); + + printf("-----\nkinds\n-----\n"); for (i = 0; i < NDB_CKIND_COUNT; i++) { c = &stat->common_kinds[i]; if (c->count == 0) diff --git a/nostrdb.c b/nostrdb.c @@ -2909,7 +2909,7 @@ int ndb_builder_new_tag(struct ndb_builder *builder) return cursor_push_tag(&builder->note_cur, &tag); } -static void ndb_stat_counts_init(struct ndb_stat_counts *counts) +void ndb_stat_counts_init(struct ndb_stat_counts *counts) { counts->count = 0; counts->key_size = 0; diff --git a/nostrdb.h b/nostrdb.h @@ -271,6 +271,7 @@ int ndb_builder_push_tag_str(struct ndb_builder *builder, const char *str, int l // stats int ndb_stat(struct ndb *ndb, struct ndb_stat *stat); +void ndb_stat_counts_init(struct ndb_stat_counts *counts); static inline struct ndb_str ndb_note_str(struct ndb_note *note, union ndb_packed_str *pstr)