If we want to cache some of the hot URLs that are frequently accessed, how much memory will we need to store them? If we follow the 80-20 rule, meaning 20% of URLs generate 80% of traffic, we would like to cache these 20% hot URLs. We will need 15TB of total storage:įor write requests, since we expect 200 new URLs every second, total incoming data for our service will be 100KB per second:įor read requests, since every second we expect ~20K URLs redirections, total outgoing data for our service would be 10MB per second: Let’s assume that each stored object will be approximately 500 bytes (just a ballpark estimate-we will dig into it later). Since we expect to have 500M new URLs every month, the total number of objects we expect to store will be 30 billion:ĥ00 million * 5 years * 12 months = 30 billion Let’s assume we store every URL shortening request (and associated shortened link) for 5 years. What would be Queries Per Second (QPS) for our system? New URLs shortenings per second:ĥ00 million / (30 days * 24 hours * 3600 seconds) = ~200 URLs/sĬonsidering 100:1 read/write ratio, URLs redirections per second will be: Let’s assume a 100:1 ratio between read and write.Īssuming, we will have 500M new URL shortenings per month, with 100:1 read/write ratio, we can expect 50B redirections during the same period: There will be lots of redirection requests compared to new URL shortenings. Our service should also be accessible through REST APIs by other services.Analytics e.g., how many times a redirection happened?.Shortened links should not be guessable (not predictable).URL redirection should happen in real-time with minimal latency.This is required because, if our service is down, all the URL redirections will start failing. The system should be highly available.Users should be able to specify the expiration time. Links will expire after a standard default timespan.Users should optionally be able to pick a custom short link for their URL.When users access a short link, our service should redirect them to the original link.This link should be short enough to be easily copied and pasted into applications. Given a URL, our service should generate a shorter and unique alias of it.Our URL shortening system should meet the following requirements: Be sure to ask questions to find the exact scope of the system that the interviewer has in mind. □ You should always clarify requirements at the beginning of the interview. This will help you a lot in understanding this chapter. If you haven’t used before, please try creating a new shortened URL and spend some time going through the various options their service offers. URL shortening is used to optimize links across devices, track individual links to analyze audience, measure ad campaigns' performance, or hide affiliated original URLs. The shortened URL is nearly one-third the size of the actual URL. Additionally, users are less likely to mistype shorter URLs.įor example, if we shorten the following URL through TinyURL: Short links save a lot of space when displayed, printed, messaged, or tweeted. We call these shortened aliases “short links.” Users are redirected to the original URL when they hit these short links. URL shortening is used to create shorter aliases for long URLs.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |