Комментарии:
Could you do more system design videos?
This was super insightful and really well explained.
Any of these would be so helpful to understand in your delivery and explanatory sttyle:
Google Docs
Twitter
LeetCode
API Rate Limiter
BookMyShow
Chat Application
E-Commerce Portal
Splitwise
Vending Machine
Google Autosuggest
Uber
Parking Lot
Stock Exchange
Logging System
Authentication Service
Either way, thanks for the video man!
Amazing way of explanation.... I watched many YT videos and they all confused me. You nailed it ✌️ Tysm
ОтветитьExcellent approach and proper delivery of content !
ОтветитьPlease make more videos on systems design. The content here is presented succinctly with non-complex simple diagrams and licid explanation.
Ответитьbase62 encoding can result in a string of any length. And we are not supposed to take first 7 chars to avoid collision. So that means we take what ever output we get from base64.
This is what I want to hear from these videos, but believe me none of them emphasize on this. They just say blabla and use base62.
Thank you for sharing this much of information.👍👍
ОтветитьThe best comprehensive tinyURL video for system design i've seen so far. Please make more!
ОтветитьIf we add 10-15 bits at the end of counter number then it will increase the base62 output size and exceed the 7 character limit. So can you clarify how that addition of random string works?
ОтветитьWhy base 62 not base 64
ОтветитьFor caching, will it be better to have some kind of background job that populates the cache with the most popular URLs from the database? Else if you're always adding a URL to the cache, then it's no longer just the popular URLs but all of them (or at least the capacity of the cache).
Ответитьthis was very good, clean and concise. Really like this video, especially the logic as to not pick sql
ОтветитьThanks a lot for making this video
ОтветитьGood Stuff!
Ответитьwhy can't the database (mongodb) itself generate an auto increment ID and then server can generate MD5 or base62 after adding salt to it ?
Since db upon creation would never fail to generate a unique primary key it would avoid single point of faliure.
Making a distributed solution for generating ID seems overkill here..
I am new to this so let me know if there is a problem in this solution.
If you are using a unique counter why do you still need md5 and base62 encoding.? And then you need additional complexity like integrate zoo keeper etc just to maintain counters.
ОтветитьHow does your hashing work o.O - you take an 128 bit md5, and then make a base62 out of it with 20+ chars. How are you sure there are not collisions when only taking a subset of the base62 aka md5 hash(just differently displayed)? o.O
ОтветитьThe counter example is incorrect - Another solution could be to append the user id (which should be unique) to the input URL. However, if the user has not signed in, we would have to ask the user to choose a uniqueness key. Even after this, if we have a conflict, we have to keep generating a key until we get a unique one.
Ответитьdoes Base62Encoding of counter guarantee to return only 6 characters or 7 characters string ? if this is the case then when we do Base62Encoding on MD5 hashed value, in that case also it should return 6 or 7 characters of string...…please clear this doubt
ОтветитьLRU cache eviction has a big short coming. If we assume the cache is always at capacity with each new shortURL creation, then that means one of the top 20% URL will surely get evicted from cache, to make room for a random unpopular URL someone has submitted.
This eviction approach means there will be a steady state of URLs in the cache that are not popular at all.
Great explanation Plz post more system design videos Thanks :)
ОтветитьWhy do we have to use base62enode after MD5???
Why is MD5 not enough??
This video is inaccurate base62encode(0) is not aAbB123
ОтветитьConcerning the round robin approach to load balancing not taking server load into consideration, such that it might still forward request to an overloaded or slow server, I believe that due to the style of this approach, if one server is overloaded, then all the servers are possibly overloaded else seeing that it would have been distributing the loads equally except if the servers are not of equal capacity which will then bring the question of why will you spin up a server of lesser capacity
ОтветитьYou mentioned zookeeper. what is the number of servers is not stable, could be 8 today, then 5 tomorrow, then 10 next tomorrow. How does zookeeper manage those ranges based on thee number of servers available. I really need to understand this. Please help
Ответитьwhat if the custom url entered by the user already exists in the database? it results in duplication.
ОтветитьWould love to see more of these system design videos!!!
Ответитьif we have to base60 the #, then why not precompute it and distribute it to servers, i.e. S1 will keep the hash60 of 0-1M , S2 will keep the hash from 1M-2M and so on.
ОтветитьGood video
ОтветитьWhat about database? He never talked about how to store in db
ОтветитьYou rushed through some important aspects. EG: Why would base 62 give 21-22 chars? Its because Base encoding encodes 6 bits at a time. 128/6 = 21
Ответитьi am curious why 128 bit goes to about 20 chars by using MD5 + base 64/62. 128bit to 32 char in hex. but what next? thanks in advance
ОтветитьWhy introducing a counter guarantees you no collisions?
ОтветитьHey Kevin, should we wait for new system design videos?
ОтветитьWhy do MD5 or SHA256? Just pick 7 characters at random with replacement from the set of base62 symbols
Ответитьomg this is the best system design tutorial for tinyURL !!! Each minute hits the point instead of bullshit. 赞赞赞
ОтветитьWhy no one talks abt how Twitter generates its I’d … that’s the most simplest instead of depending on zoo keeper and a cluster of counter services
Ответитьaka :)
ОтветитьBest video on this Topic !
ОтветитьWell explained!
ОтветитьOne question, If we take the first 7 characters even with numbers differents, we can have colission. What I didnt undestand?
ОтветитьA good candidate would be the person who has watched this video :-)
ОтветитьGreat video explanation.
ОтветитьVery clear illustration! Thank you
ОтветитьCan someone explain why zookeeper itself is not single point of failure in this case?
ОтветитьExcellent video!! You packed everything of importance in a nice, short video. GREAT job!! And THANK YOU!!
ОтветитьExcellent!!
ОтветитьBest TinyURL design video I've found, and some concepts here can be applied to other design questions too. Thanks for making this!
ОтветитьGood quality! Would love to see more of these system design videos!!!
Ответитьthis is the BEST video on this topic
Ответить