Amazon Interview Question
Software Engineer / DevelopersTeam: EBS
Country: United States
Interview Type: In-Person
I will create threads. Will count the number of sessions at that time
Let say there are N sessions. Will create N/n threads let say every thread scans n sessions.
Now sessions can be removed based on their time stamp
Keep a linked list of <Session, timestamp> pairs.
- huio April 12, 2013Keep a hash table of Session-> SessionTimestamp list node, for constant time lookup into the list above.
Every time a Session is used, find the list node, update the timestamp, and move the node to the end of the list. This means the list goes from last active, to latest active Sessions.
Every once in a while (SessionManager class can be an active object), go through the list and purge sessions that haven't been active in N seconds. Note that when you're going through the list purging Sessions, you can stop the search as soon as you reach a Session that has been active in the last N sessions, since the list is sorted.