Skip to content

Releases

v2.0

Choose a tag to compare

@Alexandar83 Alexandar83 released this 24 Feb 21:14

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 WallProfile objects.
  • WallProgress is now linked directly to Wall objects.
  • Ice amounts are stored in a more aggregated form within the WallProgress objects.
  • 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_MODE for performance testing.
  • Enables selective test execution or full suite runs.
  • Aggregates results from consecutive runs with optimized logging.


🎉 v2.0 is now live! 🚀

v1.0

Choose a tag to compare

@Alexandar83 Alexandar83 released this 28 Dec 20:50
Release version 1.0