risingwave
risingwave copied to clipboard
streaming: hash join executor causing slow compile
cargo bloat result:
File .text Size Crate Name
0.1% 0.2% 70.6KiB risingwave_expr risingwave_expr::expr::expr_binary_nonnull::new_binary_expr
0.1% 0.1% 55.1KiB risingwave_frontend risingwave_frontend::handler::handle::{{closure}}
0.0% 0.1% 47.1KiB aws_sdk_s3 aws_sdk_s3::operation_deser::parse_head_object_response
0.0% 0.1% 42.9KiB aws_sdk_s3 aws_sdk_s3::operation_deser::parse_get_object
0.0% 0.1% 30.8KiB risingwave_batch <risingwave_batch::executor::row_seq_scan::RowSeqScanExecutorBuilder as risingwave_batch::ex...
0.0% 0.1% 29.9KiB regex <regex::exec::ExecNoSync as regex::re_trait::RegularExpression>::captures_read_at
0.0% 0.1% 29.4KiB zstd_sys _ZSTD_compressBlock_doubleFast_dictMatchState
0.0% 0.1% 29.1KiB risingwave_meta risingwave_meta::stream::stream_manager::GlobalStreamManager<S>::create_materialized_view::{...
0.0% 0.1% 29.1KiB risingwave_meta risingwave_meta::stream::stream_manager::GlobalStreamManager<S>::create_materialized_view::{...
0.0% 0.1% 28.8KiB [Unknown] _LZ4HC_compress_generic_dictCtx
0.0% 0.1% 26.6KiB risingwave_batch <risingwave_batch::executor::row_seq_scan::RowSeqScanExecutorBuilder as risingwave_batch::ex...
0.0% 0.1% 25.2KiB risingwave_meta risingwave_meta::rpc::server::rpc_serve_with_store::{{closure}}
0.0% 0.1% 25.2KiB risingwave_meta risingwave_meta::rpc::server::rpc_serve_with_store::{{closure}}
0.0% 0.1% 24.8KiB [Unknown] _LZ4HC_compress_generic_noDictCtx
0.0% 0.1% 23.8KiB risingwave_ctl risingwave_ctl::cmd_impl::hummock::list_kv::list_kv::{{closure}}
0.0% 0.1% 23.8KiB rdkafka_sys _rd_kafka_parse_Metadata
0.0% 0.1% 21.1KiB etcd_client etcd_client::client::Client::connect::{{closure}}
0.0% 0.1% 21.0KiB zstd_sys _ZSTD_compressBlock_fast_dictMatchState
0.0% 0.1% 20.9KiB risingwave_storage risingwave_storage::monitor::state_store_metrics::StateStoreMetrics::new
0.0% 0.1% 20.7KiB risingwave_frontend risingwave_frontend::session::FrontendEnv::with_meta_client::{{closure}}
0.0% 0.0% 20.5KiB aws_config aws_config::loader::ConfigLoader::load::{{closure}}
0.0% 0.0% 20.2KiB zstd_sys _ZSTD_compressBlock_fast
0.0% 0.0% 18.9KiB risingwave_cmd_all risingwave_cmd_all::playground::playground::{{closure}}
0.0% 0.0% 18.8KiB curl_sys _Curl_vsetopt
0.0% 0.0% 18.4KiB risingwave_source risingwave_source::parser::avro_parser::read_schema_from_s3::{{closure}}
0.0% 0.0% 18.2KiB [Unknown] __mh_execute_header
0.0% 0.0% 18.0KiB aws_config aws_config::loader::ConfigLoader::load::{{closure}}
0.0% 0.0% 18.0KiB risingwave_connector risingwave_connector::pulsar::source::reader::PulsarSingleSplitReader::new::{{closure}}
0.0% 0.0% 17.9KiB risingwave_meta risingwave_meta::hummock::hummock_manager::HummockManager<S>::new_with_config::{{closure}}
0.0% 0.0% 17.9KiB risingwave_meta risingwave_meta::hummock::hummock_manager::HummockManager<S>::new_with_config::{{closure}}
0.0% 0.0% 17.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.6KiB aws_config aws_config::loader::ConfigLoader::load::{{closure}}
0.0% 0.0% 17.4KiB zstd_sys _ZSTD_decompressBlock_internal
0.0% 0.0% 17.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.4KiB [Unknown] _rd_kafka_fetch_reply_handle
0.0% 0.0% 17.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 17.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.6KiB risingwave_frontend risingwave_frontend::binder::expr::<impl risingwave_frontend::binder::Binder>::bind_expr
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.4KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.3KiB risingwave_frontend prost::encoding::hash_map::encode_with_default
0.0% 0.0% 16.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.3KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.2KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.1KiB risingwave_frontend risingwave_frontend::binder::relation::<impl risingwave_frontend::binder::Binder>::bind_tabl...
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_expr risingwave_expr::expr::expr_unary::new_unary_expr
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 16.0KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB zstd_sys _ZSTD_compressBlock_doubleFast
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB pulsar? <pulsar::message::proto::BaseCommand as prost::message::Message>::encoded_len
0.0% 0.0% 15.9KiB pulsar? <pulsar::message::proto::BaseCommand as prost::message::Message>::encoded_len
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.9KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB regex regex::exec::ExecBuilder::build
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.8KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB pulsar prost::message::Message::decode
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.7KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_meta <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.6KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
0.0% 0.0% 15.5KiB risingwave_stream risingwave_stream::executor::hash_join::HashJoinExecutor<K,S,_>::into_stream::{{closure}}
HashJoinExecutor could produce ~30 variants, each 15KiB, which (might) cause codegen to be very slow. Currently, compiling risingwave_stream crate would take as much as 5min on EC2, and ~4min on M1 MacBook Pro in release mode.
Another experiment: remove the body of into_stream
and flush_data
of HashJoinExecutor. After this change, recompile only takes 2m10s (previously 3m30s, 1.5x faster!). risingwave_stream crate immediately finishes compile, and most time is spent on recompile risingwave_cmd_all.
We should consider move HashJoin into a separate crate, or reduce generics in HashJoin, so that it can compile faster.
One feasible solution is to shrink the scope of generics. e.g. only have JoinSide on critical sections, instead of over full join executor. In this way, we can generate as few code as possible for those async functions.
Indeed hash join might be using const generic to generate duplicate code for non-critical sections. I'll take a look to see if this can be improved.
After dropping support for TiKV and RocksDB state backend, 3m30s -> 2m37s 🤪
After changing all start
functions' signature to:
pub fn start(opts: ComputeNodeOpts) -> Pin<Box<dyn Future<Output = ()> + Send>> {
(previously, we use pub async fn start
so that the async will be expanded in risingwave_cmd_all crate instead of compiling in-place)
2m37s -> 1m 59s!
After also dropping memory state backend support (only in release mode), 1m 30s :)
The time is measured by: changing the LOCAL_CHANNEL_OUTPUT
size and recompile using
cargo build -p risingwave_cmd_all --release
Okay, so the remaining is for @yuhao-su to optimize hash join 🤣
I'm curious if a struct has a generic K
, will those functions of the struct that does not use K
be expanded and compiled multiple time?
After a closer look, I think it is hard to make improvements by adjusting generic use. generic K
(join key type) is already used across the hash join executor. We should know the hash map type when creating the executor.
The only two functions s do not involve K
are row_concat
and bool_from_array_ref
.
The bottlenecks that have to do with most expanding are eq_join_oneside
and HashJoinChunkBuilder
.
eq_join_oneside
requires K
(key types) T
(join type) and SIDE
(join side). That means it needs a lot of expanding. But indeed there is a potential optimization. K
is only needed for getting matched rows, and we can separate this function from the build join output function. But this separation will natively be done at concurrent fetching refactor.
HashJoinChunkBuilder
requires T
(join type) and SIDE
(join side). Those expanding can't be improved.
After all, hash join does require a lot of expanding (mainly caused by the number of join types and the optimization of join key type). So if we really want to shorten the compile time, we'd better just put it in another crate.
Is it possible to have some inner parts of code to return Box<dyn Stream>
, Box<dyn Future>
instead opaque type and async fn? So that this "boxed" part can be re-used by compilers.
I guess the main overhead of compile is expanding the async function body (which requires constructing a state machine). If we can make non critical sections to have Box<dyn Future>
, then this part won't be included in the state machine, and thus improving compile speed.
Hmmm, it might be possible. We can make the fetching from remote part return Box<dyn Future>
.
But this will make our code looks less readable and harder to refactor those code in the future, also the impact to performance is unknow. So I'm not sure if it is worth to do this. Maybe we can consider splitting some parts into different crates to improve recompiling?
I think we need further investigation on the trade-off between the runtime performance and compile speed after we're in production🤣. For now, I think it's okay to apply some type-erasure mechanisms for this.