Evaluation of Quora Design
Learn how the proposed design fulfills the non-functional requirements.
Fulfilling requirements
We have used various techniques to fulfill our functional requirements. However, our final design needs to be evaluated for fulfilling the non-functional requirements. Below we highlight some of the mechanisms we have utilized to fulfill the non-functional requirements:
-
Scalability: Our system is highly scalable for several reasons. The updated design uses
. Quora uses powerful machines because service hosts use an in-memory cache, some level of queueing, maintain Master, Worker, and routing library. The horizontal scaling of these service hosts is convenient because they are homogeneous.powerful and homogeneous service hosts Quora now uses Amazon EC2 instances with 32 cores, a shared 20 MB cache, and high network throughput. On the database end, our design shards MySQL databases vertically, thus avoiding issues in scalability because of overloaded MySQL servers. To reduce complex
join
queries, tables anticipatingjoin
operations are placed in the same shard/partition.As mentioned earlier, vertical sharding may not be enough because each shard can grow large horizontally and for large MySQL tables, writing ...
Create a free account to access the full course.
By signing up, you agree to Educative's Terms of Service and Privacy Policy