Repository navigation
v0.2
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
VSMessageis no longer aVSEvent- useMessageReceiveEventwrapper instead- Protocol classes now extend
VSAbstractProtocolinstead ofVSProtocol - Event system redesigned with separate
implementationsandinternalpackages
File Structure
- Moved editor classes to
prefs.editorspackage - Reorganized protocol implementations under
protocols.implementations - Updated simulation classes with new naming conventions
📦 Migration Notes
When upgrading from v0.1:
- Custom protocols need to extend
VSAbstractProtocoland implement new abstract methods - Message handling code should be updated to use the new event system
- 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.