...

/

Evaluation of Quora Design

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:

  1. Scalability: Our system is highly scalable for several reasons. The updated design uses powerful and homogeneous service hostsQuora now uses Amazon EC2 instances with 32 cores, a shared 20 MB cache, and high network throughput.. 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.

    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 anticipating join 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