Wpd Ai Session Data Chunk Size

Alpha Insights Documentation

Docs Navigation

Filter: wpd_ai_session_data_chunk_size

Control the chunk size used when querying session data in batches. This helps optimize database queries for large datasets by processing session IDs in smaller chunks.

Description

When fetching session data for analytics reports, Alpha Insights processes session IDs in chunks to avoid memory issues and optimize database performance. This filter allows you to customize the chunk size based on your server capabilities and data volume.

Location

File: includes/classes/WPD_Data_Warehouse_React.php

Method: WPD_Data_Warehouse_React::get_session_data_by_ids()

Line: ~6222

Parameters

Parameter Type Description
$chunk_size int The number of session IDs to process per chunk (default: 100-200 based on session ID length)

Return

Type: int

Description: Modified chunk size (must be a positive integer)

Default Behavior

The plugin automatically determines chunk size based on average session ID length:

  • Very long session IDs (>60 chars): 100 per chunk
  • Medium-long session IDs (40-60 chars): 150 per chunk
  • Standard session IDs (<40 chars): 200 per chunk

Example Usage

Increase Chunk Size for Better Performance

add_filter( 'wpd_ai_session_data_chunk_size', 'increase_session_chunk_size' );
function increase_session_chunk_size( $chunk_size ) {
    // Increase to 500 for high-performance servers
    return 500;
}

Reduce Chunk Size for Memory-Constrained Servers

add_filter( 'wpd_ai_session_data_chunk_size', 'reduce_session_chunk_size' );
function reduce_session_chunk_size( $chunk_size ) {
    // Reduce to 50 for servers with limited memory
    return 50;
}

Dynamic Chunk Size Based on Server Load

add_filter( 'wpd_ai_session_data_chunk_size', 'dynamic_session_chunk_size' );
function dynamic_session_chunk_size( $chunk_size ) {
    // Get server load average (Unix/Linux only)
    if ( function_exists( 'sys_getloadavg' ) ) {
        $load = sys_getloadavg();
        $current_load = $load[0];
        
        // Reduce chunk size if server is under heavy load
        if ( $current_load > 2.0 ) {
            return max( 50, (int) ( $chunk_size * 0.5 ) );
        }
    }
    
    return $chunk_size;
}

Chunk Size Based on Available Memory

add_filter( 'wpd_ai_session_data_chunk_size', 'memory_based_chunk_size' );
function memory_based_chunk_size( $chunk_size ) {
    // Get available memory
    $memory_limit = ini_get( 'memory_limit' );
    $memory_limit_bytes = wp_convert_hr_to_bytes( $memory_limit );
    $memory_usage = memory_get_usage( true );
    $available_memory = $memory_limit_bytes - $memory_usage;
    
    // Adjust chunk size based on available memory
    if ( $available_memory 

Best Practices

  • Start with default values and adjust based on performance
  • Monitor memory usage when increasing chunk size
  • Use smaller chunks on shared hosting environments
  • Larger chunks = fewer queries but more memory usage
  • Smaller chunks = more queries but less memory usage
  • Test with your actual data volume before production

Performance Impact

Chunk Size Memory Usage Query Count Best For
50 Low High Shared hosting, low memory
100-200 (default) Medium Medium Most standard setups
300-500 High Low Dedicated servers, high memory

Important Notes

  • Chunk size must be a positive integer
  • Very large chunk sizes may cause memory exhaustion
  • Very small chunk sizes may slow down queries
  • Default values are optimized for most use cases
  • Only adjust if you’re experiencing performance issues

Debugging

add_filter( 'wpd_ai_session_data_chunk_size', 'debug_session_chunk_size', 999 );
function debug_session_chunk_size( $chunk_size ) {
    error_log( 'Alpha Insights Session Chunk Size: ' . $chunk_size );
    error_log( 'Memory Usage: ' . size_format( memory_get_usage( true ) ) );
    return $chunk_size;
}

Related Filters

Related Classes

  • WPD_Data_Warehouse_React – React dashboard data warehouse

Got A Question?

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Alpha Insights

Alpha Insights

The World's Most Advanced WooCommerce Drag & Drop Report Builder.

5/5 – Trustpilot

Alpha Insights