My name is Naren and I am here to help you to learn skills that you need for Software Engineering work and also to help you to polish your skills and get ready for the job, whether you are a fresh college graduate or a working professional.
Subscribe to my channel to learn new concepts every week.
If you would like to donate: www.patreon.com/techdummies
Пікірлер
Thank you Narendra, very detailed, yet simple to understand. Its an art to teach that way.
Why used different components, other possible solutions and tradeoffs. Discussion related to that was completely missing.
Ask many people mentioned, you have the skills to make a simple & good explanation to the solution. Well done 👍
Thanks for this video! so much of effort
soo splendid, but what if the capacity (number of rows in the database) grows, so we will have bigger indexes, thus will need to interate through a larger portion of indexes?
Instead of coupling back-queues with threads, I would say have more number of threads for priority URLs and less for others. for this to work, we can handle the politeness at front-queues where we put the subsequent URLs in low priority queues.
Dude, it's called "trie", not "try" 🤦♂
awsome ✌👍
In the diagram I see session-server are used for multiple things doing operation with timeseries DB, writes are going to session server after operation queue, why is that, I thought session server are only supposed to manage user session and permission
Thank you sir!
- In a real World where the services get regular (sometimes even weekly), there will be a lot of mapping wastage with zoo-keeper assigning new slots for every deployment. - System has single point of failure - the zoo-keeper itself?
the whole idea is to design the storage system not use a third party.
not true, read dropbox architecture on their site
Excellent!
What kind of Database is being used here… sql or nosql?
aren't the initial back of envelope calculations wrong ?
Hello
Why cant we use hash algorithm to generate unique numbers or strings
come on man, please listen to your video, do some editing before uploading
After 5 years, I still found it very helpful. It took me less time to understand.
Wouldn't Queue partition by CompanyId in cause hot partitions? Like Google/Tesla stock gets more traded as compare to any random startup who just got public?
when you saying 'a client connects to the messaging server', what do you mean by connecting to the server? Is it a state or websocket, what is the protocol or tech used here?
But what if the client only wants ratings & review service response? The API gateway arch which you explained seems like client will make a call to API-G & API gateway will call all services and return response? The client does not need data from all services everytime
A lot of things are incorrect, he said when users request for ride, 13:30, he said user request lands on Web Socket, users request is better with an https request since it is a request made by decision and not auto generated by event, using web socket to handle user ride request is wrong, web sockets are used to have a bidirectional communication between client and server, where client gets events (responses) whenever there is a change, just like how the Instagram notification system works. And then saying each region X is a server is too much, there must be a region service responsible for filling region blocks, region service will fetch location from driver client app (can use a producer which will generate Lat and Long of driver every, say 5 sec or so), then the Kafka cluster will have topics which will listen to produced location pings, and consumer in region service (which is responsible for allocating drivers to corresponding region) will consume and put the driver in respective region, probably store as a meta. I mean there is no right or wrong way to design HLD but using the right technology always have right and wrong about it. Good effort though.
You lost me when you mentioned the O of linked list..
I don't see any reason for Zookeeper to know the application servers by name and keep track of who was assigned what range in your design.
INSERT if not present cannot be implemented in most NoSQL style databases not because of consistently related issues per se, it's because they append only in the storage engine. When you append only on inserts, u never know if a conflict exists.
can you make a new video, since i think searching has moved quiet ahead from tf idf to gen ai embeddings and rag methods
good video
interesting topic for my undergraduate thesis
Thats an excellent explanation. Thats marks the start of my system design interviews preparation. 24-05-2024
Can we not make the shortened url simply as datetime for that particular put request ?
Content is excellent but a mic (like a DJI mic) will be highly appreciated.
Nice explanation
you can move the range entry from zoo keeper to same nosql one table with all the app server allocation in it. right sql query to always fetch the counter value from that table and insert into short table, two sql execution and avoid zoo keeper, it is painful, also another approach is consistent hashing but too much for simple app design.
Doubt: Even if you use unique counters, you will still have to check if the longUrl already exists in the db, right? We do not want to create multiple shortUrls for the same longUrl.
Useless to watch
Great, thanks 👌
Is this a mid level answer?
Thanks Narendra for great videos. I see you corrected the Traffic estimation. Shouldn't it also change the storage estimation?
no one would mind if you speak normal english rather pushing hard on to get british accent. Its so irritating to listen.
Nice blog with very clear explanations for row and columnar db storage patterns. Could you also blog the in memory data storage in both the cases rather than the HDD. I am not interested in seeing the recent HANA buzz around the ‘in memory’ data storage and retrieval. One more thing, in this blog you have mentioned about the scenarios that dictates how the data will be stored like transactional or analytical..but in HANA,I think it stores everything in columnar way, so are there any drawbacks in that? Appreciate your innate insight in this.
good video but I don't get the bloom filter part, it could return true for crawled URL that is not actually crawled and we can miss on key URLs, why not just cache crawled URL in Redis. 3 machine can handle 10B URLs
One comment regarding the upload concurrency problem, s3 supports multi part uploads and you can upload the file part by part and it will be assembled on the s3 end at the end thus you can upload the file in parts without the s3 being aware about it
One of the best explanations I would say.
really enjoyed the illustration of Indexing
But what is the guarantee that the counter when converted to base62 will fall within the 7-character limit? It can go beyond 7 characters
Great tutorial :D but why you left scene suddenly :D like your wife is calling you. 32:08
You are incredible🥺The Saint🙏My lifesaver💛🧡💝Thank you SO MUCH!! This is exactly what I was looking for!
Hands down, the best explaination available, covering all the technical aspects. Genius!