We’re running OutSystems Process Mining in a cloud deployment and experiencing significant performance degradation when uploading event logs larger than 500MB. The analysis bot times out after about 45 minutes, and we’re seeing resource scaling issues on the cloud infrastructure.
Our current setup processes logs in a single batch, which works fine for smaller datasets but fails on enterprise-scale event data. Here’s what we’re seeing:
upload_config = {
'batch_size': 'full',
'timeout': 2700,
'memory_limit': '8GB'
}
The timeout configuration seems insufficient for large datasets, and we suspect the cloud resource allocation isn’t scaling properly. Has anyone dealt with similar performance bottlenecks in cloud-deployed process mining scenarios?
Let me provide a comprehensive solution that addresses all three critical areas you’re facing:
1. Cloud Resource Scaling Configuration:
First, configure your cloud deployment to use auto-scaling with appropriate thresholds. For OutSystems Process Mining, set minimum instance memory to 16GB and enable vertical scaling up to 32GB when processing large logs. In your cloud provider’s console, create a scaling policy that monitors CPU (>75%) and memory (>70%) metrics.
2. Timeout Configuration Update:
Modify your upload configuration to handle long-running operations:
upload_config = {
'timeout': 7200,
'connection_timeout': 300,
'read_timeout': 3600,
'retry_attempts': 3
}
The connection timeout handles initial handshake, while read timeout manages the actual data transfer. This prevents premature disconnections during large uploads.
3. Batch Processing Implementation:
Implement chunked processing for logs over 200MB. Here’s the approach:
# Pseudocode - Large log processing steps:
1. Split event log into 100MB chunks (preserve case_id integrity)
2. Upload each chunk with sequence metadata (chunk 1 of N)
3. Process chunks in parallel with max_workers=3
4. Merge analysis results using Process Mining API merge endpoint
5. Trigger final consolidation job after all chunks complete
# Reference: OutSystems Process Mining API v2.1 documentation
Critical Implementation Notes:
- Enable the ‘incremental_processing’ flag in your Process Mining configuration to allow chunk merging
- Set up a monitoring dashboard to track chunk upload progress and resource utilization
- Configure cloud storage (S3/Blob) for intermediate chunk storage to reduce memory pressure
- Use the Process Mining REST API’s batch upload endpoint rather than the UI for automated large-scale processing
Performance Metrics We Achieved:
- 500MB logs: Processing time reduced from timeout (45min+) to 25 minutes
- 1GB logs: Successfully processed in 42 minutes with 3 parallel chunks
- Resource utilization: 40% reduction in peak memory usage
- Success rate: 99.2% (vs previous 60% timeout rate)
The key is combining all three approaches - proper cloud scaling, adequate timeouts, and intelligent batch processing. This creates a robust pipeline that handles enterprise-scale event data reliably.
Thanks both. I’ve increased the timeout to 7200s but still seeing issues with the batch processing approach. How exactly do you split the event logs? Do you use a preprocessing script or does OutSystems have built-in chunking capabilities?
I’ve seen this exact issue before. The problem is that OutSystems Process Mining’s default cloud configuration doesn’t auto-scale resources based on upload size. You need to implement batch processing for large logs instead of trying to process everything at once. Split your 500MB+ files into 100MB chunks and process them sequentially.
Adding to what Mike said - your timeout of 2700 seconds (45 min) is way too low for large event logs in cloud environments. We increased ours to 7200 seconds and saw immediate improvements. Also check your cloud provider’s memory allocation settings. The 8GB limit might be throttling your processing. Our setup uses dynamic memory scaling up to 16GB for large batches, which helps significantly with the analysis bot performance.
One more thing to check - your cloud resource scaling policies. In AWS or Azure, you need to configure auto-scaling rules specifically for compute-intensive workloads. We set up vertical scaling (increasing instance size) triggered when memory usage exceeds 70% during uploads. This ensures the analysis bot gets adequate resources without manual intervention.
OutSystems doesn’t have native chunking for process mining uploads. We built a Python preprocessing script that splits CSV event logs by row count (typically 200k rows per chunk for us). The key is maintaining chronological order and ensuring case IDs aren’t split across chunks. Also, make sure your cloud deployment has proper queue management - we use a message queue to handle the chunked uploads sequentially, which prevents resource contention.