System design

 0    51 fiszek    maciejjankowski9
ściągnij mp3 drukuj graj sprawdź się
 
Pytanie Odpowiedź
what Cassandra is
rozpocznij naukę
wide-column store
Couchdb
rozpocznij naukę
alternative to MongoDb. An open-source document-oriented NoSQL database, implemented in Erlang
four examples of Wide-column store
rozpocznij naukę
Apache Cassandra, Apache HBase, BigTable, scylla
Database replication master/slave
rozpocznij naukę
Master -original, only writes, slaves - copies, only reads
expand CDN
rozpocznij naukę
Content Delivery Network
expand SPOF
rozpocznij naukę
Single point of failure
Cache eviction policies
rozpocznij naukę
LRU - Least recently used, LFU - Least Frequently used, FIFO - First in First out
CDN - describe what it is
rozpocznij naukę
A CDN is a network of geographically dispersed servers used to deliver static content. CDN servers cache static content like images, videos, CSS, JavaScript files, etc.
Data Lake
rozpocznij naukę
is a system or repository of data stored in its natural/raw format,[1] usually object blobs or files
Stateless Web Tier
rozpocznij naukę
session is kept in NoSQL database. It is no longer kept in web server. Each server in the cluster can access state data from the database
Load balancer, sticky session
rozpocznij naukę
user who authenticated in one of the servers in a cluster, will be redirected to the same server for future calls (for certain amount of time that is longer than the session timeout)
Disadvantages of sticky session
rozpocznij naukę
more difficult to add or remove servers, more difficult to handle server failures
Advantages of stateless web tier vs stateful web tier
rozpocznij naukę
simpler, more robust and scalable
Shared data store for state data (sessions), what to use
rozpocznij naukę
memcached/Redis, NoSQL
geoDNS
rozpocznij naukę
geolocation DNS routing - to make sure, that the client is directed to the closest datacenter
Logging and monitoring tool
rozpocznij naukę
Datadog, Matomo, prometeus, Pendo
example of Key business metrics
rozpocznij naukę
daily active users etc
Shard
rozpocznij naukę
each shard has the same schema, but data are specific to shard- user data is allocated to specific shard - hash function is used to find the shard e.g. user_id % 4
Sharding key vs partition key
rozpocznij naukę
Sharding key vs partition key
Two Problems with sharding
rozpocznij naukę
Resharding data - r.g. One shard goes down, Celebrity problem = hotspot key problem
Nanosecond
rozpocznij naukę
10^-9
Microsecond
rozpocznij naukę
10^-6
Millisecond
rozpocznij naukę
10^-3
2^10
rozpocznij naukę
1KB ~ 1 000
2^20
rozpocznij naukę
1MB ~ 1 000 000
2^30
rozpocznij naukę
1GB ~ 1 000 000 000
2^50
rozpocznij naukę
1PB ~ 1 000 000 000 000 000
L1 cache
rozpocznij naukę
A memory bank built into the CPU chip. Also known as the "primary cache," an L1 cache is the fastest memory in the computer and closest to the processor.
Fan-out service
rozpocznij naukę
is a messaging pattern used to model an information exchange that implies the delivery (or spreading) of a message to one or multiple destinations possibly in parallel
Amazon sns
rozpocznij naukę
simple notification service
Amazon EC2 - expand
rozpocznij naukę
Amazon Elastic Compute Cloud
Amazon EC2 - describe
rozpocznij naukę
allows users to rent virtual computers on which to run their own computer applications
Amazon EBS - expand
rozpocznij naukę
Amazon Elastic Block Store
Amazon EBS - expand
rozpocznij naukę
block level storage volumes for use with EC2 instances. You can create a file system on top of these volumes, or use them in any way you would use a block device (such as a hard drive)
Amazon DynamoDB
rozpocznij naukę
is a fully managed proprietary NoSQL database service that supports key–value and document data structures
Amazon Aurora
rozpocznij naukę
is a relational database service developed and offered by Amazon Web Services beginning in October 2014 Aurora is available as part of the Amazon Relational Database Service (RDS).
Amazon sqs
rozpocznij naukę
simple queue service
memcached
rozpocznij naukę
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
2^40
rozpocznij naukę
1 000 000 000 000 = 1TB
L1 cache reference
rozpocznij naukę
0.5 ns
L2 cache reference
rozpocznij naukę
7 ns
Mutex lock/unlock
rozpocznij naukę
100 ns
Main memory reference
rozpocznij naukę
100 ns
Compress 1KB with zippy
rozpocznij naukę
10 microseconds = 10000 ns
Send 1KB via 1Gbps network
rozpocznij naukę
10 microseconds
read 1MB sequentially from memory
rozpocznij naukę
250 microseconds
read 1MB sequentially from disk
rozpocznij naukę
30 ms
read 1MB sequentially from network
rozpocznij naukę
10 ms
sharding vs partitioning
rozpocznij naukę
The difference is that sharding implies the data is spread across multiple computers while partitioning does not. Partitioning is about grouping subsets of data within a single database instance
consistent hashing
rozpocznij naukę
consistent hashingConsistent hashing is a special kind of hashing such that when a hash table is re-sized and consistent hashing is used, only k/n keys need to be remapped on average, where k is the number of keys, and n is the number of slots
consistent hashing describe algorithm
rozpocznij naukę
To determine which server a key is stored on, we go clockwise from the key position on the ring until a server is found.

Musisz się zalogować, by móc napisać komentarz.