Wednesday, August 19, 2015

Program to monitor web traffic - day and week basis << Ajeet Singh



Program to monitor web traffic – day and week basis « Ajeet Singh
We need to design a function to gives real time statistics of our web traffic, like count for the day's website visit,count one week's website visit.
I am targeting an algorithm for O(1) complexity with minimum required memory. So after spending some time in design of a fancy data structure I finalize this simplest approach.
-- have to be synchronized.
-- Find better solution.
Class CyclicBuffer {
 private final int[] buffer;
 private final int weeksCounter = 0;
 private int lastDay;
 public CyclicBuffer(){
 buffer = new int[7];
 }
public void increaseHitsForTheDay(int day){
 if(lastDay+1 == day){
 weeksCounter = weeksCounter - buffer[day];
 buffer[day] = 0;
 }
 ++buffer[day];
 ++weeksCounter;
 lastDay = day;
 }
public int getHistForTheDay(int day){
 return buffer[day];
 }
 public int getHistForCurrentWeek(){
 return weeksCounter;
 }
}
Read full article from Program to monitor web traffic – day and week basis « Ajeet Singh

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts