Mercurial > core / lisp/ffi/rocksdb/db.lisp
changeset 272: |
0a5e37693fdf |
parent: |
4a1a21ff46ee
|
child: |
6d56c4950fa2 |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Tue, 09 Apr 2024 22:09:52 -0400 |
permissions: |
-rw-r--r-- |
description: |
db protocol stuff, prep for tao, tests, with-temp-db |
4 (def-with-errptr rocksdb-open (* rocksdb) 5 (opt (* rocksdb-options)) 8 (define-alien-routine rocksdb-close void 11 (define-alien-routine rocksdb-cancel-all-background-work void 15 (export '(rocksdb-close rocksdb-cancel-all-background-work)) 17 (def-with-errptr rocksdb-put 20 (options (* rocksdb-writeoptions)) 21 (key (* unsigned-char)) 23 (val (* unsigned-char)) 26 (def-with-errptr rocksdb-get 29 (options (* rocksdb-readoptions)) 30 (key (* unsigned-char)) 34 (def-with-errptr rocksdb-get-with-ts c-string 36 (opts (* rocksdb-readoptions)) 43 (def-with-errptr rocksdb-delete 46 (options (* rocksdb-writeoptions)) 47 (key (* unsigned-char)) 50 (def-with-errptr rocksdb-merge 53 (opt (* rocksdb-writeoptions)) 54 (key (* unsigned-char)) 56 (val (* unsigned-char)) 59 (def-with-errptr rocksdb-merge-cf 62 (opt (* rocksdb-writeoptions)) 63 (cf (* rocksdb-column-family-handle)) 64 (key (* unsigned-char)) 66 (val (* unsigned-char)) 69 (def-with-errptr rocksdb-write 72 (opt (* rocksdb-writeoptions)) 73 (batch (* rocksdb-writebatch))) 75 (def-with-errptr rocksdb-get-cf 78 (opt (* rocksdb-readoptions)) 79 (cf (* rocksdb-column-family-handle)) 80 (key (* unsigned-char)) 84 (def-with-errptr rocksdb-get-cf-with-ts c-string 86 (opts (* rocksdb-readoptions)) 87 (cf (* rocksdb-column-family-handle)) 94 ;; NOTE 2023-12-19: only the VOID-returning functions in the multi- 95 ;; family perform parallel IO: 96 ;; https://github.com/facebook/rocksdb/wiki/MultiGet-Performance 97 (define-alien-routine rocksdb-multi-get void 99 (opt (* rocksdb-readoptions)) 101 (keys-list (array c-string)) 102 (keys-list-sizes (array size-t)) 103 (values-list (array c-string)) 104 (values-list-sizes (array size-t)) 105 (errs (array rocksdb-errptr))) 107 (define-alien-routine rocksdb-multi-get-with-ts void 109 (opt (* rocksdb-readoptions)) 111 (keys-list (array c-string)) 112 (keys-list-sizes (array size-t)) 113 (values-list (array c-string)) 114 (values-list-sizes (array size-t)) 115 (ts-list (array c-string)) 116 (ts-list-sizes (array size-t)) 117 (errs (array rocksdb-errptr))) 119 (define-alien-routine rocksdb-multi-get-cf void 121 (opt (* rocksdb-readoptions)) 122 (cfs (array rocksdb-column-family-handle)) 124 (keys-list (array c-string)) 125 (keys-list-sizes (array size-t)) 126 (values-list (array c-string)) 127 (values-list-sizes (array size-t)) 128 (errs (array rocksdb-errptr))) 130 (define-alien-routine rocksdb-multi-get-cf-with-ts void 132 (opt (* rocksdb-readoptions)) 133 (cfs (array rocksdb-column-family-handle)) 135 (keys-list (array c-string)) 136 (keys-list-sizes (array size-t)) 137 (values-list (array c-string)) 138 (values-list-sizes (array size-t)) 139 (ts-list (array c-string)) 140 (ts-list-sizes (array size-t)) 141 (errs (array rocksdb-errptr))) 143 (export '(rocksdb-multi-get rocksdb-multi-get-cf 144 rocksdb-multi-get-with-ts rocksdb-multi-get-cf-with-ts)) 146 (define-alien-routine rocksdb-cache-create-lru (* rocksdb-cache) (capacity size-t)) 148 (export '(rocksdb-cache-create-lru)) 150 (def-with-errptr rocksdb-flush void 152 (options (* rocksdb-flushoptions))) 154 (def-with-errptr rocksdb-flush-cf void 156 (opts (* rocksdb-flushoptions)) 157 (cf (* rocksdb-column-family-handle)) 160 (def-with-errptr rocksdb-flush-cfs void 162 (opts (* rocksdb-flushoptions)) 163 (cf (* (* rocksdb-column-family-handle))) 166 (def-with-errptr rocksdb-flush-wal void 168 (sync unsigned-char)) 170 (define-alien-routine rocksdb-delete-file void 174 (define-alien-routine rocksdb-livefile (* rocksdb-livefiles) 178 (export '(rocksdb-delete-file rocksdb-livefile)) 180 ;; return NULL if prop name is unknown, else return pointer to 181 ;; malloc-ed null-term value. 182 (define-alien-routine rocksdb-property-value c-string 186 ;; return 0 on success, else -1 187 (define-alien-routine rocksdb-property-int int 191 (define-alien-routine rocksdb-property-value-cf c-string 193 (cf (* rocksdb-column-family-handle)) 196 (define-alien-routine rocksdb-property-int-cf int 198 (cf (* rocksdb-column-family-handle)) 201 (export '(rocksdb-property-value rocksdb-property-value-cf rocksdb-property-int rocksdb-property-int-cf)) 204 (def-with-errptr rocksdb-create-column-family 205 (* rocksdb-column-family-handle) 207 (column-family-options (* rocksdb-options)) 208 (column-family-name c-string)) 210 (def-with-errptr rocksdb-create-column-families 211 (array rocksdb-column-family-handle) 213 (column-family-options (* rocksdb-options)) 214 (num-column-familes int) 215 (column-family-names (array c-string)) 218 (define-alien-routine rocksdb-create-column-families-destroy void 219 (list (array rocksdb-column-family-handle))) 221 (define-alien-routine rocksdb-column-family-handle-destroy void 222 (cf (* rocksdb-column-family-handle))) 224 (define-alien-routine rocksdb-column-family-handle-get-id unsigned-int 225 (cf (* rocksdb-column-family-handle))) 227 (define-alien-routine rocksdb-column-family-handle-get-name c-string 228 (handle (* rocksdb-column-family-handle)) 229 (name-len (* size-t))) 231 (export '(rocksdb-create-column-families-destroy rocksdb-column-family-handle-destroy 232 rocksdb-column-family-handle-get-id rocksdb-column-family-handle-get-name)) 234 (def-with-errptr rocksdb-drop-column-family 237 (handle (* rocksdb-column-family-handle))) 239 (def-with-errptr rocksdb-open-column-families 241 (options (* rocksdb-options)) 243 (num-column-families int) 244 (column-family-names (array c-string)) 245 (column-family-options (array rocksdb-options)) 246 (column-family-handles (array rocksdb-column-family-handle))) 248 (def-with-errptr rocksdb-list-column-families 250 (opt (* rocksdb-options)) 254 (define-alien-routine rocksdb-list-column-families-destroy void 255 (list (array c-string)) 258 (export '(rocksdb-list-column-families-destroy)) 260 (def-with-errptr rocksdb-put-cf 263 (opt (* rocksdb-writeoptions)) 264 (cf (* rocksdb-column-family-handle)) 265 (key (* unsigned-char)) 267 (val (* unsigned-char)) 270 (def-with-errptr rocksdb-delete-cf 273 (options (* rocksdb-writeoptions)) 274 (cf (* rocksdb-column-family-handle)) 275 (key (* unsigned-char)) 278 (def-with-errptr rocksdb-delete-range-cf 281 (options (* rocksdb-writeoptions)) 282 (cf (* rocksdb-column-family-handle)) 283 (start-key (* unsigned-char)) 284 (start-key-len size-t) 285 (end-key (* unsigned-char)) 286 (end-key-len size-t)) 288 (def-with-errptr rocksdb-disable-file-deletions void 291 (def-with-errptr rocksdb-enable-file-deletions void 294 (def-with-errptr rocksdb-destroy-db void 295 (opts (* rocksdb-options)) 298 (def-with-errptr rocksdb-repair-db void 299 (opts (* rocksdb-options)) 303 (define-alien-routine rocksdb-create-iterator (* rocksdb-iterator) 305 (opt (* rocksdb-readoptions))) 306 (define-alien-routine rocksdb-iter-destroy void 307 (iter (* rocksdb-iterator))) 308 (define-alien-routine rocksdb-iter-seek-to-first void 309 (iter (* rocksdb-iterator))) 310 (define-alien-routine rocksdb-iter-valid boolean 311 (iter (* rocksdb-iterator))) 312 (define-alien-routine rocksdb-iter-next void 313 (iter (* rocksdb-iterator))) 314 (define-alien-routine rocksdb-iter-prev void 315 (iter (* rocksdb-iterator))) 316 (define-alien-routine rocksdb-iter-key (* unsigned-char) 317 (iter (* rocksdb-iterator)) 318 (klen-ptr (* size-t))) 319 (define-alien-routine rocksdb-iter-value (* unsigned-char) 320 (iter (* rocksdb-iterator)) 321 (vlen-ptr (* size-t))) 323 (export '(rocksdb-create-iterator rocksdb-iter-destroy rocksdb-iter-seek-to-first rocksdb-iter-valid 324 rocksdb-iter-next rocksdb-iter-prev rocksdb-iter-key rocksdb-iter-value)) 327 (def-with-errptr rocksdb-backup-engine-open 328 (* rocksdb-backup-engine) 329 (opts (* rocksdb-options)) 332 (def-with-errptr rocksdb-backup-engine-create-new-backup 334 (be (* rocksdb-backup-engine)) 337 (def-with-errptr rocksdb-backup-engine-restore-db-from-latest-backup 339 (be (* rocksdb-backup-engine)) 342 (res-opts (* rocksdb-restore-options))) 344 (def-with-errptr rocksdb-backup-engine-restore-db-from-backup 346 (be (* rocksdb-backup-engine)) 349 (res-opts (* rocksdb-restore-options)) 350 (backup-id unsigned-int)) 352 (define-alien-routine rocksdb-backup-engine-close void 353 (be (* rocksdb-backup-engine))) 355 (export '(rocksdb-backup-engine-close)) 358 (def-with-errptr rocksdb-transactiondb-create-column-family (* rocksdb-column-family-handle) 359 (txn-db (* rocksdb-transactiondb)) 360 (cf-options (* rocksdb-options)) 363 (def-with-errptr rocksdb-transactiondb-open (* rocksdb-transactiondb) 364 (opts (* rocksdb-options)) 365 (topts (* rocksdb-transactiondb-options)) 368 (def-with-errptr rocksdb-transactiondb-open-column-families (* rocksdb-transactiondb) 369 (opts (* rocksdb-options)) 370 (txn-db-opts (* rocksdb-transactiondb-options)) 373 (cf-names (array c-string)) 374 (cf-opfs (* rocksdb-options)) 375 (cf-handles (array (* rocksdb-column-family-handle)))) 377 (define-alien-routine rocksdb-transactiondb-create-snapshot (* rocksdb-snapshot) 378 (txn-db (* rocksdb-transactiondb)) 379 (snapshot (* rocksdb-snapshot))) 381 (define-alien-routine rocksdb-transactiondb-release-snapshot void 382 (txn-db (* rocksdb-transactiondb)) 383 (snapshot (* rocksdb-snapshot))) 385 (define-alien-routine rocksdb-transactiondb-property-value c-string 386 (db (* rocksdb-transactiondb)) 389 (define-alien-routine rocksdb-transactiondb-property-int int 390 (db (* rocksdb-transactiondb)) 392 (out-val (unsigned 64))) 394 (define-alien-routine rocksdb-transactiondb-get-base-db (* rocksdb) 395 (txn-db (* rocksdb-transactiondb))) 397 (define-alien-routine rocksdb-transactiondb-get-close-db void 398 (base-db (* rocksdb))) 400 (define-alien-routine rocksdb-transaction-begin (* rocksdb-transaction) 401 (wopts (* rocksdb-writeoptions)) 402 (topts (* rocksdb-transaction-options)) 403 (told (* rocksdb-transaction))) 405 (define-alien-routine rocksdb-transactiondb-get-prepared-transactions (array (* rocksdb-transaction)) 406 (txn-db (* rocksdb-transactiondb)) 409 (def-with-errptr rocksdb-transaction-set-name void 410 (txn (* rocksdb-transaction)) 414 (define-alien-routine rocksdb-transaction-get-name c-string 415 (txn (* rocksdb-transaction)) 416 (name-len (* size-t))) 418 (def-with-errptr rocksdb-transaction-prepare void 419 (txn (* rocksdb-transaction))) 421 (def-with-errptr rocksdb-transaction-commit void 422 (txn (* rocksdb-transaction))) 424 (def-with-errptr rocksdb-transaction-rollback void 425 (txn (* rocksdb-transaction))) 427 (define-alien-routine rocksdb-transaction-set-savepoint void 428 (txn (* rocksdb-transaction))) 430 (def-with-errptr rocksdb-transaction-rollback-to-savepoint void 431 (txn (* rocksdb-transaction))) 433 (define-alien-routine rocksdb-transaction-destroy void 434 (txn (* rocksdb-transaction))) 436 (define-alien-routine rocksdb-transaction-get-writebach-wi (* rocksdb-writebatch-wi) 437 (txn (* rocksdb-transaction))) 439 (def-with-errptr rocksdb-transaction-delete void 440 (txn (* rocksdb-transaction)) 444 (def-with-errptr rocksdb-transaction-delete-cf void 445 (txn (* rocksdb-transaction)) 446 (cf (* rocksdb-column-family-handle)) 450 (def-with-errptr rocksdb-transactiondb-delete void 451 (txndb (* rocksdb-transactiondb)) 452 (opts (* rocksdb-writeoptions)) 456 (def-with-errptr rocksdb-transaction-delete-cf void 457 (txndb (* rocksdb-transactiondb)) 458 (opts (* rocksdb-writeoptions)) 459 (cf (* rocksdb-column-family-handle)) 463 (define-alien-routine rocksdb-transaction-create-iterator (* rocksdb-iterator) 464 (txn (* rocksdb-transaction)) 465 (opts (* rocksdb-readoptions))) 467 (define-alien-routine rocksdb-transaction-create-iterator-cf (* rocksdb-iterator) 468 (txn (* rocksdb-transaction)) 469 (opts (* rocksdb-readoptions)) 470 (cf (* rocksdb-column-family-handle))) 472 (define-alien-routine rocksdb-transactiondb-create-iterator (* rocksdb-iterator) 473 (txndb (* rocksdb-transactiondb)) 474 (opts (* rocksdb-readoptions))) 476 (define-alien-routine rocksdb-transactiondb-create-iterator-cf (* rocksdb-iterator) 477 (txndb (* rocksdb-transactiondb)) 478 (opts (* rocksdb-readoptions)) 479 (cf (* rocksdb-column-family-handle))) 481 (define-alien-routine rocksdb-transactiondb-close void 482 (tdb (* rocksdb-transactiondb))) 484 (def-with-errptr rocksdb-transactiondb-flush void 485 (txndb (* rocksdb-transactiondb)) 486 (opts (* rocksdb-flushoptions))) 488 (def-with-errptr rocksdb-transactiondb-flush-cf void 489 (txndb (* rocksdb-transactiondb)) 490 (opts (* rocksdb-flushoptions)) 491 (cf (* rocksdb-column-family-handle))) 493 (def-with-errptr rocksdb-transactiondb-flush-cfs void 494 (txndb (* rocksdb-transactiondb)) 495 (opts (* rocksdb-flushoptions)) 496 (cfs (array (* rocksdb-column-family-handle))) 499 (def-with-errptr rocksdb-transactiondb-flush-cf void 500 (txndb (* rocksdb-transactiondb)) 501 (sync unsigned-char)) 503 (def-with-errptr rocksdb-transactiondb-checkpoint-object-create (* rocksdb-checkpoint) 504 (txn-db (* rocksdb-transactiondb))) 506 (def-with-errptr rocksdb-optimistictransactiondb-open (* rocksdb-optimistictransactiondb) 507 (opts (* rocksdb-options)) 510 (def-with-errptr rocksdb-optimistictransactiondb-open-column-families (* rocksdb-optimistictransactiondb) 511 (opts (* rocksdb-options)) 514 (cf-names (array c-string)) 515 (cf-opts (array (* rocksdb-options))) 516 (cf-handles (array (* rocksdb-column-family-handle)))) 518 (define-alien-routine rocksdb-optimistictransactiondb-get-base-db (* rocksdb) 519 (otxn-db (* rocksdb-optimistictransactiondb))) 521 (define-alien-routine rocksdb-optimistictransactiondb-close-base-db void 522 (base-db (* rocksdb))) 524 (define-alien-routine rocksdb-optimistictransaction-begin (* rocksdb-transaction) 525 (otxn-db (* rocksdb-optimistictransactiondb)) 526 (wopts (* rocksdb-writeoptions)) 527 (otxn-opts (* rocksdb-optimistictransaction-options)) 528 (old-txn (* rocksdb-transaction))) 530 (def-with-errptr rocksdb-optimistictransactiondb-write void 531 (otxn-db (* rocksdb-optimistictransactiondb)) 532 (wopts (* rocksdb-writeoptions)) 533 (batch (* rocksdb-writebatch))) 535 (define-alien-routine rocksdb-optimistictransactiondb-close void 536 (otxn-db (* rocksdb-optimistictransactiondb))) 538 (def-with-errptr rocksdb-optimistictransactiondb-checkpoint-object-create (* rocksdb-checkpoint) 539 (otxn-db (* rocksdb-optimistictransactiondb))) 541 (export '(rocksdb-transaction-begin rocksdb-transaction-close rocksdb-transactiondb-create-snapshot 542 rocksdb-transactiondb-release-snapshot rocksdb-transactiondb-property-value 543 rocksdb-transactiondb-property-int rocksdb-transactiondb-get-base-db 544 rocksdb-transactiondb-get-close-db rocksdb-transaction-get-name 545 rocksdb-transaction-set-savepoint rocksdb-transaction-destroy 546 rocksdb-transaction-create-iterator rocksdb-transaction-create-iterator-cf 547 rocksdb-transactiondb-create-iterator rocksdb-transactiondb-create-iterator-cf 548 rocksdb-optimistictransactiondb-get-base-db rocksdb-optimistictransactiondb-close-base-db 549 rocksdb-optimistictransaction-begin rocksdb-optimistictransactiondb-close)) 552 (define-alien-routine rocksdb-set-perf-level void (val int)) 554 (define-alien-routine rocksdb-perfcontext-create (* rocksdb-perfcontext)) 556 (define-alien-routine rocksdb-perfcontext-reset void (ctx (* rocksdb-perfcontext))) 558 (define-alien-routine rocksdb-perfcontext-report (* unsigned-char) 559 (context (* rocksdb-perfcontext)) 560 (exclude-zero-counters unsigned-char)) 562 (define-alien-routine rocksdb-perfcontext-metric unsigned-long 563 (context (* rocksdb-perfcontext)) (metric int)) 565 (define-alien-routine rocksdb-perfcontext-destroy void (* rocksdb-perfcontext)) 567 (export '(rocksdb-perfcontext-reset rocksdb-perfcontext-report 568 rocksdb-perfcontext-metric rocksdb-perfcontext-destroy rocksdb-set-perf-level)) 571 (define-alien-routine rocksdb-filterpolicy-destroy void (self (* rocksdb-filterpolicy))) 573 (define-alien-routine rocksdb-filterpolicy-create-bloom (* rocksdb-filterpolicy) 574 (bits-per-key double)) 576 (define-alien-routine rocksdb-filterpolicy-create-bloom-full (* rocksdb-filterpolicy) 577 (bits-per-key double)) 579 (define-alien-routine rocksdb-filterpolicy-create-ribbon (* rocksdb-filterpolicy) 580 (bloom-equivalent-bits-per-key double)) 582 (define-alien-routine rocksdb-filterpolicy-create-ribbon-hybrid (* rocksdb-filterpolicy) 583 (bloom-equivalent-bits-per-key double) 584 (bloom-before-level int)) 586 (export '(rocksdb-filterpolicy-destroy rocksdb-filterpolicy-create-bloom rocksdb-filterpolicy-create-bloom-full 587 rocksdb-filterpolicy-create-ribbon rocksdb-filterpolicy-create-ribbon-hybrid)) 590 (define-alien-routine rocksdb-create-snapshot (* rocksdb-snapshot) 593 (define-alien-routine rocksdb-release-snapshot void 595 (snapshot (* rocksdb-snapshot))) 597 (export '(rocksdb-create-snapshot rocksdb-release-snapshot))