@slatedb/uniffi 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/slatedb.d.ts CHANGED
@@ -126,6 +126,23 @@ export interface WriteOptions {
126
126
  "await_durable": boolean;
127
127
  }
128
128
 
129
+ /**
130
+ * Options for configuring Foyer DB cache.
131
+ */
132
+ export interface FoyerCacheOptions {
133
+ "max_capacity": bigint | number;
134
+ "shards": bigint | number;
135
+ }
136
+
137
+ /**
138
+ * Options for configuring Moka DB cache.
139
+ */
140
+ export interface MokaCacheOptions {
141
+ "max_capacity": bigint | number;
142
+ "time_to_live": bigint | number | undefined;
143
+ "time_to_idle": bigint | number | undefined;
144
+ }
145
+
129
146
  /**
130
147
  * A single log event forwarded to a foreign callback.
131
148
  */
@@ -222,6 +239,99 @@ export interface MetricLabel {
222
239
  "value": string;
223
240
  }
224
241
 
242
+ /**
243
+ * Checkpoint metadata stored in a manifest.
244
+ */
245
+ export interface Checkpoint {
246
+ /**
247
+ * Checkpoint UUID string.
248
+ */
249
+ "id": string;
250
+ /**
251
+ * Referenced manifest ID.
252
+ */
253
+ "manifest_id": bigint | number;
254
+ /**
255
+ * Expiration time as Unix UTC seconds, if present.
256
+ */
257
+ "expire_time_secs": bigint | number | undefined;
258
+ /**
259
+ * Creation time as Unix UTC seconds.
260
+ */
261
+ "create_time_secs": bigint | number;
262
+ /**
263
+ * Optional checkpoint name.
264
+ */
265
+ "name": string | undefined;
266
+ }
267
+
268
+ /**
269
+ * Canonical compaction record.
270
+ */
271
+ export interface Compaction {
272
+ /**
273
+ * Compaction ULID string.
274
+ */
275
+ "id": string;
276
+ /**
277
+ * Compaction spec.
278
+ */
279
+ "spec": CompactionSpec;
280
+ /**
281
+ * Bytes processed so far.
282
+ */
283
+ "bytes_processed": bigint | number;
284
+ /**
285
+ * Current compaction status.
286
+ */
287
+ "status": CompactionStatus;
288
+ /**
289
+ * Output SSTs produced so far.
290
+ */
291
+ "output_ssts": Array<SsTableHandle>;
292
+ /**
293
+ * Whether the compaction is active.
294
+ */
295
+ "active": boolean;
296
+ }
297
+
298
+ /**
299
+ * Immutable compaction specification.
300
+ */
301
+ export interface CompactionSpec {
302
+ /**
303
+ * Ordered compaction sources.
304
+ */
305
+ "sources": Array<SourceId>;
306
+ /**
307
+ * Destination sorted run ID. `None` for drain-segment specs, which
308
+ * produce no new sorted run.
309
+ */
310
+ "destination": number | undefined;
311
+ /**
312
+ * Whether any input source is an L0 SST view.
313
+ */
314
+ "has_l0_sources": boolean;
315
+ /**
316
+ * Whether any input source is a sorted run.
317
+ */
318
+ "has_sr_sources": boolean;
319
+ }
320
+
321
+ /**
322
+ * Read-only compactor state view.
323
+ */
324
+ export interface CompactorStateView {
325
+ /**
326
+ * Latest compactions file, if present.
327
+ */
328
+ "compactions": VersionedCompactions | undefined;
329
+ /**
330
+ * Latest manifest file.
331
+ */
332
+ "manifest": VersionedManifest;
333
+ }
334
+
225
335
  /**
226
336
  * Snapshot of the current database lifecycle and durability state.
227
337
  */
@@ -236,6 +346,28 @@ export interface DbStatus {
236
346
  "close_reason": CloseReason | undefined;
237
347
  }
238
348
 
349
+ /**
350
+ * External DB reference recorded in a manifest.
351
+ */
352
+ export interface ExternalDb {
353
+ /**
354
+ * External database path.
355
+ */
356
+ "path": string;
357
+ /**
358
+ * Source checkpoint UUID string.
359
+ */
360
+ "source_checkpoint_id": string;
361
+ /**
362
+ * Final checkpoint UUID string, if present.
363
+ */
364
+ "final_checkpoint_id": string | undefined;
365
+ /**
366
+ * SST IDs referenced from the external DB.
367
+ */
368
+ "sst_ids": Array<SsTableId>;
369
+ }
370
+
239
371
  /**
240
372
  * A half-open or closed byte-key range used by scan APIs.
241
373
  */
