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))