Database sharding

Data partitioning, or sharding, involves dividing a large database into smaller pieces. This helps improve how the database is managed, its performance, availability, and how the application distributes its workload. The idea behind sharding is that once a database reaches a certain size, it’s more efficient and cost-effective to add more machines horizontally (meaning, adding more machines) than to invest in bigger, more powerful servers vertically. In nutshell, it is the process of splitting up a DB/table across multiple machines.

Read More

System design : pastebin.com

About pastebin.com

User can paste or write or store text for the specific period of time and the same content can be accessed / shared via a unique URL. Idea behind this system is that people should be able to share large amount of text online in simple and convenient manner with other people.

Functional requirements

  1. User should be allowed to paste their content and paste should be accessible via unique URL.
  2. Registered users can edit or delete their paste
  3. Paste would be removed from the system after 1 year. / Paste URL would be expired after 1 year of period.
Read More