Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/martoon-00/dkvs
Задание по распределённым системам
https://github.com/martoon-00/dkvs
Last synced: about 1 month ago
JSON representation
Задание по распределённым системам
- Host: GitHub
- URL: https://github.com/martoon-00/dkvs
- Owner: Martoon-00
- Created: 2015-06-18T19:09:42.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-06-19T20:28:57.000Z (over 9 years ago)
- Last Synced: 2023-08-03T21:11:06.108Z (over 1 year ago)
- Language: Java
- Size: 156 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
Awesome Lists containing this project
README
How to use:
Launch com.company.Main
-) To launch a node, type in console "dkvs_node "
-) To launch an automatic client, type "client_auto []", it will send random requests with specified delay (default 3000 ms.)
-) To launch a manual client, type "client_console ".
-) To clear all journals, type "clear". When more than half of nodes are shutdown, correctness of system is lost, do not forget about it!
Id for clients influences only on output logs and Judge functionality. When several clients with same id are launched under the same runtime, Judge may display errors which actually have no place
(so in release version it may be preferred to disable judge and launch all clients with zero id)When nodes and clients are launched under same runtime and Judge.ACTIVE is set to 'true', following errors will be logged:
-) different leaders exist at same term
-) different nodes committed different logs at same index
and warnings:
-) client waits for operation for too much time
These features become disabled depending on how nodes and clients are broken up among runtimesAlso when judge is active, nodes on receiving a message will rarely fall asleep (that message will be lost)
Notes:
-) If logs should be redirected to file, make sure ru.ifmo.ivanov.lang.misc.LogText.COLORED is set to false.
-) To communicate with nodes, you may extend ru.ifmo.ivanov.lang.client.RaftClient and use sendNewOperation() method.