URL shortener system design | tinyurl system design | bitly system design

URL shortener system design | tinyurl system design | bitly system design

Tech Dummies Narendra L

5 лет назад

457,007 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Shivam Singh
Shivam Singh - 16.10.2023 20:42

What if the Zookeeper goes down?

Ответить
Charu Agarwal
Charu Agarwal - 06.10.2023 21:22

I'm still confused how zookeeper based approach solved two users calling the service for the same long url at the same time. Won't we generate the two different tinyurl?

Ответить
Alex Beeken
Alex Beeken - 28.09.2023 05:44

Thank you so much! This video was very helpful.

Ответить
misterhtmlcss
misterhtmlcss - 24.09.2023 17:04

Great lecture!

Ответить
Anjan J
Anjan J - 20.09.2023 22:02

What if zoo keeper goes down. Doesn’t it makes it a single point of failure. .. ???

Ответить
Md Nayab
Md Nayab - 18.09.2023 22:48

Best explanation on internet, Thanks a lot 🙂

Ответить
Abhijit Tewari
Abhijit Tewari - 11.09.2023 13:08

while this videos is very informative why the hell are you mixing indian and british accents in a every damn sentence.. while the subject matter seems quite easy my real difficulty is understanding your fake accent.

Ответить
Bhargava Surimenu
Bhargava Surimenu - 10.09.2023 11:19

Thanks for the Video. How counter range impacts the Short URL generation when we apply at the App server level.

Ответить
Anmol Sharma
Anmol Sharma - 08.09.2023 21:49

such good quality content, Hats off

Ответить
Shorten World Platform
Shorten World Platform - 08.09.2023 13:25

Really really awesome video. Thank you for your great efforts!

Ответить
Andrey Kovalov
Andrey Kovalov - 19.08.2023 14:14

If we redeploy the server does it mean we get a new set of ranges from zookeeper? won't we exhaust the range very fast by that?

Ответить
Dipayan Sanyal
Dipayan Sanyal - 17.08.2023 19:02

There is still a collision problem. two counter outputs can have same b62 value or md5 hash output (at least the first 7 characters)

Ответить
Chris Jimenez
Chris Jimenez - 15.08.2023 00:38

You can save some storage by having the domain on the application properties from AS

Ответить
getgane
getgane - 08.08.2023 09:20

Very good explanation, and solving by breaking problems to small level and solving is more good.

I see majority of problems were solved here but what about duplication, if the same long url is shortened by multiple users, the system is going to generate multiple short urls. This is redundant isnt it??

How can we solve this? Make a read once before we generate and write??

Ответить
Utkarsh
Utkarsh - 29.07.2023 21:04

Isn't the ZooKeeper, a single point of failure?

Ответить
Werapon Pat
Werapon Pat - 29.07.2023 19:45

can we run a replicate database (cassandra or dynamo db) for storing available range instead of using zookeeper.

Ответить
MARUTHA DURAI M
MARUTHA DURAI M - 23.07.2023 05:17

I have one query, why we are going for hasing, simply get the unique id generated in the table and use that?

Ответить
Ham Loving Prophet Pisslam
Ham Loving Prophet Pisslam - 21.07.2023 06:01

Very complex design

Ответить
Study Storage 2
Study Storage 2 - 18.07.2023 01:06

Great !!!!!!!!!!!!!!!!!!!!!!! Awesome !!!!!!!!!!!!!!!

Ответить
RathanCode
RathanCode - 18.06.2023 19:45

Great job, Can you further explain why choosing no SQL over SQL for this design?

Ответить
Ishika Sinha
Ishika Sinha - 11.06.2023 11:07

How is counter ensuring that we get a unique short url everytime ?

Ответить
Naema Bhatti
Naema Bhatti - 27.05.2023 21:25

Thanks bud! Love your lectures.

Ответить
Anupam Jain
Anupam Jain - 25.05.2023 14:32

What if the zookeeper fails?

Ответить
Lalit Jisoria
Lalit Jisoria - 14.05.2023 20:14

While registering to zookeeper I would have added a unique string for different app service with the same range counter. I think that will also solve the mentioned issue.

