Coverage report: /home/ellis/comp/core/ffi/rocksdb/vars.lisp

KindCoveredAll%
expression1888 20.5
branch00nil
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; rocksdb/vars.lisp --- RocksDB FFI Variables
2
 
3
 ;;
4
 
5
 ;;; Code:
6
 (in-package :rocksdb)
7
 
8
 (defmacro %svec (&body syms)
9
   `(map 'vector 
10
         (lambda (x) (string-downcase (symbol-name x)))
11
         ',@(list syms)))
12
 
13
 ;;; Callbacks
14
 (defvar *rocksdb-destructor-callback* (alien-callable-function 'rocksdb-destructor))
15
 (defvar *rocksdb-delete-value-callback* (alien-callable-function 'rocksdb-delete-value))
16
 (defvar *rocksdb-name-callback* (alien-callable-function 'rocksdb-name))
17
 (defvar *rocksdb-log-callback* (alien-callable-function 'rocksdb-log-default))
18
 
19
 ;;; Opts
20
 (defvar *rocksdb-compression-backends*
21
   (%svec none snappy zlib bz2 lz4 lz4hc xpress zstd))
22
 
23
 (defun rocksdb-compression-backend (name)
24
   (position name *rocksdb-compression-backends* :test #'string=))
25
 
26
 (defvar *rocksdb-compaction-levels* '(level universal fifo))
27
 
28
 (defun rocksdb-compaction-level (name)
29
   (position name *rocksdb-compaction-levels* :test #'string=))
30
 
31
 (defvar *rocksdb-perf-metrics*
32
   (%svec
33
     user-key-comparison-count block-cache-hit-count
34
     block-read-count block-read-byte
35
     block-read-time block-checksum-time
36
     block-decompress-time get-read-bytes
37
     multiget-read-bytes iter-read-bytes
38
     internal-key-skipped-count internal-delete-skipped-count
39
     internal-recent-skipped-count internal-merge-count
40
     get-snapshot-time get-from-memtable-time
41
     get-from-memtable-count get-post-process-time
42
     get-from-output-files-time seek-on-memtable-time
43
     seek-on-memtable-count next-on-memtable-count
44
     prev-on-memtable-count seek-child-seek-time
45
     seek-child-seek-count seek-min-heap-time
46
     seek-max-heap-time seek-internal-seek-time
47
     find-next-user-entry-time write-wal-time
48
     write-memtable-time write-delay-time
49
     write-pre-and-post-process-time db-mutex-lock-nanos
50
     db-condition-wait-nanos merge-operator-time-nanos
51
     read-index-block-nanos read-filter-block-nanos
52
     new-table-block-iter-nanos new-table-iterator-nanos
53
     block-seek-nanos find-table-nanos
54
     bloom-memtable-hit-count bloom-memtable-miss-count
55
     bloom-sst-hit-count bloom-sst-miss-count
56
     key-lock-wait-time key-lock-wait-count
57
     env-new-sequential-file-nanos env-new-random-access-file-nanos
58
     env-new-writable-file-nanos env-reuse-writable-file-nanos
59
     env-new-random-rw-file-nanos env-new-directory-nanos
60
     env-file-exists-nanos env-get-children-nanos
61
     env-get-children-file-attributes-nanos env-delete-file-nanos
62
     env-create-dir-nanos env-create-dir-if-missing-nanos
63
     env-delete-dir-nanos env-get-file-size-nanos
64
     env-get-file-modification-time-nanos env-rename-file-nanos
65
     env-link-file-nanos env-lock-file-nanos
66
     env-unlock-file-nanos env-new-logger-nanos
67
     number-async-seek blob-cache-hit-count
68
     blob-read-count blob-read-byte
69
     blob-read-time blob-checksum-time
70
     blob-decompress-time internal-range-del-reseek-count
71
     block-read-cpu-time total-metric-count))
72
 
73
 (defvar *rocksdb-perf-levels*
74
   (%svec uninitialized disable enable-count enable-time-except-for-mutex enable-time out-of-bounds))
75
 
76
 (defun rocksdb-perf-level (name)
77
   (position name *rocksdb-perf-levels* :test #'string=))
78
 
79
 (defvar *rocksdb-statistics-levels*
80
   (%svec disable-all except-tickers except-histogram-or-timers
81
     except-timers except-detailed-timers except-time-for-mutex
82
     all))
83
 
84
 (defun rocksdb-statistics-level (name)
85
   (position name *rocksdb-statistics-levels* :test #'string=))
86
 
87
 (defvar *rocksdb-set-only-options*
88
   (%svec block-based-table-factory parallelism compression-options
89
     merge-operator db-log-dir wal-dir wal-ttl-seconds wal-size-limit-mb
90
     memtable-vector-rep prepare-for-bulk-load universal-compaction-options
91
     hash-skip-list-rep plain-table-factory min-level-to-compress
92
     ratelimiter row-cache prefix-extractor))
93
 
94
 (defvar *rocksdb-options*
95
   (%svec create-if-missing create-missing-column-families error-if-exists
96
     paranoid-checks info-log-level write-buffer-size db-write-buffer-size
97
     max-open-files max-file-opening-threads max-total-wal-size
98
     compression-options-zstd-max-train-bytes compression-options-max-dict-buffer-bytes
99
     compression-options-parallel-threads compression-options-use-zstd-dict-trainer
100
     num-levels level0-file-num-compaction-trigger level0-slowdown-writes-trigger
101
     level0-stop-writes-trigger target-file-size-base target-file-size-multiplier 
102
     max-bytes-for-level-base level-compaction-dynamic-level-bytes max-bytes-for-level-multiplier
103
     compaction-pri
104
     allow-ingest-behind statistics-level
105
     skip-stats-update-on-db-open skip-checking-sst-file-sizes-on-db-open enable-blob-files
106
     min-blob-size blob-file-size blob-compression-type enable-blob-gc blob-gc-age-cutoff
107
     blob-gc-force-threshold blob-compaction-readahead-size blob-file-starting-level
108
     ;; deprecated: max-write-buffer-number-to-maintain
109
     max-write-buffer-number min-write-buffer-number-to-merge memtable-op-scan-flush-trigger
110
     max-write-buffer-size-to-maintain enable-pipelined-write unordered-write max-subcompactions
111
     max-background-jobs max-background-compactions max-background-flushes max-log-file-size
112
     log-file-time-to-roll keep-log-file-num recycle-log-file-num soft-pending-compaction-bytes-limit
113
     hard-pending-compaction-bytes-limit max-manifest-file-size table-cache-numshardbits arena-block-size
114
     use-fsync manifest-preallocation-size allow-mmap-reads
115
     allow-mmap-writes use-direct-reads use-direct-io-for-flush-and-compaction is-fd-close-on-exec
116
     stats-dump-period-sec stats-persist-period-sec advise-random-on-open
117
     use-adaptive-mutex bytes-per-sync wal-bytes-per-sync writable-file-max-buffer-size
118
     allow-concurrent-memtable-write enable-write-thread-adaptive-yield max-sequential-skip-in-iterations
119
     disable-auto-compactions optimize-filters-for-hits delete-obsolete-files-period-micros
120
     memtable-prefix-bloom-size-ratio max-compaction-bytes
121
     memtable-huge-page-size
122
     max-successive-merges bloom-locality inplace-update-support inplace-update-num-locks
123
     report-bg-io-stats avoid-unnecessary-blocking-io experimental-mempurge-threshold
124
     wal-recovery-mode compression bottommost-compression compaction-style 
125
     atomic-flush manual-wal-flush wal-compression
126
     prepopulate-blob-cache)
127
   "Provides early list of options for macros to populate.")
128
 
129
 (defvar *rocksdb-set-only-readoptions*
130
   (%svec snapshot iterate-upper-bound iterate-lower-bound readahead-size
131
     prefix-same-as-start ignore-range-deletions timestamp iter-start-ts auto-readahead-size))
132
 
133
 (defvar *rocksdb-readoptions*
134
   (%svec verify-checksums fill-cache read-tier tailing total-order-seek skippable-internal-keys
135
     purge-on-iterator-cleanup deadline io-timeout async-io))
136
 
137
 (defvar *rocksdb-writeoptions*
138
   (%svec sync disable-wal ignore-missing-column-families
139
     no-slowdown low-pri memtable-insert-hint-per-batch))
140
 
141
 (defvar *rocksdb-flushoptions* (%svec wait))
142
 (defvar *rocksdb-lru-cache-options*)
143
 (defvar *rocksdb-compactoptions* 
144
   (%svec exclusive-manual-compaction 
145
          bottommost-level-compaction 
146
          change-level 
147
          target-level
148
          target-path-id
149
          allow-write-stall
150
          max-subcompactions))
151
 
152
 (defvar *rocksdb-ingestexternalfileoptions*
153
   (%svec move-files snapshot-consistency allow-global-seqno allow-blocking-flush 
154
     ingest-behind fail-if-not-bottommost-level))
155
 (defvar *rocksdb-set-only-backup-engine-options* (%svec backup-dir env))
156
 (defvar *rocksdb-backup-engine-options*
157
   (%svec share-table-files sync destroy-old-data backup-log-files backup-rate-limit
158
     restore-rate-limit callback-trigger-interval-size max-valid-backups-to-open
159
     shared-files-with-checksum-naming))
160
 
161
 ;; (defvar *rocksdb-intgestexternalfileoptions*)
162
 
163
 (defvar *rocksdb-column-family-metadata*
164
   #("size" "file-count" "name" "level-count" "level-metadata"))
165
 
166
 (defvar *rocksdb-level-metadata*
167
   #("level" "size" "file-count" "sst-file-metadata"))
168
 
169
 (defvar *rocksdb-sst-file-metadata*
170
   #("relative-filename" "directory" "size" "smallestkey" "largestkey"))
171
 
172
 (defvar *rocksdb-properties*
173
   #("rocksdb.num-files-at-level0"
174
     "rocksdb.compression-ration-at-level0"
175
     "rocksdb.aggregated-table-properties-at-level0"    
176
     "rocksdb.stats" "rocksdb.sstables"
177
     "rocksdb.cfstats" "rocksdb.cfstats-no-file-histogram"
178
     "rocksdb.cf-file-histogram" "rocksdb.cf-write-stall-stats"
179
     "rocksdb.db-write-stall-stats" "rocksdb.dbstats"
180
     "rocksdb.levelstats" "rocksdb.block-cache-entry-stats"
181
     "rocksdb.fast-block-cache-entry-stats" "rocksdb.num-immutable-mem-table"
182
     "rocksdb.num-immutable-mem-table-flushed" "rocksdb.mem-table-flush-pending"
183
     "rocksdb.num-running-flushes" "rocksdb.compaction-pending"
184
     "rocksdb.num-running-compactions" "rocksdb.background-errors"
185
     "rocksdb.cur-size-active-mem-table" "rocksdb.cur-size-all-mem-tables"
186
     "rocksdb.size-all-mem-tables" "rocksdb.num-entries-active-mem-table"
187
     "rocksdb.num-entries-imm-mem-tables" "rocksdb.num-deletes-active-mem-table"
188
     "rocksdb.num-deletes-imm-mem-tables" "rocksdb.estimate-num-keys"
189
     "rocksdb.estimate-table-readers-mem" "rocksdb.is-file-deletions-enabled"
190
     "rocksdb.num-snapshots" "rocksdb.oldest-snapshot-time"
191
     "rocksdb.oldest-snapshot-sequence" "rocksdb.num-live-versions"
192
     "rocksdb.current-super-version-number" "rocksdb.estimate-live-data-size"
193
     "rocksdb.min-log-number-to-keep" "rocksdb.min-obsolete-sst-number-to-keep"
194
     "rocksdb.total-sst-files-size" "rocksdb.live-sst-files-size"
195
     "rocksdb-obsolete-sst-files-size" "rocksdb.live-sst-files-size-at-temperature"
196
     "rocksdb.base-level" "rocksdb.estimate-pending-compaction-bytes"
197
     "rocksdb.aggregated-table-properties" "rocksdb.actual-delayed-write-rate"
198
     "rocksdb.is-write-stopped" "rocksdb.estimate-oldest-key-time"
199
     "rocksdb.block-cache-capacity" "rocksdb.block-cache-pinned-usage"
200
     "rocksdb.options-statistics" "rocksdb-num-blob-files"
201
     "rocksdb.blob-stats" "rocksdb.total-blob-file-size"
202
     "rocksdb.live-blob-file-size" "rocksdb.live-blob-file-garbage-size"
203
     "rocksdb.blob-cache-capacity" "rocksdb.blob-cache-usage"
204
     "rocksdb.blob-cache-pinned-usage")
205
   "Vector of unique property prefixes for use with ROCKSDB-PROPERTY-VALUE.")
206
 
207
 (defun rocksdb-num-files-at-level (n)
208
   (format nil "rocksdb.num-files-at-level~A" n))
209
 
210
 (defun rocksdb-compression-ratio-at-level (n)
211
   (format nil "rocksdb.compression-ratio-at-level~A" n))
212
 
213
 (defun rocksdb-aggregated-table-properties-at-level (n)
214
   (format nil "rocksdb.aggregated-table-properties-at-level~A" n))