- Add worker registration to MyceliumStreamer: Allows for explicit
addition of workers, improving management and control.
- Simplify worker message handling: Streamlines message processing
for increased efficiency and readability. Removes unnecessary
logging and simplifies message routing.
- Remove redundant message handling: Eliminates duplicate code
paths for cleaner and more maintainable code.
- Improve worker data retrieval: Facilitates direct data retrieval
from workers, enhancing efficiency and reliability.
- Allow reading data directly from specific workers by specifying
their public key in `MyceliumStreamer.read()`. This improves
data retrieval flexibility and allows for distributed data access.
- Add master data reading to ensure data consistency and allow
comparison between master and worker data. This helps debug and
verify data replication.
- Implement JSON encoding/decoding for database transfer between
master and worker nodes. This enables efficient and structured
data exchange.
- Removed unnecessary test data from `deduped_mycelium_master.vsh`.
- Simplified `MyceliumStreamer.listen()` to efficiently handle
incoming messages, removing redundant code and improving readability.
- Enhanced error handling in `MyceliumStreamer.listen()` for more robust
operation.
- Added worker ID to master and worker configurations for improved
identification and management.
- Implemented worker registration and data synchronization mechanisms
to enable distributed data access.
- Added a read function to retrieve data from specific workers,
enhancing data access flexibility.
- Improved logging for better monitoring and debugging of the system.
- Added continuous data writing and verification to the master node
to ensure data persistence and integrity.
- Simplified worker update handling in the `listen` function for
better efficiency and error handling. The previous implementation
had unnecessary complexity and potential for hangs.
- Changed Mycelium worker port to avoid conflict with master.
- Added debug print statements to Mycelium client for better troubleshooting.
- Removed unnecessary `SyncData` struct, simplifying data handling.
- Updated data encoding/decoding to directly use base64 for efficiency.
- Clarified message topic names for better understanding.
- Refactor database streamer to support multiple workers.
- Add master node to manage and distribute data updates.
- Implement worker nodes to receive and apply updates.
- Remove unnecessary slave node.
- Improve error handling and logging.
- Use base64 encoding for JSON compatibility in data transfer.
- Renamed the topic for database synchronization messages from
'db_sync' to 'sync_db' for clarity.
- Updated the Mycelium slave to decode base64 payload before
processing and to log received messages and their source.
- Added logging to the Mycelium streamer to track sent messages.
- Added a new feature to retrieve and log the last index from the
worker after syncing updates. This improves monitoring and
debugging capabilities.
- Refactor data synchronization logic to use Mycelium messages for
efficient updates between master and worker nodes. This removes
the previous inefficient polling method and simplifies the code.
- Update the slave node to receive and apply updates from the
master, improving synchronization efficiency and robustness.
- Change the default slave port to 9000.
- Rename `db` variable to `worker` for clarity.
- Introduces `MyceliumStreamer` for synchronizing data across a
Mycelium network, enabling distributed data access.
- Allows adding multiple worker nodes to the streamer for data
replication and redundancy.
- Provides `write` and `read` methods for seamless data
management across nodes.