Ответить
BookBytesSummaries
BookBytesSummaries - 12.05.2023 14:21

Amazing explanation. But I've one question, what happens when all ranges in zookeper are exhausted? Is there a way to do some sort of compaction on ranges to reclaim them?

Ответить
Paramesh Singtel
Paramesh Singtel - 09.05.2023 12:55

i have a simple question ..let us say i am creating the Short URL and will reach the Server 1 (range 1L-2L) .. i may get first counter is 100000 .. its success. next request comes how do make sure we will get the next number ie i am trying to create the short url by tmw and reach out the server 1 again .here how do get the next number since first number is already used .we supposed to get the 100002 ...

Ответить
xiaobo rao
xiaobo rao - 04.05.2023 13:27

hi bro, can you keep updating vedio? can not wait your new shares

Ответить
Kovalski
Kovalski - 30.04.2023 20:06

Great video! Just one thing I don't understand. How can we be sure that base62 encoding will always produce string with length seven?

Ответить
Devashish Rana
Devashish Rana - 27.04.2023 19:53

Can't we use something like (Timestamp (Per Nano Second) + Redis Counter) => This will make sure that we have a unique id??

Ответить
sanjay khodke
sanjay khodke - 25.04.2023 14:36

very much clear. Thank you. If long url record already exists in database then you will simply fetch short url right?

Ответить
Rob L
Rob L - 31.03.2023 14:25

How do the databases scale out? If the table grows and grows lookup queries when you have cache misses will become a significant bottleneck. Replicas won’t help you here. Even if you sharded instances you’d still need a centralized table because you would need to lookup a specific instance in order to get the long URL given a short URL. Thoughts?

Ответить
D K
D K - 29.03.2023 00:20

Didn't understand how counter works here and how it guarantees no collisions

Ответить
Sach
Sach - 22.03.2023 04:28

great video!

Ответить
Sameer Patil
Sameer Patil - 20.03.2023 16:15

We can do it in NoSQL like mongoDB - checking duplication using unique : true in mongoose which will be throwing us duplication error

Ответить
Gosha Kovalsky КА-07
Gosha Kovalsky КА-07 - 16.03.2023 19:47

It is true that base62 won`t produce collisions with counter? I don`t think so.

Ответить
Mushu
Mushu - 13.03.2023 01:55

Why are you using the first 7 characters? Or did you arbitrarily decide that?

Ответить
RandomShowerThoughts
RandomShowerThoughts - 09.03.2023 21:19

I wish you showed how to actually get the next available range of numbers from zookeeper

Ответить
AjoloteEnVaso
AjoloteEnVaso - 13.02.2023 02:22

increible!!! gracias por compartir hermano!!! mis respetos, saludos desde Mexico.

Ответить
KENTOSI
KENTOSI - 09.02.2023 18:54

Question about zookeeper here: Say zookeeper gives AppServer1 the counter range 1 to 10,000. Does AppServer1 constantly report to zookeeper what number it's currently up to? If not, then if AppServer1 goes down at counter 5,000, do we lose all ability to use values 5,001 to 10,000 for ever?

Also - great presentation I learnt a lot. Thank you so much for this!

Ответить
Chị Em Vlog
Chị Em Vlog - 04.02.2023 04:35

Xin chào

Ответить
jatin goswami
jatin goswami - 31.01.2023 15:34

What if Zookeeper goes down ?

Ответить
Saritha Bapuram
Saritha Bapuram - 25.01.2023 08:26

why cant we prefix the counter with some character to uniquely identify the server, like A1, A2, ... B1, B2, .... C1, C2,...

Ответить
andre santos
andre santos - 16.01.2023 14:10

nice explanation. many thanks. all the best. keep going !!!

Ответить
RandomShowerThoughts
RandomShowerThoughts - 05.01.2023 11:24

this is a legit gold mine in terms of information. Really informative and you get to understand the details

Ответить
AVTAAR
AVTAAR - 22.12.2022 16:42

can't we use, queue data structure instead of zookeeper to handle coordination?

Ответить
Abhijeet Kumar
Abhijeet Kumar - 07.12.2022 14:13

I guess to ensure uniqueness across systems, we can append timestamp and system name to the random number

Ответить