On Frequency Estimation and Detection of Heavy Hitters in Data Streams