def Read(self, request, context): if DEBUG: print("Requesting Datanode.Read") dn = Datanode(self.port) data = dn.read(request.blockname, request.timestamp) if DEBUG: print("\t Datanode.Read completed successfully! ") return datanode_pb2.ReadReply(data=data, success=True)
def Store(self, request, context): if DEBUG: print("Requesting DataNode.Store") dn = Datanode(self.port) dn.write(request.blockname, request.timestamp, request.data) if DEBUG: print("\tDataNode.Store completed successfully!") return datanode_pb2.StoreReply(success=True)
def __init__(self, datanode): Thread.__init__(self) self.datanode = datanode processor = Datanode.Processor(self.datanode) transport = TSocket.TServerSocket(port=DATANODE_PORT) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() #self.server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) self.server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory)
def __init__(self, host, port=DATANODE_PORT, timeout=TIMEOUT): # Make socket self.socket = TSocket.TSocket(host, port) self.socket.setTimeout(timeout) # Buffering is critical. Raw sockets are very slow self.transport = TTransport.TBufferedTransport(self.socket) # Wrap in a protocol self.protocol = TBinaryProtocol.TBinaryProtocol(self.transport) # Create a client to use the protocol encoder self.client = Datanode.Client(self.protocol) # Connect! self.transport.open()