Only thing that makes me yelp is when she lets me be little spoon 00:00 Introduction 01:21 Functional Requirements 02:55 Capacity Estimates 05:19 API Design 07:13 Database Schema 08:12 Architectural Overview
Пікірлер: 26
@graceemenike47972 жыл бұрын
Can't be just me that got hooked by the "mini humor" he sneaks into the start of his videos.🙂 Great videos btw!
@jordanhasnolife51632 жыл бұрын
Thanks Grace!
@VarunTheKumar2 жыл бұрын
Fantastic introduction
@jordanhasnolife51632 жыл бұрын
Why thank you, I'm doing what I can for the movement
@mickeyp12916 ай бұрын
it seems every day you get 1000 new subs. dude!!! you rock
@jordanhasnolife51636 ай бұрын
Haha I wish, maybe one day!!
@valty3727 Жыл бұрын
Couple questions about this: 1. What if you wanted to index the businesses in ElasticSearch by keywords too so you could search restaurants by name? Not sure as to the backing structure of ElasticSearch, would you set up another cluster for that or can you implement multiple indexes? 2. Is the location cache still necessary if ElasticSearch has caching built into it? 3. If I'm understanding the flow correctly, a user search request is going to go to the ElasticSearch cluster, get some location id's for a geohash, and go to the SQL DB and get the location information for each location id. Why go through the trouble of putting this information on the ElasticSearch cluster when we could just store a geohash with each location, shard the SQL DB on geohash and only read from the SQL database?
@jordanhasnolife5163 Жыл бұрын
1) I think another index makes sense, sure 2) In some ways maybe actually, just to reduce the load on the index servers themselves. You can scale cache servers separately, whereas you can't scale the cache of a physical machine separately from the hdd index. 3) While geosharding does definitely work, it doesn't offer much in the way of being flexible - e.g. what if each shard has a radius of 100 miles and you want to use a search radius of 1 mile? Then you have to naively scan the shard. It's definitely doable, and possibly even feasible, but I think it pays to know both ways.
@valty3727 Жыл бұрын
@@jordanhasnolife5163 Man you have been a lifesaver throughout this whole interview process thank you so much!
@neek63272 жыл бұрын
How deeply do you think we need to explain geospatial indexes in a system design interview? Could we simply say "and then we'll use redis as a geospatial index which will allow us to query via lat/long/radius and be returned a list of establishments (businesses)"?
@jordanhasnolife51632 жыл бұрын
I'd just say to understand how a geohash is split and why using that structure makes it work well with a traditional DB index. Additionally, understand how you can shard it out with consistent hashing.
@neek63272 жыл бұрын
@@jordanhasnolife5163 Got it. Makes sense. Thanks!
@mobile4developer2 жыл бұрын
Today I learned something new about the geo hashing. Thank you.
@rahulaga2 жыл бұрын
very valuable and quality content !!
@povdata10 ай бұрын
Hi, Jordan! You are the best. God bless you! Could you explain how to scale SSE (messages) and how to send a private message? (may be read something)?
@jordanhasnolife516310 ай бұрын
Not sure exactly what you mean here but my best guess: 1) to send a bunch of messages, you need a bunch of servers. If they're all coming from one place, that probably looks like message brokers like Kafka or something. 2) Also not sure what you mean by a private message. You could either use some sort of encryption with public/private keys to make sure one computer is capable of decoding the message, or you could literally just send it to that computer directly.
@povdata10 ай бұрын
@@jordanhasnolife5163thank you! I need to notify each connected users within a new message (order) using SSE. My client is JS application that establish connection SSE. Here I need to push message SSE to specifi user(userid). How to scale this?
@chalocodekare8 ай бұрын
If you shard the quad tree by placeId, wouldn't you have to perform multiple queries to different shards to find places within a radius? wouldn't it increase latency? I know sharding by regions/hash can create hotspot but latency is a big deal here so instead we can partition the data into further partitions if an area is dense (As we're using dynamic partitioning) & then we can hash by segment (quad tree node)? eventually each lead node will have max 500 places :) if we go with that number.
@jordanhasnolife51638 ай бұрын
Yeah sorry, to be clear I meant shard by a range of placeIds. Since adjacent placeIds are actually close to each other in real life, we should see this lead to queries that only require getting data from a single node for the most part
@clintnosleep8 ай бұрын
Whiteclaws? LOL I love this channel
@jordanhasnolife51638 ай бұрын
Currently hung over off of them
@cricket4671 Жыл бұрын
How about storing user details in sql and comments/reviews/ratings in a no sql db for scaling ? I don't think one needs strong consistency for ratings & reviews
@jordanhasnolife5163 Жыл бұрын
seems fair to me
@povdata10 ай бұрын
Hi, Jordan! You are the best. God bless you! Could you explain how to scale SSE (messages) and how to send a private message? (may be read something)?
@jordanhasnolife516310 ай бұрын
Responded this one is a duplicate
@povdata10 ай бұрын
@@jordanhasnolife5163 thank you, yes it was posted twice for some reason