Skip to content

v0.2

Choose a tag to compare

@snonux snonux released this 12 Jul 10:59
· 241 commits to master since this release

Release v0.2

Release Notes

This release represents a major architectural overhaul of VS-Sim, introducing a more robust and feature-rich distributed systems simulation environment. The focus has been on improving the core simulation engine, enhancing the user interface, and expanding protocol support.

🚀 New Features

Advanced Time Management System

  • Vector Clock Support: Added comprehensive vector timestamp implementation alongside existing Lamport timestamps for better distributed event ordering
  • Berkeley Time Protocol: New time synchronization protocol implementation for studying distributed clock synchronization
  • Enhanced Time Visualization: Improved time representation with better historical tracking and display

Expanded Protocol Library

  • Two-Phase Commit Protocol: Full implementation of the classic distributed transaction protocol
  • One-Phase Commit Protocol: Simplified commit protocol for comparison studies
  • Enhanced Protocol Framework: Redesigned protocol architecture with better abstraction and extensibility

Improved User Interface

  • Modern Icon Set: Professional PNG icons for all simulation controls (start, pause, reset, replay)
  • Tabbed Interface: New tabbed layout for better organization of simulation components
  • Anti-Aliasing Support: Smooth graphics rendering with configurable anti-aliasing
  • Intelligent Window Positioning: Automatic window placement for better user experience
  • Real-time Variable Editing: Inline table editor for dynamic parameter adjustment

Enhanced Task Management

  • Redesigned Task Manager: Complete rewrite with better performance and reliability
  • Process Recovery Events: Manual and automatic crash/recovery simulation capabilities
  • Clock Speed Control: Adjustable simulation speed for detailed analysis or quick overview
  • Smart Task Scheduling: Improved scheduling algorithms with better conflict resolution

🔧 Improvements

Performance & Reliability

  • Synchronized Buffer Strategy: Eliminated rendering artifacts and improved visual stability
  • Memory Management: Better resource handling and cleanup procedures
  • Logging Enhancements: Text wrapping and improved message formatting in log output

User Experience

  • Expert/Simple Mode Toggle: Quick switching between detailed and simplified interfaces
  • Process Management: Easy process creation and deletion with proper cleanup
  • Protocol Editor Redesign: Streamlined protocol configuration interface
  • Keyboard Shortcuts: Improved navigation and control options

Code Quality

  • Documentation: Comprehensive JavaDoc documentation added throughout codebase
  • Code Organization: Restructured packages for better maintainability
  • Error Handling: Improved error reporting and recovery mechanisms

🐛 Bug Fixes

  • Fixed random crash task generation and scheduling
  • Resolved process highlighting timing issues during pause states
  • Corrected message reception handling for own messages
  • Fixed divider location persistence in preferences
  • Addressed time synchronization edge cases
  • Improved popup menu behavior and positioning

⚠️ Breaking Changes

API Changes

  • VSMessage is no longer a VSEvent - use MessageReceiveEvent wrapper instead
  • Protocol classes now extend VSAbstractProtocol instead of VSProtocol
  • Event system redesigned with separate implementations and internal packages

File Structure

  • Moved editor classes to prefs.editors package
  • Reorganized protocol implementations under protocols.implementations
  • Updated simulation classes with new naming conventions

📦 Migration Notes

When upgrading from v0.1:

  1. Custom protocols need to extend VSAbstractProtocol and implement new abstract methods
  2. Message handling code should be updated to use the new event system
  3. Process configuration files may need parameter name updates (some keys renamed with "sim." prefix removal)

🛠️ Technical Details

  • License: Added X11 MIT license for open source compatibility
  • Build System: Updated build configuration and documentation
  • Testing: Enhanced test coverage and validation procedures
  • Platform Support: Improved cross-platform compatibility

This release establishes a solid foundation for advanced distributed systems education and research, with significantly improved usability and extensibility for future enhancements.