| Age | Commit message (Collapse) | Author |
|
|
|
This commit adds a complete implementation of the Raft consensus algorithm,
providing a robust solution for achieving consensus in distributed systems.
Key features implemented:
- Three-state system: Follower, Candidate, and Leader states
- Leader election with randomized election timeouts (150-300ms)
- Log replication for state machine commands
- Heartbeat mechanism to maintain leader authority
- Safety guarantees through term numbers and log consistency checks
- Proper handling of split votes and network partitions
Implementation details:
- Added VSRaftProtocol.java with full Raft algorithm logic
- Integrated with existing event-driven simulation framework
- Supports dynamic cluster sizes with proper quorum calculations
- Implements RequestVote and AppendEntries RPCs
- Maintains persistent state (currentTerm, votedFor, log entries)
- Includes comprehensive logging for debugging and visualization
Testing:
- Added VSRaftProtocolTest.java with unit tests covering:
- Leader election scenarios
- Log replication mechanics
- State transitions
- Message handling for all RPC types
Integration:
- Registered protocol in VSRegisteredEvents for simulator discovery
- Added human-readable names in VSDefaultPrefs for UI display
- Compatible with existing visualization and timing systems
This implementation follows the Raft paper closely while adapting to
the simulator's event-driven architecture and message-passing model.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Create version.properties resource file with Maven placeholders
- Enable Maven resource filtering for version.properties
- Add VSVersionInfo utility class to read version at runtime
- Update VSDefaultPrefs to use dynamic version instead of hardcoded
- Version now shows "Distributed Systems Simulator 1.0.1-SNAPSHOT"
- Includes build timestamp for better traceability
The version in the title bar is now automatically updated from the
pom.xml version during the build process.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
Change application name from "VS-Simulator 1.2-beta" to
"Distributed Systems Simulator 1.2-beta" for better clarity.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Add language strings for all timestamp events and demo protocol in VSDefaultPrefs
- Register new timestamp events and protocol in VSRegisteredEvents:
- VSLamportTimestampEvent
- VSVectorTimestampEvent
- VSTimestampMonitorEvent
- VSTimestampTriggeredEvent
- VSTimestampDemoProtocol
- Integrate VSVectorClockMonitor into VSInternalProcess:
- Add vectorClockMonitor field
- Override increaseVectorTime() and updateVectorTime() to trigger monitor
- Clear monitor events on reset
- Add getVectorClockMonitor() accessor
- Add serialization support to VSTimestampTriggeredEvent for persistence
- Fix VSTimestampDemoProtocol to use process's vector clock monitor
- All 132 unit tests pass
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
- Change default locale from German to English in VSMain.java
- Fix language key typos: "loging" → "logging" throughout codebase
- Improve English language strings:
- "Insert" → "Add" for better UX terminology
- "Fullfilled" → "Fulfilled" (spelling correction)
- "GLobal" → "Global" (capitalization fix)
- "Delete logs" → "Clear logs" (more appropriate action)
- Update all references to changed language keys
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
configuration - Fix localization string handling - Add missing localization strings - Improve protocol event handling
|
|
config, update README and .gitignore
|