Module async_optimize

Module async_optimize 

Source
Expand description

Async optimizations for high-performance database operations.

This module provides utilities for:

  • Concurrent execution: Run independent database operations in parallel
  • Pipelined operations: Execute multiple queries with minimal round-trips
  • Introspection optimization: Fetch schema metadata concurrently

§Performance Gains

OptimizationUse CaseTypical Improvement
Concurrent introspectiondb pull with many tables40-60% faster
Parallel trigger creationMigrations with procedures30-50% faster
Pipelined bulk opsBatch inserts/updates50-70% faster

§Example

use prax_query::async_optimize::{
    concurrent::{ConcurrentExecutor, ConcurrencyConfig},
    pipeline::{QueryPipeline, PipelineConfig},
};

// Concurrent execution with controlled parallelism
let executor = ConcurrentExecutor::new(ConcurrencyConfig::default());
let results = executor.execute_all(tasks).await?;

// Pipelined database operations
let pipeline = QueryPipeline::new(PipelineConfig::default())
    .add_query("SELECT * FROM users WHERE id = $1", vec![1.into()])
    .add_query("SELECT * FROM posts WHERE author_id = $1", vec![1.into()]);
let results = pipeline.execute(&client).await?;

Re-exports§

pub use concurrent::ConcurrencyConfig;
pub use concurrent::ConcurrentExecutor;
pub use concurrent::ExecutionStats;
pub use concurrent::TaskError;
pub use concurrent::TaskResult;
pub use introspect::ConcurrentIntrospector;
pub use introspect::IntrospectionConfig;
pub use introspect::IntrospectionResult;
pub use introspect::TableMetadata;
pub use pipeline::PipelineConfig;
pub use pipeline::PipelineError;
pub use pipeline::PipelineResult;
pub use pipeline::QueryPipeline;

Modules§

concurrent
Concurrent task execution with controlled parallelism.
introspect
Concurrent database introspection utilities.
pipeline
Pipelined database execution for high-throughput operations.