@@ -314,6 +446,202 @@ export interface RowEntry {
314
446
  "expire_ts": bigint | number | undefined;
315
447
  }
316
448
 
449
+ /**
450
+ * A sorted run made up of one or more SST views.
451
+ */
452
+ export interface SortedRun {
453
+ /**
454
+ * Sorted run ID.
455
+ */
456
+ "id": number;
457
+ /**
458
+ * SST views in this run.
459
+ */
460
+ "sst_views": Array<SsTableView>;
461
+ /**
462
+ * Estimated total size in bytes.
463
+ */
464
+ "estimated_size_bytes": bigint | number;
465
+ }
466
+
467
+ /**
468
+ * A handle to a physical SSTable.
469
+ */
470
+ export interface SsTableHandle {
471
+ /**
472
+ * SST ID.
473
+ */
474
+ "id": SsTableId;
475
+ /**
476
+ * SST metadata.
477
+ */
478
+ "info": SsTableInfo;
479
+ /**
480
+ * Estimated on-disk size in bytes.
481
+ */
482
+ "estimated_size_bytes": bigint | number;
483
+ }
484
+
485
+ /**
486
+ * SSTable metadata.
487
+ */
488
+ export interface SsTableInfo {
489
+ /**
490
+ * First entry in the SSTable, if any.
491
+ */
492
+ "first_entry": Uint8Array | undefined;
493
+ /**
494
+ * Last entry in the SSTable, if any.
495
+ */
496
+ "last_entry": Uint8Array | undefined;
497
+ /**
498
+ * Index block offset in bytes.
499
+ */
500
+ "index_offset": bigint | number;
501
+ /**
502
+ * Index block length in bytes.
503
+ */
504
+ "index_len": bigint | number;
505
+ /**
506
+ * Filter block offset in bytes.
507
+ */
508
+ "filter_offset": bigint | number;
509
+ /**
510
+ * Filter block length in bytes.
511
+ */
512
+ "filter_len": bigint | number;
513
+ /**
514
+ * Compression codec, if any.
515
+ */
516
+ "compression_codec": CompressionCodec | undefined;
517
+ /**
518
+ * Physical SSTable type.
519
+ */
520
+ "sst_type": SstType;
521
+ /**
522
+ * Stats block offset in bytes.
523
+ */
524
+ "stats_offset": bigint | number;
525
+ /**
526
+ * Stats block length in bytes.
527
+ */
528
+ "stats_len": bigint | number;
529
+ /**
530
+ * Filter block format.
531
+ */
532
+ "filter_format": FilterFormat;
533
+ }
534
+
535
+ /**
536
+ * Projected SST view used by manifests and sorted runs.
537
+ */
538
+ export interface SsTableView {
539
+ /**
540
+ * View ULID string.
541
+ */
542
+ "id": string;
543
+ /**
544
+ * Underlying SST handle.
545
+ */
546
+ "sst": SsTableHandle;
547
+ /**
548
+ * Optional projected visible key range.
549
+ */
550
+ "visible_range": KeyRange | undefined;
551
+ /**
552
+ * Estimated on-disk size in bytes.
553
+ */
554
+ "estimated_size_bytes": bigint | number;
555
+ }
556
+
557
+ /**
558
+ * A compactions snapshot paired with its version ID.
559
+ */
560
+ export interface VersionedCompactions {
561
+ /**
562
+ * Compactions file version ID.
563
+ */
564
+ "id": bigint | number;
565
+ /**
566
+ * Compactor epoch recorded in this file.
567
+ */
568
+ "compactor_epoch": bigint | number;
569
+ /**
570
+ * Recent compactions tracked in this file.
571
+ */
572
+ "recent_compactions": Array<Compaction>;
573
+ }
574
+
575
+ /**
576
+ * A manifest snapshot paired with its version ID.
577
+ */
578
+ export interface VersionedManifest {
579
+ /**
580
+ * Manifest version ID.
581
+ */
582
+ "id": bigint | number;
583
+ /**
584
+ * Writer epoch stored in the manifest.
585
+ */
586
+ "writer_epoch": bigint | number;
587
+ /**
588
+ * Compactor epoch stored in the manifest.
589
+ */
590
+ "compactor_epoch": bigint | number;
591
+ /**
592
+ * Referenced external databases.
593
+ */
594
+ "external_dbs": Array<ExternalDb>;
595
+ /**
596
+ * Whether initialization has completed.
597
+ */
598
+ "initialized": boolean;
599
+ /**
600
+ * Last compacted L0 SST view ID, if any.
601
+ */
602
+ "last_compacted_l0_sst_view_id": string | undefined;
603
+ /**
604
+ * Last compacted L0 SST ID, if any.
605
+ */
606
+ "last_compacted_l0_sst_id": string | undefined;
607
+ /**
608
+ * Current L0 SST views.
609
+ */
610
+ "l0": Array<SsTableView>;
611
+ /**
612
+ * Current compacted sorted runs.
613
+ */
614
+ "compacted": Array<SortedRun>;
615
+ /**
616
+ * Next WAL SST ID to assign.
617
+ */
618
+ "next_wal_sst_id": bigint | number;
619
+ /**
620
+ * WAL replay watermark.
621
+ */
622
+ "replay_after_wal_id": bigint | number;
623
+ /**
624
+ * Last persisted L0 clock tick.
625
+ */
626
+ "last_l0_clock_tick": bigint | number;
627
+ /**
628
+ * Last persisted L0 sequence number.
629
+ */
630
+ "last_l0_seq": bigint | number;
631
+ /**
632
+ * Minimum sequence number still visible to recent snapshots.
633
+ */
634
+ "recent_snapshot_min_seq": bigint | number;
635
+ /**
636
+ * Tracked checkpoints.
637
+ */
638
+ "checkpoints": Array<Checkpoint>;
639
+ /**
640
+ * Dedicated WAL object store URI, if any.
641
+ */
642
+ "wal_object_store_uri": string | undefined;
643
+ }
644
+
317
645
  /**
318
646
  * Metadata returned by a successful write.
319
647
  */
