changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: rocksdb opts

changeset 85: 1088a94a6673
parent 84: ecee0eb96f9f
child 86: 278fb1d6dfa8
author: ellis <ellis@rwest.io>
date: Fri, 08 Dec 2023 22:39:00 -0500
files: lisp/ffi/rocksdb/pkg.lisp lisp/ffi/rocksdb/tests.lisp
description: rocksdb opts
     1.1--- a/lisp/ffi/rocksdb/pkg.lisp	Fri Dec 08 21:05:11 2023 -0500
     1.2+++ b/lisp/ffi/rocksdb/pkg.lisp	Fri Dec 08 22:39:00 2023 -0500
     1.3@@ -58,8 +58,7 @@
     1.4 (5) All of the pointer arguments must be non-NULL.|#
     1.5 
     1.6 ;;; Code:
     1.7-(defpackage :rocksdb/pkg
     1.8-  (:nicknames :rocksdb)
     1.9+(defpackage :rocksdb
    1.10   (:use :cl :std/base :std/alien :std/fu :std/sym)
    1.11   (:import-from :std/fu :symb)
    1.12   (:export
    1.13@@ -268,7 +267,25 @@
    1.14    :rocksdb-wal-iter-valid
    1.15    :rocksdb-wal-iter-status
    1.16    :rocksdb-wal-iter-get-batch
    1.17-   :rocksdb-wal-iter-destroy))
    1.18+   :rocksdb-wal-iter-destroy
    1.19+   :rocksdb-backup-engine
    1.20+   :rocksdb-backup-engine-info
    1.21+   :rocksdb-backup-engine-options
    1.22+   :rocksdb-backup-engine-open
    1.23+   :rocksdb-backup-engine-create-new-backup
    1.24+   :rocksdb-backup-engine-restore-db-from-backup
    1.25+   :rocksdb-backup-engine-restore-db-from-latest-backup
    1.26+   :rocksdb-backup-engine-close
    1.27+   ;; transactions
    1.28+   :rocksdb-transaction
    1.29+   :rocksdb-transaction-options
    1.30+   :rocksdb-transactiondb
    1.31+   :rocksdb-transactiondb-options
    1.32+   :rocksdb-optimistictransactiondb
    1.33+   :rocksdb-optimistictransactiondb-options
    1.34+   :rocksdb-transactiondb-open
    1.35+   :rocksdb-transactiondb-close
    1.36+   :rocksdb-transaction-begin))
    1.37 
    1.38 (in-package :rocksdb)
    1.39 
    1.40@@ -368,18 +385,63 @@
    1.41 (define-opaque rocksdb-statistics-histogram-data)
    1.42 
    1.43 ;;; Opts
    1.44-(define-opt rocksdb-block-based-options 
    1.45-    (block-cache 
    1.46-     (* rocksdb-cache))
    1.47-  (cache-index-and-filter-blocks
    1.48-   (val c-string)))
    1.49+(eval-when (:compile-toplevel :load-toplevel :execute)
    1.50+          (define-opt rocksdb-block-based-options 
    1.51+              (block-cache 
    1.52+               (* rocksdb-cache))
    1.53+            (cache-index-and-filter-blocks
    1.54+             (val c-string))))
    1.55 
    1.56 (define-opt rocksdb-options
    1.57   create-if-missing
    1.58+  create-missing-column-families
    1.59+  error-if-exists
    1.60+  paranoid-checks
    1.61+  (info-log-level (val int))
    1.62+  (write-buffer-size (val size-t))
    1.63+  (db-write-buffer-size (val size-t))
    1.64+  (max-open-files (val int))
    1.65+  (max-file-opening-threads (val int))
    1.66+  (max-total-wal-size (n unsigned-long))
    1.67+  (compression-options (a int) (b int) (c int) (d int))
    1.68+  (compression-options-zstd-max-train-bytes (val int))
    1.69+  compression-options-use-zstd-dict-trainer
    1.70+  compression-options-parallel-threads
    1.71+  (compression-options-max-dict-buffer-bytes (val unsigned-long))
    1.72+  (num-levels (val int))
    1.73+  (level0-file-num-compaction-trigger (val int))
    1.74+  (level0-slowdown-writes-trigger (val int))
    1.75+  (level0-stop-writes-trigger (val int))
    1.76+  (target-file-size-base (val unsigned-long))
    1.77+  (target-file-size-multiplier (val int))
    1.78+  (max-bytes-for-level-base (val unsigned-long))
    1.79+  level-compaction-dynamic-level-bytes
    1.80+  (max-bytes-for-level-multiplier (val double))
    1.81   (block-based-table-factory
    1.82    (table-options (* rocksdb-block-based-table-options)))
    1.83   (allow-ingest-behind (val unsigned-char))
    1.84-  (merge-operator (comparator (* rocksdb-comparator))))
    1.85+  (merge-operator (comparator (* rocksdb-comparator)))
    1.86+  (statistics-level (level int))
    1.87+  (skip-stats-update-on-db-open (val unsigned-char))
    1.88+  (skip-checking-sst-filie-sizes-on-db-open (val unsigned-char))
    1.89+  (enable-blob-files (val unsigned-char))
    1.90+  (min-blob-size (val unsigned-long))
    1.91+  (blob-file-size (val unsigned-long))
    1.92+  (blob-compression-type (val int))
    1.93+  (enable-blob-gc (val unsigned-char))
    1.94+  (blob-gc-age-cutoff (val double))
    1.95+  (blob-gc-force-threshold (val double))
    1.96+  (blob-compaction-readahead-size (val unsigned-long))
    1.97+  (blob-file-starting-level (val int))
    1.98+  (prepopulate-blob-cache (val int)))
    1.99+
   1.100+(define-alien-routine rocksdb-options-enable-statistics void
   1.101+  (* rocksdb-options))
   1.102+;; (define-alien-routine rocksdb-options-set-db-paths void
   1.103+;;   (opt (* rocksdb-options)))
   1.104+
   1.105+(define-alien-routine rocksdb-options-set-blob-cache void
   1.106+  (opt (* rocksdb-options)) (blob-cache (* rocksdb-cache)))
   1.107 
   1.108 (define-opt rocksdb-writeoptions)
   1.109 (define-opt rocksdb-readoptions)
   1.110@@ -629,3 +691,49 @@
   1.111 (define-alien-routine rocksdb-iter-value (* char) 
   1.112   (iter (* rocksdb-iterator)) 
   1.113   (vlen-ptr (* size-t)))
   1.114+
   1.115+;;; Backup
   1.116+(def-with-errptr rocksdb-backup-engine-open
   1.117+  (* rocksdb-backup-engine)
   1.118+  (opts (* rocksdb-options))
   1.119+  (path (* char)))
   1.120+
   1.121+(def-with-errptr rocksdb-backup-engine-create-new-backup
   1.122+  void
   1.123+  (be (* rocksdb-backup-engine))
   1.124+  (db (* rocksdb)))
   1.125+
   1.126+(def-with-errptr rocksdb-backup-engine-restore-db-from-latest-backup
   1.127+  void
   1.128+  (be (* rocksdb-backup-engine))
   1.129+  (db-dir (* char))
   1.130+  (wal-dir (* char))
   1.131+  (res-opts (* rocksdb-restore-options)))
   1.132+
   1.133+(def-with-errptr rocksdb-backup-engine-restore-db-from-backup
   1.134+  void
   1.135+  (be (* rocksdb-backup-engine))
   1.136+  (db-dir (* char))
   1.137+  (wal-dir (* char))
   1.138+  (res-opts (* rocksdb-restore-options))
   1.139+  (backup-id unsigned-int))
   1.140+
   1.141+(define-alien-routine rocksdb-backup-engine-close void
   1.142+  (be (* rocksdb-backup-engine)))
   1.143+
   1.144+;;; Transactions
   1.145+(define-alien-routine rocksdb-transaction-begin (* rocksdb-transaction)
   1.146+  (wopts (* rocksdb-writeoptions))
   1.147+  (topts (* rocksdb-transaction-options))
   1.148+  (told (* rocksdb-transaction)))
   1.149+
   1.150+(def-with-errptr rocksdb-transactiondb-open
   1.151+  (* rocksdb-transactiondb)
   1.152+  (opts (* rocksdb-options))
   1.153+  (topts (* rocksdb-transactiondb-options))
   1.154+  (name (* char)))
   1.155+
   1.156+(define-alien-routine rocksdb-transactiondb-close void
   1.157+  (tdb (* rocksdb-transactiondb)))
   1.158+
   1.159+;;; BlobDB
     2.1--- a/lisp/ffi/rocksdb/tests.lisp	Fri Dec 08 21:05:11 2023 -0500
     2.2+++ b/lisp/ffi/rocksdb/tests.lisp	Fri Dec 08 22:39:00 2023 -0500
     2.3@@ -43,7 +43,7 @@
     2.4     (rocksdb-readoptions-destroy ropts)
     2.5     (rocksdb-block-based-options-destroy bopts)))
     2.6 
     2.7-(deftest db-basic (:persist t)
     2.8+(deftest db-basic ()
     2.9   "Test basic RocksDB functionality. Inserts KV pair into a temporary
    2.10 DB where K and V are both Lisp strings."
    2.11   (let* ((opts (test-opts))