diff --git a/Cargo.lock b/Cargo.lock index e01aca01f8f36..25bb1c6439961 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -891,9 +891,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cb6d108605c5489fff1ef9c520656946ad05ed0de3ea6d26d56bcb34bdb8c5" dependencies = [ "anyhow", - "arrow-array 50.0.0", - "arrow-buffer 50.0.0", - "arrow-schema 50.0.0", + "arrow-array 52.0.0", + "arrow-buffer 52.0.0", + "arrow-schema 52.0.0", "atomic-time", "rquickjs", ] @@ -905,10 +905,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4506efc6fbc200c083add2a7ed4e3616a859941a745e922320ae7051d90d12ec" dependencies = [ "anyhow", - "arrow-array 50.0.0", - "arrow-buffer 50.0.0", - "arrow-ipc 50.0.0", - "arrow-schema 50.0.0", + "arrow-array 52.0.0", + "arrow-buffer 52.0.0", + "arrow-ipc 52.0.0", + "arrow-schema 52.0.0", "lazy_static", "pyo3", "pyo3-build-config", @@ -921,9 +921,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb829e25925161d93617d4b053bae03fe51e708f2cce088d85df856011d4f369" dependencies = [ "anyhow", - "arrow-array 50.0.0", - "arrow-ipc 50.0.0", - "arrow-schema 50.0.0", + "arrow-array 52.0.0", + "arrow-ipc 52.0.0", + "arrow-schema 52.0.0", "async-trait", "base64 0.22.0", "genawaiter", @@ -5389,11 +5389,33 @@ dependencies = [ "urlencoding", ] +[[package]] +name = "google-cloud-auth" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1112c453c2e155b3e683204ffff52bcc6d6495d04b68d9e90cd24161270c5058" +dependencies = [ + "async-trait", + "base64 0.21.7", + "google-cloud-metadata", + "google-cloud-token", + "home", + "jsonwebtoken", + "reqwest 0.12.4", + "serde", + "serde_json", + "thiserror", + "time", + "tokio", + "tracing", + "urlencoding", +] + [[package]] name = "google-cloud-bigquery" -version = "0.9.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e321c127945bb44a5cf5129c37530e2494b97afefe7f334a983ac754e40914e" +checksum = "305cb7214d11b719e9f00f982c1ee1304c674f7a8dfc44a43b8bad3c909750c2" dependencies = [ "anyhow", "arrow 50.0.0", @@ -5401,9 +5423,9 @@ dependencies = [ "backon", "base64 0.21.7", "bigdecimal 0.4.5", - "google-cloud-auth", - "google-cloud-gax", - "google-cloud-googleapis", + "google-cloud-auth 0.16.0", + "google-cloud-gax 0.19.0", + "google-cloud-googleapis 0.15.0", "google-cloud-token", "num-bigint", "reqwest 0.12.4", @@ -5432,6 +5454,22 @@ dependencies = [ "tracing", ] +[[package]] +name = "google-cloud-gax" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3eaaad103912825594d674a4b1e556ccbb05a13a6cac17dcfd871997fb760a" +dependencies = [ + "google-cloud-token", + "http 1.1.0", + "thiserror", + "tokio", + "tokio-retry", + "tonic 0.12.1", + "tower", + "tracing", +] + [[package]] name = "google-cloud-googleapis" version = "0.13.0" @@ -5443,6 +5481,17 @@ dependencies = [ "tonic 0.10.2", ] +[[package]] +name = "google-cloud-googleapis" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae8ab26ef7c7c3f7dfb9cc3982293d031d8e78c85d00ddfb704b5c35aeff7c8" +dependencies = [ + "prost 0.13.1", + "prost-types 0.13.1", + "tonic 0.12.1", +] + [[package]] name = "google-cloud-metadata" version = "0.5.0" @@ -5462,9 +5511,9 @@ checksum = "0a35e4a008db5cf01a5c03d3c67bd90b3cad77427ca949f3c8eddd90c4a3c932" dependencies = [ "async-channel 1.9.0", "async-stream", - "google-cloud-auth", - "google-cloud-gax", - "google-cloud-googleapis", + "google-cloud-auth 0.15.0", + "google-cloud-gax 0.17.0", + "google-cloud-googleapis 0.13.0", "google-cloud-token", "prost-types 0.12.1", "thiserror", @@ -5473,11 +5522,30 @@ dependencies = [ "tracing", ] +[[package]] +name = "google-cloud-pubsub" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ef73601dcec5ea144e59969e921d35d66000211603fee8023b7947af09248f" +dependencies = [ + "async-channel 1.9.0", + "async-stream", + "google-cloud-auth 0.16.0", + "google-cloud-gax 0.19.0", + "google-cloud-googleapis 0.15.0", + "google-cloud-token", + "prost-types 0.13.1", + "thiserror", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "google-cloud-token" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcd62eb34e3de2f085bcc33a09c3e17c4f65650f36d53eb328b00d63bcb536a" +checksum = "8f49c12ba8b21d128a2ce8585955246977fbce4415f680ebf9199b6f9d6d725f" dependencies = [ "async-trait", ] @@ -9176,13 +9244,13 @@ dependencies = [ [[package]] name = "prost-reflect" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9372e3227f3685376a0836e5c248611eafc95a0be900d44bc6cdf225b700f" +checksum = "55a6a9143ae25c25fa7b6a48d6cc08b10785372060009c25140a4e7c340e95af" dependencies = [ "once_cell", - "prost 0.12.1", - "prost-types 0.12.1", + "prost 0.13.1", + "prost-types 0.13.1", ] [[package]] @@ -9927,7 +9995,7 @@ dependencies = [ "console", "fs-err", "glob", - "google-cloud-pubsub", + "google-cloud-pubsub 0.25.0", "indicatif", "itertools 0.12.1", "madsim-rdkafka", @@ -10024,7 +10092,6 @@ dependencies = [ "parquet 52.0.0", "paste", "prometheus", - "prost 0.12.1", "rand", "risingwave_common", "risingwave_common_estimate_size", @@ -10366,7 +10433,7 @@ dependencies = [ "async-trait", "axum 0.7.4", "futures", - "hyper 0.14.27", + "http 1.1.0", "madsim-tokio", "madsim-tonic", "prometheus", @@ -10446,7 +10513,9 @@ dependencies = [ "foyer", "futures", "futures-async-stream", + "http 1.1.0", "hyper 0.14.27", + "hyper 1.4.1", "itertools 0.12.1", "madsim-tokio", "madsim-tonic", @@ -10528,9 +10597,9 @@ dependencies = [ "gcp-bigquery-client", "glob", "google-cloud-bigquery", - "google-cloud-gax", - "google-cloud-googleapis", - "google-cloud-pubsub", + "google-cloud-gax 0.19.0", + "google-cloud-googleapis 0.15.0", + "google-cloud-pubsub 0.28.1", "http 0.2.9", "iceberg", "iceberg-catalog-rest", @@ -10559,10 +10628,10 @@ dependencies = [ "postgres-openssl", "pretty_assertions", "prometheus", - "prost 0.12.1", + "prost 0.13.1", "prost-build 0.12.1", "prost-reflect", - "prost-types 0.12.1", + "prost-types 0.13.1", "protobuf-native", "protobuf-src", "pulsar", @@ -11126,7 +11195,7 @@ dependencies = [ "function_name", "futures", "hex", - "hyper 0.14.27", + "http 1.1.0", "itertools 0.12.1", "jsonbb", "madsim-etcd-client", @@ -14329,6 +14398,7 @@ dependencies = [ "axum 0.7.4", "base64 0.22.0", "bytes", + "flate2", "h2 0.4.4", "http 1.1.0", "http-body 1.0.0", @@ -14339,13 +14409,16 @@ dependencies = [ "percent-encoding", "pin-project", "prost 0.13.1", + "rustls-pemfile 2.1.1", "socket2 0.5.6", "tokio", + "tokio-rustls 0.26.0", "tokio-stream", "tower", "tower-layer", "tower-service", "tracing", + "webpki-roots 0.26.1", ] [[package]] diff --git a/src/batch/Cargo.toml b/src/batch/Cargo.toml index ec7091ea882c4..815606f831e02 100644 --- a/src/batch/Cargo.toml +++ b/src/batch/Cargo.toml @@ -37,7 +37,6 @@ parking_lot = { workspace = true } parquet = { workspace = true } paste = "1" prometheus = { version = "0.13", features = ["process"] } -prost = "0.12" rand = { workspace = true } risingwave_common = { workspace = true } risingwave_common_estimate_size = { workspace = true } diff --git a/src/batch/src/executor/hash_agg.rs b/src/batch/src/executor/hash_agg.rs index d69d4fbc8b174..21385ba1e3f33 100644 --- a/src/batch/src/executor/hash_agg.rs +++ b/src/batch/src/executor/hash_agg.rs @@ -20,7 +20,7 @@ use bytes::Bytes; use futures_async_stream::try_stream; use hashbrown::hash_map::Entry; use itertools::Itertools; -use prost::Message; +use risingwave_pb::Message; use risingwave_common::array::{DataChunk, StreamChunk}; use risingwave_common::bitmap::Bitmap; use risingwave_common::catalog::{Field, Schema}; diff --git a/src/batch/src/executor/join/hash_join.rs b/src/batch/src/executor/join/hash_join.rs index 026f03fb65deb..83c38af5e14cf 100644 --- a/src/batch/src/executor/join/hash_join.rs +++ b/src/batch/src/executor/join/hash_join.rs @@ -20,7 +20,7 @@ use std::sync::Arc; use bytes::Bytes; use futures_async_stream::try_stream; use itertools::Itertools; -use prost::Message; +use risingwave_pb::Message; use risingwave_common::array::{Array, DataChunk, RowRef}; use risingwave_common::bitmap::{Bitmap, BitmapBuilder}; use risingwave_common::catalog::Schema; diff --git a/src/batch/src/executor/order_by.rs b/src/batch/src/executor/order_by.rs index 3f8c8e106c78f..ad7cc13992346 100644 --- a/src/batch/src/executor/order_by.rs +++ b/src/batch/src/executor/order_by.rs @@ -17,7 +17,6 @@ use std::sync::Arc; use bytes::Bytes; use futures_async_stream::try_stream; use itertools::Itertools; -use prost::Message; use risingwave_common::array::DataChunk; use risingwave_common::catalog::Schema; use risingwave_common::memory::MemoryContext; @@ -28,6 +27,7 @@ use risingwave_common::util::sort_util::ColumnOrder; use risingwave_common_estimate_size::EstimateSize; use risingwave_pb::batch_plan::plan_node::NodeBody; use risingwave_pb::data::DataChunk as PbDataChunk; +use risingwave_pb::Message; use super::{ BoxedDataChunkStream, BoxedExecutor, BoxedExecutorBuilder, Executor, ExecutorBuilder, diff --git a/src/batch/src/spill/spill_op.rs b/src/batch/src/spill/spill_op.rs index 237ee3baf0099..dcfa910ac272b 100644 --- a/src/batch/src/spill/spill_op.rs +++ b/src/batch/src/spill/spill_op.rs @@ -22,7 +22,7 @@ use futures_util::AsyncReadExt; use opendal::layers::RetryLayer; use opendal::services::{Fs, Memory}; use opendal::Operator; -use prost::Message; +use risingwave_pb::Message; use risingwave_common::array::DataChunk; use risingwave_pb::data::DataChunk as PbDataChunk; use thiserror_ext::AsReport; diff --git a/src/common/common_service/Cargo.toml b/src/common/common_service/Cargo.toml index cb43702f3f9e6..87206ab7cbc1d 100644 --- a/src/common/common_service/Cargo.toml +++ b/src/common/common_service/Cargo.toml @@ -18,7 +18,7 @@ normal = ["workspace-hack"] async-trait = "0.1" axum = { workspace = true } futures = { version = "0.3", default-features = false, features = ["alloc"] } -hyper = "0.14" # required by tonic +http = "1" prometheus = { version = "0.13" } risingwave_common = { workspace = true } risingwave_pb = { workspace = true } diff --git a/src/common/common_service/src/tracing.rs b/src/common/common_service/src/tracing.rs index 3ee4a64231c29..c9a2968c76368 100644 --- a/src/common/common_service/src/tracing.rs +++ b/src/common/common_service/src/tracing.rs @@ -15,8 +15,8 @@ use std::task::{Context, Poll}; use futures::Future; -use hyper::Body; use risingwave_common::util::tracing::TracingContext; +use tonic::body::BoxBody; use tower::{Layer, Service}; use tracing::Instrument; @@ -49,9 +49,9 @@ pub struct TracingExtract { inner: S, } -impl Service> for TracingExtract +impl Service> for TracingExtract where - S: Service> + Clone + Send + 'static, + S: Service> + Clone + Send + 'static, S::Future: Send + 'static, { type Error = S::Error; @@ -63,7 +63,7 @@ where self.inner.poll_ready(cx) } - fn call(&mut self, req: hyper::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { // This is necessary because tonic internally uses `tower::buffer::Buffer`. // See https://github.com/tower-rs/tower/issues/547#issuecomment-767629149 // for details on why this is necessary @@ -72,7 +72,7 @@ where async move { let span = - if let Some(tracing_context) = TracingContext::from_http_headers(req.headers()) { + if let Some(tracing_context) = TracingContext::from_http_1_headers(req.headers()) { let span = tracing::info_span!( "grpc_serve", "otel.name" = req.uri().path(), diff --git a/src/common/src/util/meta_addr.rs b/src/common/src/util/meta_addr.rs index 286d4d45f5ca7..0f761efe3cb04 100644 --- a/src/common/src/util/meta_addr.rs +++ b/src/common/src/util/meta_addr.rs @@ -24,8 +24,8 @@ const META_ADDRESS_LOAD_BALANCE_MODE_PREFIX: &str = "load-balance+"; /// Used in the command line argument `--meta-address`. #[derive(Debug, Eq, PartialEq, Clone)] pub enum MetaAddressStrategy { - LoadBalance(http::Uri), - List(Vec), + LoadBalance(http_1::Uri), + List(Vec), } /// Error type for parsing meta address strategy. @@ -36,7 +36,7 @@ pub enum MetaAddressStrategyParseError { #[error("there should be only one load balance address")] MultipleLoadBalance, #[error("failed to parse meta address `{1}`: {0}")] - UrlParse(#[source] http::uri::InvalidUri, String), + UrlParse(#[source] http_1::uri::InvalidUri, String), } impl FromStr for MetaAddressStrategy { @@ -84,7 +84,7 @@ impl fmt::Display for MetaAddressStrategy { impl MetaAddressStrategy { /// Returns `Some` if there's exactly one address. - pub fn exactly_one(&self) -> Option<&http::Uri> { + pub fn exactly_one(&self) -> Option<&http_1::Uri> { match self { MetaAddressStrategy::LoadBalance(lb) => Some(lb), MetaAddressStrategy::List(list) => { diff --git a/src/compute/Cargo.toml b/src/compute/Cargo.toml index a3f74792982f2..93dc9e070edd1 100644 --- a/src/compute/Cargo.toml +++ b/src/compute/Cargo.toml @@ -23,7 +23,9 @@ either = "1" foyer = { workspace = true } futures = { version = "0.3", default-features = false, features = ["alloc"] } futures-async-stream = { workspace = true } -hyper = "0.14" # required by tonic +http = "1" +hyper-014 = { package = "hyper", version = "0.14" } +hyper = "1" itertools = { workspace = true } maplit = "1.0.2" pprof = { version = "0.13", features = ["flamegraph"] } diff --git a/src/compute/src/rpc/service/monitor_service.rs b/src/compute/src/rpc/service/monitor_service.rs index a9a41d753ac96..e18abf5d03e4a 100644 --- a/src/compute/src/rpc/service/monitor_service.rs +++ b/src/compute/src/rpc/service/monitor_service.rs @@ -389,8 +389,8 @@ pub mod grpc_middleware { use either::Either; use futures::Future; - use hyper::Body; - use tonic::transport::NamedService; + use tonic::body::BoxBody; + use tonic::server::NamedService; use tower::{Layer, Service}; /// Manages the await-trees of `gRPC` requests that are currently served by the compute node. @@ -438,10 +438,9 @@ pub mod grpc_middleware { next_id: Arc, } - impl Service> for AwaitTreeMiddleware + impl Service> for AwaitTreeMiddleware where - S: Service> + Clone + Send + 'static, - S::Future: Send + 'static, + S: Service> + Clone, { type Error = S::Error; type Response = S::Response; @@ -452,7 +451,7 @@ pub mod grpc_middleware { self.inner.poll_ready(cx) } - fn call(&mut self, req: hyper::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { let Some(registry) = self.registry.clone() else { return Either::Left(self.inner.call(req)); }; diff --git a/src/connector/Cargo.toml b/src/connector/Cargo.toml index a5db0c4fcb938..9fac87eed9d27 100644 --- a/src/connector/Cargo.toml +++ b/src/connector/Cargo.toml @@ -61,10 +61,10 @@ futures = { version = "0.3", default-features = false, features = ["alloc"] } futures-async-stream = { workspace = true } gcp-bigquery-client = "0.18.0" glob = "0.3" -google-cloud-bigquery = { version = "0.9.0", features = ["auth"] } -google-cloud-gax = "0.17.0" -google-cloud-googleapis = { version = "0.13", features = ["pubsub", "bigquery"] } -google-cloud-pubsub = "0.25" +google-cloud-bigquery = { version = "0.12.0", features = ["auth"] } +google-cloud-gax = "0.19.0" +google-cloud-googleapis = { version = "0.15", features = ["pubsub", "bigquery"] } +google-cloud-pubsub = "0.28" http = "0.2" iceberg = { workspace = true } iceberg-catalog-rest = { workspace = true } @@ -99,9 +99,9 @@ paste = "1" pg_bigdecimal = { git = "https://github.com/risingwavelabs/rust-pg_bigdecimal", rev = "0b7893d88894ca082b4525f94f812da034486f7c" } postgres-openssl = "0.5.0" prometheus = { version = "0.13", features = ["process"] } -prost = { version = "0.12", features = ["no-recursion-limit"] } -prost-reflect = "0.13" -prost-types = "0.12" +prost = { version = "0.13", features = ["no-recursion-limit"] } +prost-reflect = "0.14" +prost-types = "0.13" protobuf-native = "0.2.2" pulsar = { version = "6.3", default-features = false, features = [ "tokio-runtime", diff --git a/src/meta/Cargo.toml b/src/meta/Cargo.toml index 4cd5695658641..41ea1fa61521a 100644 --- a/src/meta/Cargo.toml +++ b/src/meta/Cargo.toml @@ -36,7 +36,7 @@ flate2 = "1" function_name = "0.3.0" futures = { version = "0.3", default-features = false, features = ["alloc"] } hex = "0.4" -hyper = "0.14" # required by tonic +http = "1" itertools = { workspace = true } jsonbb = { workspace = true } maplit = "1.0.2" diff --git a/src/meta/node/src/server.rs b/src/meta/node/src/server.rs index c4aa4c57141a9..2dc34120f277b 100644 --- a/src/meta/node/src/server.rs +++ b/src/meta/node/src/server.rs @@ -497,7 +497,7 @@ pub async fn start_service_as_election_leader( metadata_manager: metadata_manager.clone(), compute_clients: ComputeClientPool::new(1), // typically no need for plural clients diagnose_command, - trace_state, + // trace_state, }; let task = tokio::spawn(dashboard_service.serve()); Some(task) diff --git a/src/meta/src/rpc/intercept.rs b/src/meta/src/rpc/intercept.rs index 8b5bb67f30943..87151e06b88a1 100644 --- a/src/meta/src/rpc/intercept.rs +++ b/src/meta/src/rpc/intercept.rs @@ -16,7 +16,7 @@ use std::sync::Arc; use std::task::{Context, Poll}; use futures::Future; -use hyper::Body; +use tonic::body::BoxBody; use tower::{Layer, Service}; use crate::rpc::metrics::MetaMetrics; @@ -49,9 +49,9 @@ pub struct MetricsMiddleware { metrics: Arc, } -impl Service> for MetricsMiddleware +impl Service> for MetricsMiddleware where - S: Service> + Clone + Send + 'static, + S: Service> + Clone + Send + 'static, S::Future: Send + 'static, { type Error = S::Error; @@ -63,7 +63,7 @@ where self.inner.poll_ready(cx) } - fn call(&mut self, req: hyper::Request) -> Self::Future { + fn call(&mut self, req: http::Request) -> Self::Future { // This is necessary because tonic internally uses `tower::buffer::Buffer`. // See https://github.com/tower-rs/tower/issues/547#issuecomment-767629149 // for details on why this is necessary diff --git a/src/object_store/src/object/s3.rs b/src/object_store/src/object/s3.rs index 0ef12f3da3a3f..62a8bf6907230 100644 --- a/src/object_store/src/object/s3.rs +++ b/src/object_store/src/object/s3.rs @@ -643,7 +643,7 @@ impl S3ObjectStore { .enable_all_versions() .wrap_connector(http); - let conn = monitor_connector(conn, "S3"); + // let conn = monitor_connector(conn, "S3"); HyperClientBuilder::new().build(conn) } diff --git a/src/prost/src/lib.rs b/src/prost/src/lib.rs index f26f8c9f38d91..5a00c5493b566 100644 --- a/src/prost/src/lib.rs +++ b/src/prost/src/lib.rs @@ -19,6 +19,7 @@ use std::str::FromStr; +pub use prost::Message; use risingwave_error::tonic::ToTonicStatus; use thiserror::Error;