@@ -514,6 +842,46 @@ export declare const LogLevel: Readonly<{
514
842
  */
515
843
  export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
516
844
 
845
+ /**
846
+ * Compaction lifecycle state.
847
+ */
848
+ export declare const CompactionStatus: Readonly<{
849
+ "Submitted": "Submitted";
850
+ "Running": "Running";
851
+ "Completed": "Completed";
852
+ "Failed": "Failed";
853
+ }>;
854
+ /**
855
+ * Compaction lifecycle state.
856
+ */
857
+ export type CompactionStatus = (typeof CompactionStatus)[keyof typeof CompactionStatus];
858
+
859
+ /**
860
+ * Compression codec used for an SSTable.
861
+ */
862
+ export declare const CompressionCodec: Readonly<{
863
+ "Snappy": "Snappy";
864
+ "Zlib": "Zlib";
865
+ "Lz4": "Lz4";
866
+ "Zstd": "Zstd";
867
+ }>;
868
+ /**
869
+ * Compression codec used for an SSTable.
870
+ */
871
+ export type CompressionCodec = (typeof CompressionCodec)[keyof typeof CompressionCodec];
872
+
873
+ /**
874
+ * Filter block format stored in SST metadata.
875
+ */
876
+ export declare const FilterFormat: Readonly<{
877
+ "Legacy": "Legacy";
878
+ "Composite": "Composite";
879
+ }>;
880
+ /**
881
+ * Filter block format stored in SST metadata.
882
+ */
883
+ export type FilterFormat = (typeof FilterFormat)[keyof typeof FilterFormat];
884
+
517
885
  /**
518
886
  * Kind of row entry stored in WAL iteration results.
519
887
  */
@@ -536,6 +904,18 @@ export declare const RowEntryKind: Readonly<{
536
904
  */
537
905
  export type RowEntryKind = (typeof RowEntryKind)[keyof typeof RowEntryKind];
538
906
 
907
+ /**
908
+ * Physical SSTable type.
909
+ */
910
+ export declare const SstType: Readonly<{
911
+ "Compacted": "Compacted";
912
+ "Wal": "Wal";
913
+ }>;
914
+ /**
915
+ * Physical SSTable type.
916
+ */
917
+ export type SstType = (typeof SstType)[keyof typeof SstType];
918
+
539
919
  /**
540
920
  * Use the database default TTL.
541
921
  */
@@ -650,6 +1030,131 @@ export declare const MetricValue: Readonly<{
650
1030
  Histogram(_: HistogramMetricValue): MetricValueHistogram;
651
1031
  }>;
652
1032
 
1033
+ /**
1034
+ * Warm all filters on the SST, if any exist.
1035
+ */
1036
+ export interface CacheTargetFilters {
1037
+ tag: "Filters";
1038
+ }
1039
+
1040
+ /**
1041
+ * Warm the SST index.
1042
+ */
1043
+ export interface CacheTargetIndex {
1044
+ tag: "Index";
1045
+ }
1046
+
1047
+ /**
1048
+ * Warm the SST stats block, if one exists.
1049
+ */
1050
+ export interface CacheTargetStats {
1051
+ tag: "Stats";
1052
+ }
1053
+
1054
+ /**
1055
+ * Warm the SST data blocks that overlap `range`. Also warms the index,
1056
+ * since block planning depends on it.
1057
+ */
1058
+ export interface CacheTargetData {
1059
+ tag: "Data";
1060
+ "range": KeyRange;
1061
+ }
1062
+
1063
+ /**
1064
+ * Cache content that [`crate::Db::warm_sst`] should populate.
1065
+ */
1066
+ export type CacheTarget = CacheTargetFilters | CacheTargetIndex | CacheTargetStats | CacheTargetData;
1067
+ /**
1068
+ * Cache content that [`crate::Db::warm_sst`] should populate.
1069
+ */
1070
+ export declare const CacheTarget: Readonly<{
1071
+ /**
1072
+ * Warm all filters on the SST, if any exist.
1073
+ */
1074
+ Filters(): CacheTargetFilters;
1075
+ /**
1076
+ * Warm the SST index.
1077
+ */
1078
+ Index(): CacheTargetIndex;
1079
+ /**
1080
+ * Warm the SST stats block, if one exists.
1081
+ */
1082
+ Stats(): CacheTargetStats;
1083
+ /**
1084
+ * Warm the SST data blocks that overlap `range`. Also warms the index,
1085
+ * since block planning depends on it.
1086
+ */
1087
+ Data(range: KeyRange): CacheTargetData;
1088
+ }>;
1089
+
1090
+ /**
1091
+ * Existing sorted run ID.
1092
+ */
1093
+ export interface SourceIdSortedRun {
1094
+ tag: "SortedRun";
1095
+ "": number;
1096
+ }
1097
+
1098
+ /**
1099
+ * L0 SST view ULID string.
1100
+ */
1101
+ export interface SourceIdSstView {
1102
+ tag: "SstView";
1103
+ "": string;
1104
+ }
1105
+
1106
+ /**
1107
+ * Compaction input source identifier.
1108
+ */
1109
+ export type SourceId = SourceIdSortedRun | SourceIdSstView;
1110
+ /**
1111
+ * Compaction input source identifier.
1112
+ */
1113
+ export declare const SourceId: Readonly<{
1114
+ /**
1115
+ * Existing sorted run ID.
1116
+ */
1117
+ SortedRun(_: number): SourceIdSortedRun;
1118
+ /**
1119
+ * L0 SST view ULID string.
1120
+ */
1121
+ SstView(_: string): SourceIdSstView;
1122
+ }>;
1123
+
1124
+ /**
1125
+ * WAL SST identified by numeric WAL ID.
1126
+ */
1127
+ export interface SsTableIdWal {
1128
+ tag: "Wal";
1129
+ "": bigint | number;
1130
+ }
1131
+
1132
+ /**
1133
+ * Compacted SST identified by ULID string.
1134
+ */
1135
+ export interface SsTableIdCompacted {
1136
+ tag: "Compacted";
1137
+ "": string;
1138
+ }
1139
+
1140
+ /**
1141
+ * SSTable identifier.
1142
+ */
1143
+ export type SsTableId = SsTableIdWal | SsTableIdCompacted;
1144
+ /**
1145
+ * SSTable identifier.
1146
+ */
1147
+ export declare const SsTableId: Readonly<{
1148
+ /**
1149
+ * WAL SST identified by numeric WAL ID.
1150
+ */
1151
+ Wal(_: bigint | number): SsTableIdWal;
1152
+ /**
1153
+ * Compacted SST identified by ULID string.
1154
+ */
1155
+ Compacted(_: string): SsTableIdCompacted;
1156
+ }>;
1157
+
653
1158
  /**
654
1159
  * Error type returned by the UniFFI bindings.
655
1160
  */
@@ -828,6 +1333,73 @@ export interface UpDownCounter {
828
1333
  */
829
1334
  export declare function init_logging(level: LogLevel, callback: LogCallback | undefined): void;
830
1335
 
1336
+ /**
1337
+ * Administrative read/query handle for SlateDB.
1338
+ */
1339
+ export declare class Admin extends UniffiObjectBase {
1340
+ protected constructor();
1341
+ /**
1342
+ * Looks up a sequence number for the provided Unix UTC timestamp seconds.
1343
+ */
1344
+ get_sequence_for_timestamp(timestamp_secs: bigint | number, round_up: boolean): Promise<bigint | number | undefined>;
1345
+ /**
1346
+ * Looks up a timestamp for the provided sequence number.
1347
+ */
1348
+ get_timestamp_for_sequence(seq: bigint | number, round_up: boolean): Promise<bigint | number | undefined>;
1349
+ /**
1350
+ * Lists checkpoints, optionally filtering by exact name.
1351
+ */
1352
+ list_checkpoints(name_filter: string | undefined): Promise<Array<Checkpoint>>;
1353
+ /**
1354
+ * Lists compactions files inside the half-open ID range `[from, to)`.
1355
+ */
1356
+ list_compactions(from: bigint | number | undefined, to: bigint | number | undefined): Promise<Array<VersionedCompactions>>;
1357
+ /**
1358
+ * Lists manifests inside the half-open ID range `[from, to)`.
1359
+ */
1360
+ list_manifests(from: bigint | number | undefined, to: bigint | number | undefined): Promise<Array<VersionedManifest>>;
1361
+ /**
1362
+ * Reads a compaction by ULID string from a specific or latest compactions file.
1363
+ */
1364
+ read_compaction(compaction_id: string, compactions_id: bigint | number | undefined): Promise<Compaction | undefined>;
1365
+ /**
1366
+ * Reads a specific compactions file by ID, or the latest when `id` is `None`.
1367
+ */
1368
+ read_compactions(id: bigint | number | undefined): Promise<VersionedCompactions | undefined>;
1369
+ /**
1370
+ * Reads the latest compactor state view.
1371
+ */
1372
+ read_compactor_state_view(): Promise<CompactorStateView>;
1373
+ /**
1374
+ * Reads a specific manifest by ID, or the latest when `id` is `None`.
1375
+ */
1376
+ read_manifest(id: bigint | number | undefined): Promise<VersionedManifest | undefined>;
1377
+ }
1378
+
1379
+ /**
1380
+ * Builder for opening an administrative [`crate::Admin`] handle.
1381
+ *
1382
+ * Builders are single-use: calling [`AdminBuilder::build`] consumes the builder.
1383
+ */
1384
+ export declare class AdminBuilder extends UniffiObjectBase {
1385
+ /**
1386
+ * Creates a new admin builder for `path` in `object_store`.
1387
+ */
1388
+ constructor(path: string, object_store: ObjectStore);
1389
+ /**
1390
+ * Builds the admin handle and consumes this builder.
1391
+ */
1392
+ build(): Admin;
1393
+ /**
1394
+ * Sets the seed used for SlateDB's internal random number generation.
1395
+ */
1396
+ with_seed(seed: bigint | number): void;
1397
+ /**
1398
+ * Uses a separate object store for WAL-backed administrative operations.
1399
+ */
1400
+ with_wal_object_store(wal_object_store: ObjectStore): void;
1401
+ }
1402
+
831
1403
  /**
832
1404
  * Builder for opening a writable [`crate::Db`].
833
1405
  *
@@ -842,6 +1414,10 @@ export declare class DbBuilder extends UniffiObjectBase {
842
1414
  * Opens the database and consumes this builder.
843
1415
  */
844
1416
  build(): Promise<Db>;
1417
+ /**
1418
+ * Sets DB cache.
1419
+ */
1420
+ with_db_cache(db_cache: DbCache): void;
845
1421
  /**
846
1422
  * Disables the SST block and metadata cache.
847
1423
  */
@@ -925,6 +1501,12 @@ export declare class Db extends UniffiObjectBase {
925
1501
  * Deletes `key` using custom write options.
926
1502
  */
927
1503
  delete_with_options(key: Uint8Array, options: WriteOptions): Promise<WriteHandle>;
1504
+ /**
1505
+ * Best-effort eviction of block-cache entries for one SST.
1506
+ *
1507
+ * If no block cache is configured, returns `Ok(())`.
1508
+ */
1509
+ evict_cached_sst(sst_id: SsTableId): Promise<void>;
928
1510
  /**
929
1511
  * Flushes the default storage layer.
930
1512
  */
@@ -996,6 +1578,14 @@ export declare class Db extends UniffiObjectBase {
996
1578
  * Returns the latest database status snapshot.
997
1579
  */
998
1580
  status(): DbStatus;
1581
+ /**
1582
+ * Warms selected cache content for one SST.
1583
+ *
1584
+ * Returns `Err` on the first failing target. If no block cache is
1585
+ * configured, or if the SST is not reachable from the current manifest,
1586
+ * the call is a no-op that returns `Ok(())`.
1587
+ */
1588
+ warm_sst(sst_id: SsTableId, targets: Array<CacheTarget>): Promise<void>;
999
1589
  /**
1000
1590
  * Applies all operations in `batch` atomically.
1001
1591
  *
@@ -1010,15 +1600,48 @@ export declare class Db extends UniffiObjectBase {
1010
1600
  write_with_options(batch: WriteBatch, options: WriteOptions): Promise<WriteHandle>;
1011
1601
  }
1012
1602
 
1603
+ /**
1604
+ * Database cache used to store blocks in memory.
1605
+ */
1606
+ export declare class DbCache extends UniffiObjectBase {
1607
+ protected constructor();
1608
+ /**
1609
+ * Creates a new Foyer based DB cache.
1610
+ */
1611
+ static new_foyer_cache(options: FoyerCacheOptions): DbCache;
1612
+ /**
1613
+ * Creates a new Moka based DB cache.
1614
+ */
1615
+ static new_moka_cache(options: MokaCacheOptions): DbCache;
1616
+ /**
1617
+ * Creates a new split cache with separate block and metadata capacities.
1618
+ */
1619
+ static new_split_cache(block_cache: DbCache, meta_cache: DbCache): DbCache;
1620
+ }
1621
+
1013
1622
  /**
1014
1623
  * Read-only database handle opened by [`crate::DbReaderBuilder`].
1015
1624
  */
1016
1625
  export declare class DbReader extends UniffiObjectBase {
1017
1626
  protected constructor();
1627
+ /**
1628
+ * Best-effort eviction of block-cache entries for one SST.
1629
+ *
1630
+ * If no block cache is configured, returns `Ok(())`.
1631
+ */
1632
+ evict_cached_sst(sst_id: SsTableId): Promise<void>;
1018
1633
  /**
1019
1634
  * Reads the current value for `key`.
1020
1635
  */
1021
1636
  get(key: Uint8Array): Promise<Uint8Array | undefined>;
1637
+ /**
1638
+ * Reads the current row version for `key`, including metadata.
1639
+ */
1640
+ get_key_value(key: Uint8Array): Promise<KeyValue | undefined>;
1641
+ /**
1642
+ * Reads the current row version for `key` using custom read options.
1643
+ */
1644
+ get_key_value_with_options(key: Uint8Array, options: ReadOptions): Promise<KeyValue | undefined>;
1022
1645
  /**
1023
1646
  * Reads the current value for `key` using custom read options.
1024
1647
  */
@@ -1047,6 +1670,14 @@ export declare class DbReader extends UniffiObjectBase {
1047
1670
  * Returns the latest reader status snapshot.
1048
1671
  */
1049
1672
  status(): DbStatus;
1673
+ /**
1674
+ * Warms selected cache content for one SST.
1675
+ *
1676
+ * Returns `Err` on the first failing target. If no block cache is
1677
+ * configured, or if the SST is not reachable from the current manifest,
1678
+ * the call is a no-op that returns `Ok(())`.
1679
+ */
1680
+ warm_sst(sst_id: SsTableId, targets: Array<CacheTarget>): Promise<void>;
1050
1681
  }
1051
1682
 
1052
1683
  /**