changelog shortlog graph tags branches changeset files revisions annotate raw help

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

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