System Design Freedom Flashcards
Get into Google
What are
Load Balancers
Servers that evenly distribute incoming traffic among web servers that are defined in a load-balanced set to optimize system performance, reliability and capacity.
Size of
int32
4 bytes
This is the most common int type used across systems.
HTTP Status Code
406
Not Acceptable – Request succeeded but couldn’t generate a response that matches the content type in the Accept header.
Size of
float64
8 bytes
This is the most common float type used across systems.
What is a
Content Delivery Network ( CDN )
A network of geographically dispersed cache servers used to deliver static content.
What is
Database Normalization
Process used to organize a database into tables and columns to reduce data redundancy and improve data integrity.
How to estimate
Query Per Second
QPS = number of CPU cores / average time for a request in seconds
Define
System tests
System testing, also referred to as system-level testing or system integration testing, is the process in which a quality assurance (QA) team evaluates how the various components of an application interact together in the full, integrated system or application.
What is
BASE
Basically Available, Soft state, Eventual consistency - an alternative to ACID.
What is
RPC
Remote Procedure Call.
Communication method where a program causes a procedure to execute in another address space.
Calling functions directly from another server.
HTTP Status Code
1xx
Informational – Communicates transfer protocol-level information.
How to estimate
Latency
Given two resource 1 and resource 2.
Answer both ‘Sequentially’ and ‘Parallelly’
- Sequentially: latency = latency_resource_1 + latency_resoure_2
- Parallelly: max(latency_resource_1, latency_resource_2)
What is
CAP Theorem
Consistency, Availability, Partition Tolerance - pick two out of three.
What is
Synchronous
Synchronous is a blocking architecture, so the execution of each operation depends on completing the one before it. Each task requires an answer before moving on to the next iteration. Synchronous waits for tasks to complete.
HTTP Status Code
4xx
Client Error – This category of error status codes points the finger at clients.
What is
Eventual Consistency
A consistency model which allows for some lag in data update recognition, stating that if no new updates are made, eventually all accesses will return the last updated value.
Define
Acceptance tests
Acceptance testing, sometimes called UAT (User Acceptance Testing), is a testing technique to verify whether the system works as the end user requested or not. Acceptance testing is run after software testing is complete, and the main purpose isn’t to find bugs in the system but to check if the system works as expected. By running acceptance testing before going live, development teams can ensure users can use the software/app smoothly.
Size of
UTF-8 in Chinese
3 bytes
HTTP Status Code
409
Conflict – Request is well-formed but conflicts with another resource or permission.
HTTP Status Code
2xx
Success – Indicates that the client’s request was accepted successfully.
What is
Asynchronous
Asynchronous is a non-blocking architecture, so the execution of one task isn’t dependent on another. Tasks can run simultaneously.