Update scylla dependency

This commit is contained in:
Dominik Werder
2025-05-07 14:50:50 +02:00
parent 93c759f11f
commit 7243fff317
19 changed files with 445 additions and 289 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,7 @@ bytes = "1"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"
chrono = "0.4" chrono = "0.4"
async-channel = "1.9" async-channel = "2.3.1"
parking_lot = "0.12" parking_lot = "0.12"
crc32fast = "1.4" crc32fast = "1.4"
daqbuf-err = { path = "../../../daqbuf-err" } daqbuf-err = { path = "../../../daqbuf-err" }

View File

@@ -98,6 +98,7 @@ impl StatsChannel {
let (tx, rx) = async_channel::bounded(2); let (tx, rx) = async_channel::bounded(2);
taskrun::spawn(async move { taskrun::spawn(async move {
let mut rx = rx; let mut rx = rx;
let mut rx = std::pin::pin!(rx);
while let Some(_) = rx.next().await {} while let Some(_) = rx.next().await {}
}); });
Self::new(tx) Self::new(tx)

View File

@@ -7,6 +7,6 @@ edition = "2021"
[dependencies] [dependencies]
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
daqbuf-err = { path = "../../../daqbuf-err" } autoerr = "0.0.3"
taskrun = { path = "../taskrun" } taskrun = { path = "../taskrun" }
redis = { version = "0.28.2", features = [] } redis = { version = "0.30.0", features = [] }

View File

@@ -15,8 +15,8 @@ http = "1.2.0"
http-body-util = { version = "0.1.2" } http-body-util = { version = "0.1.2" }
hyper = { version = "1.6.0", features = ["http1", "http2", "client", "server"] } hyper = { version = "1.6.0", features = ["http1", "http2", "client", "server"] }
hyper-util = { version = "0.1.10", features = ["http1", "http2", "client", "server"] } hyper-util = { version = "0.1.10", features = ["http1", "http2", "client", "server"] }
h3 = { version = "0.0.6", optional = true } h3 = { version = "0.0.8", optional = true }
h3-quinn = { version = "0.0.7", optional = true } h3-quinn = { version = "0.0.10", optional = true }
quinn = { version = "0.11.6", optional = true, default-features = false, features = ["log", "platform-verifier", "runtime-tokio", "rustls-ring"] } quinn = { version = "0.11.6", optional = true, default-features = false, features = ["log", "platform-verifier", "runtime-tokio", "rustls-ring"] }
rustls = { version = "0.23.22", optional = true, default-features = false, features = ["logging", "std", "ring"] } rustls = { version = "0.23.22", optional = true, default-features = false, features = ["logging", "std", "ring"] }
rustls-pki-types = { version = "1.11.0", optional = true } rustls-pki-types = { version = "1.11.0", optional = true }
@@ -26,7 +26,7 @@ futures-util = "0.3.31"
tracing = "0.1" tracing = "0.1"
tracing-futures = "0.2" tracing-futures = "0.2"
async-channel = "2.3.1" async-channel = "2.3.1"
itertools = "0.13.0" itertools = "0.14.0"
time = "0.3.37" time = "0.3.37"
chrono = "0.4.39" chrono = "0.4.39"
md-5 = "0.10.6" md-5 = "0.10.6"
@@ -34,7 +34,7 @@ regex = "1.11.1"
rand = "0.9.0" rand = "0.9.0"
ciborium = "0.2.2" ciborium = "0.2.2"
flate2 = "1" flate2 = "1"
brotli = "7.0.0" brotli = "8.0.1"
autoerr = "0.0.3" autoerr = "0.0.3"
daqbuf-err = { path = "../../../daqbuf-err" } daqbuf-err = { path = "../../../daqbuf-err" }
netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" }

View File

@@ -68,7 +68,9 @@ autoerr::create_error_v1!(
Async(#[from] netpod::AsyncChannelError), Async(#[from] netpod::AsyncChannelError),
ChannelConfig(#[from] dbconn::channelconfig::Error), ChannelConfig(#[from] dbconn::channelconfig::Error),
Netpod(#[from] netpod::Error), Netpod(#[from] netpod::Error),
ScyllaQuery(#[from] scyllaconn::scylla::transport::errors::QueryError), ScyllaExecution(#[from] scyllaconn::scylla::errors::ExecutionError),
ScyllaPagerExecution(#[from] scyllaconn::scylla::errors::PagerExecutionError),
ScyllanextRow(#[from] scyllaconn::scylla::errors::NextRowError),
ScyllaTypeCheck(#[from] scyllaconn::scylla::deserialize::TypeCheckError), ScyllaTypeCheck(#[from] scyllaconn::scylla::deserialize::TypeCheckError),
}, },
); );

View File

@@ -894,13 +894,7 @@ pub trait ErrConv<T> {
fn err_conv(self) -> Result<T, daqbuf_err::Error>; fn err_conv(self) -> Result<T, daqbuf_err::Error>;
} }
impl<T> ErrConv<T> for Result<T, scylla::transport::errors::NewSessionError> { impl<T> ErrConv<T> for Result<T, scylla::errors::NewSessionError> {
fn err_conv(self) -> Result<T, daqbuf_err::Error> {
self.map_err(|e| daqbuf_err::Error::with_msg_no_trace(format!("{e:?}")))
}
}
impl<T> ErrConv<T> for Result<T, scylla::transport::errors::QueryError> {
fn err_conv(self) -> Result<T, daqbuf_err::Error> { fn err_conv(self) -> Result<T, daqbuf_err::Error> {
self.map_err(|e| daqbuf_err::Error::with_msg_no_trace(format!("{e:?}"))) self.map_err(|e| daqbuf_err::Error::with_msg_no_trace(format!("{e:?}")))
} }
@@ -912,6 +906,18 @@ impl<T> ErrConv<T> for Result<T, scylla::deserialize::TypeCheckError> {
} }
} }
impl<T> ErrConv<T> for Result<T, scylla::errors::PagerExecutionError> {
fn err_conv(self) -> Result<T, daqbuf_err::Error> {
self.map_err(|e| daqbuf_err::Error::with_msg_no_trace(format!("{e:?}")))
}
}
impl<T> ErrConv<T> for Result<T, scylla::errors::NextRowError> {
fn err_conv(self) -> Result<T, daqbuf_err::Error> {
self.map_err(|e| daqbuf_err::Error::with_msg_no_trace(format!("{e:?}")))
}
}
pub struct MapPulseScyllaHandler {} pub struct MapPulseScyllaHandler {}
impl MapPulseScyllaHandler { impl MapPulseScyllaHandler {

View File

@@ -11,7 +11,7 @@ path = "src/scyllaconn.rs"
futures-util = "0.3.31" futures-util = "0.3.31"
pin-project = "1" pin-project = "1"
async-channel = "2.3.1" async-channel = "2.3.1"
scylla = "0.15.1" scylla = "1.1"
autoerr = "0.0.3" autoerr = "0.0.3"
daqbuf-err = { path = "../../../daqbuf-err" } daqbuf-err = { path = "../../../daqbuf-err" }
netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" }

View File

@@ -3,14 +3,15 @@ use futures_util::TryStreamExt;
use netpod::ttl::RetentionTime; use netpod::ttl::RetentionTime;
use netpod::TsMs; use netpod::TsMs;
use netpod::EMIT_ACCOUNTING_SNAP; use netpod::EMIT_ACCOUNTING_SNAP;
use scylla::prepared_statement::PreparedStatement; use scylla::client::session::Session as ScySession;
use scylla::Session as ScySession; use scylla::statement::prepared::PreparedStatement;
autoerr::create_error_v1!( autoerr::create_error_v1!(
name(Error, "AccountingToplist"), name(Error, "AccountingToplist"),
enum variants { enum variants {
ScyllaQuery(#[from] scylla::transport::errors::QueryError), ScyllaPrepare(#[from] scylla::errors::PrepareError),
ScyllaNextRow(#[from] scylla::transport::iterator::NextRowError), ScyllaPagerExecution(#[from] scylla::errors::PagerExecutionError),
ScyllaNextRow(#[from] scylla::errors::NextRowError),
ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError), ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError),
UsageDataMalformed, UsageDataMalformed,
}, },

View File

@@ -13,14 +13,15 @@ use netpod::log::*;
use netpod::range::evrange::NanoRange; use netpod::range::evrange::NanoRange;
use netpod::timeunits; use netpod::timeunits;
use netpod::EMIT_ACCOUNTING_SNAP; use netpod::EMIT_ACCOUNTING_SNAP;
use scylla::prepared_statement::PreparedStatement; use scylla::statement::prepared::PreparedStatement;
use scylla::Session as ScySession;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::pin::Pin; use std::pin::Pin;
use std::sync::Arc; use std::sync::Arc;
use std::task::Context; use std::task::Context;
use std::task::Poll; use std::task::Poll;
type ScySession = scylla::client::session::Session;
async fn read_next( async fn read_next(
ts_msp: u64, ts_msp: u64,
fwd: bool, fwd: bool,

View File

@@ -9,10 +9,11 @@ use items_2::binning::container_bins::ContainerBins;
use netpod::ttl::RetentionTime; use netpod::ttl::RetentionTime;
use netpod::DtMs; use netpod::DtMs;
use netpod::TsNano; use netpod::TsNano;
use scylla::Session as ScySession;
use std::ops::Range; use std::ops::Range;
use streams::timebin::cached::reader::BinsReadRes; use streams::timebin::cached::reader::BinsReadRes;
type ScySession = scylla::client::session::Session;
async fn scylla_read_prebinned_f32( async fn scylla_read_prebinned_f32(
series: u64, series: u64,
bin_len: DtMs, bin_len: DtMs,

View File

@@ -3,12 +3,13 @@ use daqbuf_err as err;
use err::Error; use err::Error;
use netpod::log::*; use netpod::log::*;
use netpod::ScyllaConfig; use netpod::ScyllaConfig;
use scylla::execution_profile::ExecutionProfileBuilder; use scylla::client::execution_profile::ExecutionProfileBuilder;
use scylla::client::session::Session;
use scylla::client::session_builder::SessionBuilder;
use scylla::statement::Consistency; use scylla::statement::Consistency;
use scylla::Session as ScySession;
use std::sync::Arc; use std::sync::Arc;
pub async fn create_scy_session(scyconf: &ScyllaConfig) -> Result<Arc<ScySession>, Error> { pub async fn create_scy_session(scyconf: &ScyllaConfig) -> Result<Arc<Session>, Error> {
let scy = create_scy_session_no_ks(scyconf).await?; let scy = create_scy_session_no_ks(scyconf).await?;
scy.use_keyspace(&scyconf.keyspace, true) scy.use_keyspace(&scyconf.keyspace, true)
.await .await
@@ -17,9 +18,9 @@ pub async fn create_scy_session(scyconf: &ScyllaConfig) -> Result<Arc<ScySession
Ok(ret) Ok(ret)
} }
pub async fn create_scy_session_no_ks(scyconf: &ScyllaConfig) -> Result<ScySession, Error> { pub async fn create_scy_session_no_ks(scyconf: &ScyllaConfig) -> Result<Session, Error> {
info!("creating scylla connection"); info!("creating scylla connection");
let scy = scylla::SessionBuilder::new() let scy = SessionBuilder::new()
.known_nodes(&scyconf.hosts) .known_nodes(&scyconf.hosts)
.default_execution_profile_handle( .default_execution_profile_handle(
ExecutionProfileBuilder::default() ExecutionProfileBuilder::default()

View File

@@ -1,7 +1,5 @@
use daqbuf_err as err; use daqbuf_err as err;
use err::Error; use err::Error;
use scylla::transport::errors::NewSessionError as ScyNewSessionError;
use scylla::transport::errors::QueryError as ScyQueryError;
pub trait ErrConv<T> { pub trait ErrConv<T> {
fn err_conv(self) -> Result<T, Error>; fn err_conv(self) -> Result<T, Error>;
@@ -15,29 +13,39 @@ impl<T, A> ErrConv<T> for Result<T, async_channel::SendError<A>> {
} }
} }
} }
impl<T> ErrConv<T> for Result<T, ScyQueryError> {
fn err_conv(self) -> Result<T, Error> {
match self {
Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{e:?}"))),
}
}
}
impl<T> ErrConv<T> for Result<T, ScyNewSessionError> {
fn err_conv(self) -> Result<T, Error> {
match self {
Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{e:?}"))),
}
}
}
impl<T> ErrConv<T> for Result<T, scylla::deserialize::TypeCheckError> { impl<T> ErrConv<T> for Result<T, scylla::deserialize::TypeCheckError> {
fn err_conv(self) -> Result<T, Error> { fn err_conv(self) -> Result<T, Error> {
match self { match self {
Ok(k) => Ok(k), Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{e:?}"))), Err(e) => Err(Error::with_msg_no_trace(format!("{:?}", e))),
}
}
}
impl<T> ErrConv<T> for Result<T, scylla::errors::PagerExecutionError> {
fn err_conv(self) -> Result<T, Error> {
match self {
Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{:?}", e))),
}
}
}
impl<T> ErrConv<T> for Result<T, scylla::errors::NextRowError> {
fn err_conv(self) -> Result<T, Error> {
match self {
Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{:?}", e))),
}
}
}
impl<T> ErrConv<T> for Result<T, scylla::errors::NewSessionError> {
fn err_conv(self) -> Result<T, Error> {
match self {
Ok(k) => Ok(k),
Err(e) => Err(Error::with_msg_no_trace(format!("{:?}", e))),
} }
} }
} }

View File

@@ -29,7 +29,7 @@ use netpod::Shape;
use netpod::TsMs; use netpod::TsMs;
use netpod::TsMsVecFmt; use netpod::TsMsVecFmt;
use netpod::TsNano; use netpod::TsNano;
use scylla::Session; use scylla::client::session::Session;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::fmt; use std::fmt;
use std::pin::Pin; use std::pin::Pin;
@@ -96,10 +96,10 @@ autoerr::create_error_v1!(
RangeEndOverflow, RangeEndOverflow,
NotTokenAware, NotTokenAware,
Prepare(#[from] crate::events2::prepare::Error), Prepare(#[from] crate::events2::prepare::Error),
ScyllaQuery(#[from] scylla::transport::errors::QueryError), ScyllaNextRow(#[from] scylla::errors::NextRowError),
ScyllaNextRow(#[from] scylla::transport::iterator::NextRowError),
ScyllaWorker(Box<crate::worker::Error>), ScyllaWorker(Box<crate::worker::Error>),
ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError), ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError),
ScyllaPagerExecution(#[from] scylla::errors::PagerExecutionError),
}, },
); );
@@ -1070,8 +1070,8 @@ where
trait ValTy: Sized + 'static { trait ValTy: Sized + 'static {
type ScaTy: ScalarOps + std::default::Default; type ScaTy: ScalarOps + std::default::Default;
type ScyTy: for<'a, 'b> scylla::deserialize::DeserializeValue<'a, 'b>; type ScyTy: for<'a, 'b> scylla::deserialize::value::DeserializeValue<'a, 'b>;
type ScyRowTy: for<'a, 'b> scylla::deserialize::DeserializeRow<'a, 'b>; type ScyRowTy: for<'a, 'b> scylla::deserialize::row::DeserializeRow<'a, 'b>;
type Container: BinningggContainerEventsDyn + Empty + Appendable<Self>; type Container: BinningggContainerEventsDyn + Empty + Appendable<Self>;
fn from_valueblob(inp: Vec<u8>) -> Self; fn from_valueblob(inp: Vec<u8>) -> Self;
fn table_name() -> &'static str; fn table_name() -> &'static str;

View File

@@ -10,7 +10,7 @@ use netpod::log;
use netpod::ttl::RetentionTime; use netpod::ttl::RetentionTime;
use netpod::TsMs; use netpod::TsMs;
use netpod::TsMsVecFmt; use netpod::TsMsVecFmt;
use scylla::Session; use scylla::client::session::Session;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::pin::Pin; use std::pin::Pin;
use std::task::Context; use std::task::Context;
@@ -25,9 +25,9 @@ autoerr::create_error_v1!(
enum variants { enum variants {
Logic, Logic,
Worker(Box<crate::worker::Error>), Worker(Box<crate::worker::Error>),
ScyllaQuery(#[from] scylla::transport::errors::QueryError), ScyllaRow(#[from] scylla::errors::NextRowError),
ScyllaRow(#[from] scylla::transport::iterator::NextRowError),
ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError), ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError),
ScyllaPagerExecution(#[from] scylla::errors::PagerExecutionError),
}, },
); );
@@ -111,7 +111,7 @@ impl MspStreamRt {
let range = range.clone(); let range = range.clone();
async move { scyqueue.find_ts_msp(rt, series.id(), range, false).await } async move { scyqueue.find_ts_msp(rt, series.id(), range, false).await }
}; };
let do_trace_detail = netpod::TRACE_SERIES_ID.contains(&series.id()); let do_trace_detail = daqbuf_series::dbg::dbg_series(series.clone());
trace_emit!(do_trace_detail, "------------------------------------- TEST TRACE"); trace_emit!(do_trace_detail, "------------------------------------- TEST TRACE");
Self { Self {
rt, rt,

View File

@@ -1,13 +1,13 @@
use netpod::ttl::RetentionTime; use netpod::ttl::RetentionTime;
use scylla::prepared_statement::PreparedStatement; use scylla::client::session::Session;
use scylla::Session; use scylla::statement::prepared::PreparedStatement;
autoerr::create_error_v1!( autoerr::create_error_v1!(
name(Error, "ScyllaPrepare"), name(Error, "ScyllaPrepare"),
enum variants { enum variants {
ScyllaQuery(#[from] scylla::transport::errors::QueryError), ScyllaNextRow(#[from] scylla::errors::NextRowError),
ScyllaNextRow(#[from] scylla::transport::iterator::NextRowError),
ScyllaWorker(Box<crate::worker::Error>), ScyllaWorker(Box<crate::worker::Error>),
ScyllaPrepare(#[from] scylla::errors::PrepareError),
MissingQuery(String), MissingQuery(String),
RangeEndOverflow, RangeEndOverflow,
InvalidFuture, InvalidFuture,

View File

@@ -15,7 +15,7 @@ use netpod::log::*;
use netpod::range::evrange::NanoRange; use netpod::range::evrange::NanoRange;
use netpod::timeunits::MS; use netpod::timeunits::MS;
use netpod::CONNECTION_STATUS_DIV; use netpod::CONNECTION_STATUS_DIV;
use scylla::Session as ScySession; use scylla::client::session::Session as ScySession;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::pin::Pin; use std::pin::Pin;
use std::sync::Arc; use std::sync::Arc;

View File

@@ -19,7 +19,7 @@ use netpod::ttl::RetentionTime;
use netpod::DtMs; use netpod::DtMs;
use netpod::ScyllaConfig; use netpod::ScyllaConfig;
use netpod::TsMs; use netpod::TsMs;
use scylla::Session; use scylla::client::session::Session;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::fmt; use std::fmt;
use std::pin::Pin; use std::pin::Pin;
@@ -44,8 +44,9 @@ autoerr::create_error_v1!(
Toplist(#[from] crate::accounting::toplist::Error), Toplist(#[from] crate::accounting::toplist::Error),
MissingKeyspaceConfig, MissingKeyspaceConfig,
CacheWriteF32(#[from] streams::timebin::cached::reader::Error), CacheWriteF32(#[from] streams::timebin::cached::reader::Error),
ScyllaQuery(#[from] scylla::transport::errors::QueryError),
ScyllaType(#[from] scylla::deserialize::TypeCheckError), ScyllaType(#[from] scylla::deserialize::TypeCheckError),
ScyllaNextRow(#[from] scylla::errors::NextRowError),
ScyllaPagerExecution(#[from] scylla::errors::PagerExecutionError),
}, },
); );
@@ -55,7 +56,7 @@ impl<T> From<async_channel::SendError<T>> for Error {
} }
} }
type ScySessTy = scylla::transport::session::GenericSession<scylla::transport::session::CurrentDeserializationApi>; type ScySessTy = scylla::client::session::Session;
#[derive(Debug)] #[derive(Debug)]
struct ReadPrebinnedF32 { struct ReadPrebinnedF32 {

View File

@@ -19,7 +19,7 @@ arrayref = "0.3.9"
crc32fast = "1.4.2" crc32fast = "1.4.2"
byteorder = "1.5.0" byteorder = "1.5.0"
async-channel = "1.9.0" async-channel = "1.9.0"
rand_xoshiro = "0.6.0" rand_xoshiro = "0.7.0"
autoerr = "0.0.3" autoerr = "0.0.3"
chrono = { version = "0.4.39", features = ["serde"] } chrono = { version = "0.4.39", features = ["serde"] }
netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" }