Thanks for the response, Matt.
To give a little context, I am implementing a count estimate of events streaming through a Storm topology. The peak total throughput of the system is about 12k events/second.
I need to have a rolling count of unique items for five and sixty minutes, updated at, say, 15 second intervals.
I had been thinking that I would need to make changes to the StreamSummary class to allow storing a rolling queue of counts for each item, where old counts expire every 15s (e.g. for the 5-minute window, there would be a queue of 300s/15s=20 counts for each item).
I ended up going with the simpler approach you suggested of creating a StreamSummary for each 15s interval, and in current testing I found that the memory requirements are still well within acceptable levels.
I'm still experimenting with different configurations, but again, fantastic, well-documented library!
Thanks-