mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-01-06 17:22:54 +00:00
Compare commits
1 Commits
main
...
tracing-ta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a8a83da80 |
@@ -19,6 +19,7 @@ oneshot = "0.1.5"
|
|||||||
base64 = "0.21.0"
|
base64 = "0.21.0"
|
||||||
byteorder = "1.4.3"
|
byteorder = "1.4.3"
|
||||||
crc32fast = "1.3.2"
|
crc32fast = "1.3.2"
|
||||||
|
tracing = "0.1"
|
||||||
once_cell = "1.10.0"
|
once_cell = "1.10.0"
|
||||||
regex = { version = "1.5.5", default-features = false, features = ["std", "unicode"] }
|
regex = { version = "1.5.5", default-features = false, features = ["std", "unicode"] }
|
||||||
aho-corasick = "1.0"
|
aho-corasick = "1.0"
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ description = "sstables for tantivy"
|
|||||||
common = {version= "0.6", path="../common", package="tantivy-common"}
|
common = {version= "0.6", path="../common", package="tantivy-common"}
|
||||||
tantivy-fst = "0.4"
|
tantivy-fst = "0.4"
|
||||||
# experimental gives us access to Decompressor::upper_bound
|
# experimental gives us access to Decompressor::upper_bound
|
||||||
zstd = { version = "0.12", features = ["experimental"] }
|
zstd = { version = "0.13", features = ["experimental"] }
|
||||||
|
tracing = "0.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
proptest = "1"
|
proptest = "1"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use std::io;
|
|||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
use std::ops::{Bound, RangeBounds};
|
use std::ops::{Bound, RangeBounds};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
use tracing::instrument;
|
||||||
|
|
||||||
use common::file_slice::FileSlice;
|
use common::file_slice::FileSlice;
|
||||||
use common::{BinarySerializable, OwnedBytes};
|
use common::{BinarySerializable, OwnedBytes};
|
||||||
@@ -94,6 +95,7 @@ impl<TSSTable: SSTable> Dictionary<TSSTable> {
|
|||||||
Ok(TSSTable::delta_reader(data))
|
Ok(TSSTable::delta_reader(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[instrument(skip_all)]
|
||||||
pub(crate) async fn sstable_delta_reader_block_async(
|
pub(crate) async fn sstable_delta_reader_block_async(
|
||||||
&self,
|
&self,
|
||||||
block_addr: BlockAddr,
|
block_addr: BlockAddr,
|
||||||
@@ -232,6 +234,7 @@ impl<TSSTable: SSTable> Dictionary<TSSTable> {
|
|||||||
/// If the key was not found, returns Ok(None).
|
/// If the key was not found, returns Ok(None).
|
||||||
/// After calling this function, it is possible to call `DeltaReader::value` to get the
|
/// After calling this function, it is possible to call `DeltaReader::value` to get the
|
||||||
/// associated value.
|
/// associated value.
|
||||||
|
#[instrument(skip_all)]
|
||||||
fn decode_up_to_key<K: AsRef<[u8]>>(
|
fn decode_up_to_key<K: AsRef<[u8]>>(
|
||||||
&self,
|
&self,
|
||||||
key: K,
|
key: K,
|
||||||
@@ -344,6 +347,7 @@ impl<TSSTable: SSTable> Dictionary<TSSTable> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Lookups the value corresponding to the key.
|
/// Lookups the value corresponding to the key.
|
||||||
|
#[instrument(skip_all)]
|
||||||
pub async fn get_async<K: AsRef<[u8]>>(&self, key: K) -> io::Result<Option<TSSTable::Value>> {
|
pub async fn get_async<K: AsRef<[u8]>>(&self, key: K) -> io::Result<Option<TSSTable::Value>> {
|
||||||
if let Some(block_addr) = self.sstable_index.get_block_with_key(key.as_ref()) {
|
if let Some(block_addr) = self.sstable_index.get_block_with_key(key.as_ref()) {
|
||||||
let sstable_reader = self.sstable_delta_reader_block_async(block_addr).await?;
|
let sstable_reader = self.sstable_delta_reader_block_async(block_addr).await?;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use std::io::{self, Write};
|
use std::io::{self, Write};
|
||||||
use std::ops::Range;
|
use std::ops::Range;
|
||||||
|
|
||||||
|
use tracing::instrument;
|
||||||
use common::OwnedBytes;
|
use common::OwnedBytes;
|
||||||
|
|
||||||
use crate::{common_prefix_len, SSTable, SSTableDataCorruption, TermOrdinal};
|
use crate::{common_prefix_len, SSTable, SSTableDataCorruption, TermOrdinal};
|
||||||
@@ -27,6 +28,7 @@ impl SSTableIndex {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Get the [`BlockAddr`] of the requested block.
|
/// Get the [`BlockAddr`] of the requested block.
|
||||||
|
#[instrument]
|
||||||
pub(crate) fn get_block(&self, block_id: usize) -> Option<BlockAddr> {
|
pub(crate) fn get_block(&self, block_id: usize) -> Option<BlockAddr> {
|
||||||
self.blocks
|
self.blocks
|
||||||
.get(block_id)
|
.get(block_id)
|
||||||
@@ -56,6 +58,7 @@ impl SSTableIndex {
|
|||||||
/// Get the [`BlockAddr`] of the block that would contain `key`.
|
/// Get the [`BlockAddr`] of the block that would contain `key`.
|
||||||
///
|
///
|
||||||
/// Returns None if `key` is lexicographically after the last key recorded.
|
/// Returns None if `key` is lexicographically after the last key recorded.
|
||||||
|
#[instrument]
|
||||||
pub fn get_block_with_key(&self, key: &[u8]) -> Option<BlockAddr> {
|
pub fn get_block_with_key(&self, key: &[u8]) -> Option<BlockAddr> {
|
||||||
self.locate_with_key(key).and_then(|id| self.get_block(id))
|
self.locate_with_key(key).and_then(|id| self.get_block(id))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user