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

View File

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

View File

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

View File

@@ -7,6 +7,6 @@ edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
daqbuf-err = { path = "../../../daqbuf-err" }
autoerr = "0.0.3"
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" }
hyper = { version = "1.6.0", features = ["http1", "http2", "client", "server"] }
hyper-util = { version = "0.1.10", features = ["http1", "http2", "client", "server"] }
h3 = { version = "0.0.6", optional = true }
h3-quinn = { version = "0.0.7", optional = true }
h3 = { version = "0.0.8", 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"] }
rustls = { version = "0.23.22", optional = true, default-features = false, features = ["logging", "std", "ring"] }
rustls-pki-types = { version = "1.11.0", optional = true }
@@ -26,7 +26,7 @@ futures-util = "0.3.31"
tracing = "0.1"
tracing-futures = "0.2"
async-channel = "2.3.1"
itertools = "0.13.0"
itertools = "0.14.0"
time = "0.3.37"
chrono = "0.4.39"
md-5 = "0.10.6"
@@ -34,7 +34,7 @@ regex = "1.11.1"
rand = "0.9.0"
ciborium = "0.2.2"
flate2 = "1"
brotli = "7.0.0"
brotli = "8.0.1"
autoerr = "0.0.3"
daqbuf-err = { path = "../../../daqbuf-err" }
netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" }

View File

@@ -68,7 +68,9 @@ autoerr::create_error_v1!(
Async(#[from] netpod::AsyncChannelError),
ChannelConfig(#[from] dbconn::channelconfig::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),
},
);

View File

@@ -894,13 +894,7 @@ pub trait ErrConv<T> {
fn err_conv(self) -> Result<T, daqbuf_err::Error>;
}
impl<T> ErrConv<T> for Result<T, scylla::transport::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> {
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:?}")))
}
@@ -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 {}
impl MapPulseScyllaHandler {

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,12 +3,13 @@ use daqbuf_err as err;
use err::Error;
use netpod::log::*;
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::Session as ScySession;
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?;
scy.use_keyspace(&scyconf.keyspace, true)
.await
@@ -17,9 +18,9 @@ pub async fn create_scy_session(scyconf: &ScyllaConfig) -> Result<Arc<ScySession
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");
let scy = scylla::SessionBuilder::new()
let scy = SessionBuilder::new()
.known_nodes(&scyconf.hosts)
.default_execution_profile_handle(
ExecutionProfileBuilder::default()

View File

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

View File

@@ -10,7 +10,7 @@ use netpod::log;
use netpod::ttl::RetentionTime;
use netpod::TsMs;
use netpod::TsMsVecFmt;
use scylla::Session;
use scylla::client::session::Session;
use std::collections::VecDeque;
use std::pin::Pin;
use std::task::Context;
@@ -25,9 +25,9 @@ autoerr::create_error_v1!(
enum variants {
Logic,
Worker(Box<crate::worker::Error>),
ScyllaQuery(#[from] scylla::transport::errors::QueryError),
ScyllaRow(#[from] scylla::transport::iterator::NextRowError),
ScyllaRow(#[from] scylla::errors::NextRowError),
ScyllaTypeCheck(#[from] scylla::deserialize::TypeCheckError),
ScyllaPagerExecution(#[from] scylla::errors::PagerExecutionError),
},
);
@@ -111,7 +111,7 @@ impl MspStreamRt {
let range = range.clone();
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");
Self {
rt,

View File

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

View File

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

View File

@@ -19,7 +19,7 @@ use netpod::ttl::RetentionTime;
use netpod::DtMs;
use netpod::ScyllaConfig;
use netpod::TsMs;
use scylla::Session;
use scylla::client::session::Session;
use std::collections::VecDeque;
use std::fmt;
use std::pin::Pin;
@@ -44,8 +44,9 @@ autoerr::create_error_v1!(
Toplist(#[from] crate::accounting::toplist::Error),
MissingKeyspaceConfig,
CacheWriteF32(#[from] streams::timebin::cached::reader::Error),
ScyllaQuery(#[from] scylla::transport::errors::QueryError),
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)]
struct ReadPrebinnedF32 {

View File

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