changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/rocksdb/vars.lisp

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