Communities in Streaming Graphs: Small Space Data Structure, Benchmark Data Generation, and Linear Algorithm