Cell Struct KCoreCell { bool alive; long remain_nodes; List neighbors; } struct StartMessage { long kCoreNum; } protocol StartServer { Type: Asyn; Request: StartMessage; Response: void; } struct OneRemoval { long remove_pt; long remove_degree; } struct RemoveEdgeMessage { List to_remove; } protocol GatherRemovedEdges { Type: Asyn; Request: RemoveEdgeMessage; Response: void; } struct AliveMessage { long alive_point_num; long removed_point_num; long run_times; long removed_msg_packages; } protocol AskAlive { Type: Syn; Request: void; Response: AliveMessage; } struct Edge { long src; long dst; } struct EdgeList { List edge_list; } protocol AddEdge { Type: Syn; Request: EdgeList; Response: void; } enum Phases { // DataLoad Phases DataLoad = 0, } struct PhaseFinishedMessage { Phases Phase; } protocol PhaseFinished { Type: Asyn; Request: PhaseFinishedMessage; Response: void; } proxy ProxyServer { protocol PhaseFinished; } protocol SetAlive { Type: Syn; Request: void; Response: void; } server GraphServer { protocol StartServer; protocol GatherRemovedEdges; protocol AskAlive; protocol AddEdge; protocol SetAlive; }