-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdynamo.py
More file actions
executable file
·27 lines (20 loc) · 1.1 KB
/
dynamo.py
File metadata and controls
executable file
·27 lines (20 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import socket
import argparse
from node import Node
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--leader', help='Hostname of leader')
parser.add_argument('--port', default=13337, type=int, help='TCP port number for server socket')
parser.add_argument('--qsize', default=5, type=int, help='Fraction of peers on which data will be replicated')
parser.add_argument('--sq_write_n', default=3, type=int, help='Min number of confirmed peers in a put operation with sloppy quorum')
parser.add_argument('--sq_read_n', default=3, type=int, help='Number of polled peers in a get operation')
args = parser.parse_args()
is_leader = False # is the current node the leader
hostname = socket.gethostname()
leader_hostname = args.leader
if not leader_hostname or (leader_hostname == hostname):
is_leader = True
leader_hostname = hostname
n = Node(is_leader, leader_hostname, hostname, tcp_port=args.port,
sloppy_Qsize=args.qsize, sloppy_R=args.sq_read_n, sloppy_W=args.sq_write_n)
n.accept_connections()