Skip to content

Commit 1ead30e

Browse files
committed
Merge feature/extended-statistics: Add extended statistics support (45 tickers + 13 histograms)
2 parents bda8828 + cc38d53 commit 1ead30e

18 files changed

+3121
-10
lines changed

c_src/atoms.h

Lines changed: 153 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ extern ERL_NIF_TERM ATOM_BLOB_GC_FORCE_THRESHOLD;
7575
extern ERL_NIF_TERM ATOM_BLOB_COMPACTION_READAHEAD_SIZE;
7676
extern ERL_NIF_TERM ATOM_BLOB_FILE_STARTING_LEVEL;
7777
extern ERL_NIF_TERM ATOM_BLOB_CACHE;
78-
extern ERL_NIF_TERM ATOM_PREPOLUATE_BLOB_CACHE;
78+
extern ERL_NIF_TERM ATOM_PREPOPULATE_BLOB_CACHE;
7979

8080
// Related to CFOptions.CompressionOptions
8181
extern ERL_NIF_TERM ATOM_BOTTOMMOST_COMPRESSION;
@@ -188,6 +188,7 @@ extern ERL_NIF_TERM ATOM_SNAPSHOT;
188188
extern ERL_NIF_TERM ATOM_BAD_SNAPSHOT;
189189
extern ERL_NIF_TERM ATOM_AUTO_REFRESH_ITERATOR_WITH_SNAPSHOT;
190190
extern ERL_NIF_TERM ATOM_AUTO_READAHEAD_SIZE;
191+
extern ERL_NIF_TERM ATOM_ALLOW_UNPREPARED_VALUE;
191192

192193

193194
// Related to Write Options
@@ -352,6 +353,143 @@ extern ERL_NIF_TERM ATOM_STATS_EXCEPT_TIME_FOR_MUTEX;
352353
extern ERL_NIF_TERM ATOM_STATS_ALL;
353354
extern ERL_NIF_TERM ATOM_STATS_LEVEL;
354355

