Repository navigation
Releases
v2.0
Release Notes - v2.0
📌 Versioning & Compatibility
- v2.0 is not backward compatible with v1.0
- API request formats and response structures have been reworked to align with updated requirements.
- Consumers of the API should update their integrations accordingly.
I. Implement New Requirements
1. Increased Profile and Section Limits:
- The wall now supports up to 300 one-mile profiles.
- Each wall profile can contain up to 2,000 sections.
2. Reworked API Endpoints for Cost and Usage Calculations:
- Existing v1 endpoints have been reworked to support updated requirements.
- Enhanced structure and response format for cost and ice usage retrieval.
- Supports daily and total cost calculations for individual profiles and the entire wall.
3. The num_crews parameter is used in all endpoints.
4. Logging requirements:
- Processes/threads log section completions on the day they are finished.
- If no sections remain, logs indicate
"relieved"status.
II. Process Optimizations
1. Vectorization for Faster Calculations in Sequential Simulations
- Implemented NumPy-based vectorization to improve build simulation efficiency.
- Daily progress is now stored in batches, reducing processing time.
2. Optimized File Logging for Simulations
- Move the real-time logging during concurrent calculations into a StringIO object to reduce disk I/O overhead.
- Logs are written in bulk at the end of the simulation without any additional formatting.
- This approach preserves the original intent of real-time logging to showcase synchronization between processes/threads.
3. Database Model Refactoring
- Removed intermediate
WallProfileobjects. WallProgressis now linked directly toWallobjects.- Ice amounts are stored in a more aggregated form within the
WallProgressobjects. - Store only ice amounts to save storage space.
- Costs are calculated dynamically in API responses.
4. Task Management Enhancements
- Users can only run one active build simulation at a time.
- The API returns an appropriate response if a user attempts multiple simultaneous tasks.
5. Celery Task Distribution Changes
- Pre-caching of full-range wall build simulations is introduced for configurations up to a predefined limit.
- For configurations exceeding this limit:
- Simulations run synchronously up to a set threshold.
- Above the threshold, tasks are offloaded to Celery for async processing.
6. Centralized Application Messages
- Standardized API messages across endpoints for better consistency.
III. Performance Gains
1. Sequential Build Simulations
• Now up to 10x faster than the previous version.
2. Concurrent Build Simulations
• Improved efficiency, reducing processing time by up to 50%.
3. Increased Processing Limits
• The maximum number of wall sections per simulation increased from 2,000 to 600,000.
4. Optimized Test Suite Execution
• More test cases added while reducing execution time.
IV. New Features
Automated Test Batch Runner
- Supports uninterrupted test execution with configurable iterations.
- Allows dynamic control over
CONCURRENT_SIMULATION_MODEfor performance testing. - Enables selective test execution or full suite runs.
- Aggregates results from consecutive runs with optimized logging.
🎉 v2.0 is now live! 🚀