356+
// BlobDB Statistics Tickers
357+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_PUT;
358+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_WRITE;
359+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_GET;
360+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_MULTIGET;
361+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_SEEK;
362+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_NEXT;
363+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_PREV;
364+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_KEYS_WRITTEN;
365+
extern ERL_NIF_TERM ATOM_BLOB_DB_NUM_KEYS_READ;
366+
extern ERL_NIF_TERM ATOM_BLOB_DB_BYTES_WRITTEN;
367+
extern ERL_NIF_TERM ATOM_BLOB_DB_BYTES_READ;
368+
extern ERL_NIF_TERM ATOM_BLOB_DB_WRITE_INLINED;
369+
extern ERL_NIF_TERM ATOM_BLOB_DB_WRITE_INLINED_TTL;
370+
extern ERL_NIF_TERM ATOM_BLOB_DB_WRITE_BLOB;
371+
extern ERL_NIF_TERM ATOM_BLOB_DB_WRITE_BLOB_TTL;
372+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_BYTES_WRITTEN;
373+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_BYTES_READ;
374+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_SYNCED;
375+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_INDEX_EXPIRED_COUNT;
376+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_INDEX_EXPIRED_SIZE;
377+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_INDEX_EVICTED_COUNT;
378+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_INDEX_EVICTED_SIZE;
379+
extern ERL_NIF_TERM ATOM_BLOB_DB_GC_NUM_FILES;
380+
extern ERL_NIF_TERM ATOM_BLOB_DB_GC_NUM_NEW_FILES;
381+
extern ERL_NIF_TERM ATOM_BLOB_DB_GC_FAILURES;
382+
extern ERL_NIF_TERM ATOM_BLOB_DB_GC_NUM_KEYS_RELOCATED;
383+
extern ERL_NIF_TERM ATOM_BLOB_DB_GC_BYTES_RELOCATED;
384+
extern ERL_NIF_TERM ATOM_BLOB_DB_FIFO_NUM_FILES_EVICTED;
385+
extern ERL_NIF_TERM ATOM_BLOB_DB_FIFO_NUM_KEYS_EVICTED;
386+
extern ERL_NIF_TERM ATOM_BLOB_DB_FIFO_BYTES_EVICTED;
387+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_MISS;
388+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_HIT;
389+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_ADD;
390+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_ADD_FAILURES;
391+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_BYTES_READ;
392+
extern ERL_NIF_TERM ATOM_BLOB_DB_CACHE_BYTES_WRITE;
393+
394+
// BlobDB Statistics Histograms
395+
extern ERL_NIF_TERM ATOM_BLOB_DB_KEY_SIZE;
396+
extern ERL_NIF_TERM ATOM_BLOB_DB_VALUE_SIZE;
397+
extern ERL_NIF_TERM ATOM_BLOB_DB_WRITE_MICROS;
398+
extern ERL_NIF_TERM ATOM_BLOB_DB_GET_MICROS;
399+
extern ERL_NIF_TERM ATOM_BLOB_DB_MULTIGET_MICROS;
400+
extern ERL_NIF_TERM ATOM_BLOB_DB_SEEK_MICROS;
401+
extern ERL_NIF_TERM ATOM_BLOB_DB_NEXT_MICROS;
402+
extern ERL_NIF_TERM ATOM_BLOB_DB_PREV_MICROS;
403+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_WRITE_MICROS;
404+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_READ_MICROS;
405+
extern ERL_NIF_TERM ATOM_BLOB_DB_BLOB_FILE_SYNC_MICROS;
406+
extern ERL_NIF_TERM ATOM_BLOB_DB_COMPRESSION_MICROS;
407+
extern ERL_NIF_TERM ATOM_BLOB_DB_DECOMPRESSION_MICROS;
408+
409+
// Core Operation Histograms
410+
extern ERL_NIF_TERM ATOM_DB_GET;
411+
extern ERL_NIF_TERM ATOM_DB_WRITE;
412+
extern ERL_NIF_TERM ATOM_DB_MULTIGET;
413+
extern ERL_NIF_TERM ATOM_DB_SEEK;
414+
extern ERL_NIF_TERM ATOM_COMPACTION_TIME;
415+
extern ERL_NIF_TERM ATOM_FLUSH_TIME;
416+
417+
// I/O and Sync Histograms
418+
extern ERL_NIF_TERM ATOM_SST_READ_MICROS;
419+
extern ERL_NIF_TERM ATOM_SST_WRITE_MICROS;
420+
extern ERL_NIF_TERM ATOM_TABLE_SYNC_MICROS;
421+
extern ERL_NIF_TERM ATOM_WAL_FILE_SYNC_MICROS;
422+
extern ERL_NIF_TERM ATOM_BYTES_PER_READ;
423+
extern ERL_NIF_TERM ATOM_BYTES_PER_WRITE;
424+
425+
// Transaction Histogram
426+
extern ERL_NIF_TERM ATOM_NUM_OP_PER_TRANSACTION;
427+
428+
// Compaction Statistics Tickers
429+
extern ERL_NIF_TERM ATOM_COMPACT_READ_BYTES;
430+
extern ERL_NIF_TERM ATOM_COMPACT_WRITE_BYTES;
431+
extern ERL_NIF_TERM ATOM_FLUSH_WRITE_BYTES;
432+
extern ERL_NIF_TERM ATOM_COMPACTION_KEY_DROP_NEWER_ENTRY;
433+
extern ERL_NIF_TERM ATOM_COMPACTION_KEY_DROP_OBSOLETE;
434+
extern ERL_NIF_TERM ATOM_COMPACTION_KEY_DROP_RANGE_DEL;
435+
extern ERL_NIF_TERM ATOM_COMPACTION_KEY_DROP_USER;
436+
extern ERL_NIF_TERM ATOM_COMPACTION_CANCELLED;
437+
extern ERL_NIF_TERM ATOM_NUMBER_SUPERVERSION_ACQUIRES;
438+
extern ERL_NIF_TERM ATOM_NUMBER_SUPERVERSION_RELEASES;
439+
440+
// Read/Write Operation Tickers
441+
extern ERL_NIF_TERM ATOM_NUMBER_KEYS_WRITTEN;
442+
extern ERL_NIF_TERM ATOM_NUMBER_KEYS_READ;
443+
extern ERL_NIF_TERM ATOM_NUMBER_KEYS_UPDATED;
444+
extern ERL_NIF_TERM ATOM_BYTES_WRITTEN;
445+
extern ERL_NIF_TERM ATOM_BYTES_READ;
446+
extern ERL_NIF_TERM ATOM_ITER_BYTES_READ;
447+
extern ERL_NIF_TERM ATOM_NUMBER_DB_SEEK;
448+
extern ERL_NIF_TERM ATOM_NUMBER_DB_NEXT;
449+
extern ERL_NIF_TERM ATOM_NUMBER_DB_PREV;
450+
extern ERL_NIF_TERM ATOM_NUMBER_DB_SEEK_FOUND;
451+
extern ERL_NIF_TERM ATOM_NUMBER_DB_NEXT_FOUND;
452+
extern ERL_NIF_TERM ATOM_NUMBER_DB_PREV_FOUND;
453+
454+
// Block Cache Statistics Tickers
455+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_MISS;
456+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_HIT;
457+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_ADD;
458+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_ADD_FAILURES;
459+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_INDEX_MISS;
460+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_INDEX_HIT;
461+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_FILTER_MISS;
462+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_FILTER_HIT;
463+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_DATA_MISS;
464+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_DATA_HIT;
465+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_BYTES_READ;
466+
extern ERL_NIF_TERM ATOM_BLOCK_CACHE_BYTES_WRITE;
467+
468+
// Memtable and Stall Statistics Tickers
469+
extern ERL_NIF_TERM ATOM_MEMTABLE_HIT;
470+
extern ERL_NIF_TERM ATOM_MEMTABLE_MISS;
471+
extern ERL_NIF_TERM ATOM_STALL_MICROS;
472+
extern ERL_NIF_TERM ATOM_WRITE_DONE_BY_SELF;
473+
extern ERL_NIF_TERM ATOM_WRITE_DONE_BY_OTHER;
474+
extern ERL_NIF_TERM ATOM_WAL_FILE_SYNCED;
475+
476+
// Transaction Statistics Tickers
477+
extern ERL_NIF_TERM ATOM_TXN_PREPARE_MUTEX_OVERHEAD;
478+
extern ERL_NIF_TERM ATOM_TXN_OLD_COMMIT_MAP_MUTEX_OVERHEAD;
479+
extern ERL_NIF_TERM ATOM_TXN_DUPLICATE_KEY_OVERHEAD;
480+
extern ERL_NIF_TERM ATOM_TXN_SNAPSHOT_MUTEX_OVERHEAD;
481+
extern ERL_NIF_TERM ATOM_TXN_GET_TRY_AGAIN;
482+
483+
// Histogram result keys
484+
extern ERL_NIF_TERM ATOM_MEDIAN;
485+
extern ERL_NIF_TERM ATOM_PERCENTILE95;
486+
extern ERL_NIF_TERM ATOM_PERCENTILE99;
487+
extern ERL_NIF_TERM ATOM_AVERAGE;
488+
extern ERL_NIF_TERM ATOM_STANDARD_DEVIATION;
489+
extern ERL_NIF_TERM ATOM_MAX;
490+
extern ERL_NIF_TERM ATOM_COUNT;
491+
extern ERL_NIF_TERM ATOM_SUM;
492+
355493
// Pessimistic Transaction DB Options
356494
extern ERL_NIF_TERM ATOM_MAX_NUM_LOCKS;
357495
extern ERL_NIF_TERM ATOM_NUM_STRIPES;
@@ -369,6 +507,20 @@ extern ERL_NIF_TERM ATOM_TIMED_OUT;
369507
extern ERL_NIF_TERM ATOM_EXPIRED;
370508
extern ERL_NIF_TERM ATOM_TRY_AGAIN;
371509

510+
// Column Family/Blob Metadata
511+
extern ERL_NIF_TERM ATOM_SIZE;
512+
extern ERL_NIF_TERM ATOM_FILE_COUNT;
513+
extern ERL_NIF_TERM ATOM_NAME;
514+
// ATOM_BLOB_FILE_SIZE already declared in CFOptions blob section
515+
extern ERL_NIF_TERM ATOM_BLOB_FILES;
516+
extern ERL_NIF_TERM ATOM_BLOB_FILE_NUMBER;
517+
extern ERL_NIF_TERM ATOM_BLOB_FILE_NAME;
518+
extern ERL_NIF_TERM ATOM_BLOB_FILE_PATH;
519+
extern ERL_NIF_TERM ATOM_TOTAL_BLOB_COUNT;
520+
extern ERL_NIF_TERM ATOM_TOTAL_BLOB_BYTES;
521+
extern ERL_NIF_TERM ATOM_GARBAGE_BLOB_COUNT;
522+
extern ERL_NIF_TERM ATOM_GARBAGE_BLOB_BYTES;
523+
372524
} // namespace erocksdb
373525

374526

0 commit comments

Comments
 (0)