Technology

Why should you not compromise on database designs for social media sites?

Have you ever thought how social media giants like Facebook and Instagram make all that money? Mark Zuckerberg is currently worth north of $5 billion. Facebook now owns Instagram, and it is worth around $500 billion. When Facebook bought Instagram back in 2016, it was worth around $58 billion. While you are busy counting the zero’s in those amounts, let us give you some more information. Facebook runs the world’s largest MySQL database. Facebook does not say how many servers it uses at the moment. However, according to the last we know, Facebook can be using upwards of 80,000 servers. By the end of 2015, Facebook’s network equipment cost soared to a whopping $3.02 billion.

We are sure you are feeling bamboozled by all those figures. We are also sure that you are trying to understand how Facebook teams manage to update those servers. This social media king does not go for fancy techs. It has a milieu of multi-talented teams who take simpler things and add bits of their ideas to create something fantastic. Just as they did with Cassandra. Their primary website was built on PHP programming language. Even their initial design used MySQL database to store all the user data. The team developed a program of their own called HipHop that translates the PHP source code to C++. Reportedly, they currently use AMD and Intel powered chips. 

It is commendable how Facebook does not have a long history of downtimes. The longest reported outage was on 27 Jan 2015. It was almost 50-minutes long, and it broke the internet. From other user forums to Twitter, every other social media platform was flooded with queries about Facebook. It did affect other services too, including AOL, Tinder, Instagram and Hip chat since they rely on Facebook logins. However, they were little collaterals. Today, if there were an outage like that, it would cause anxiety attacks and pandemonium all over the world. Thanks to the new-age journalism, most people get their news from social media websites. Thousands make a living off posting new content and boosting content on sites like Facebook.  

The take-home message from this is – every website needs to have a reliable database server system. A primary database system for any website should include an automatic backup and recovery system, general operability and excellent support. It is time we started paying attention to what goes behind those green dollars and the cha-chings. 

1.Data, data, everywhere –

Databases cannot be generic. It is not the “man-bun” of 2016. They need to be highly accurate for the purposes they are meant to serve. A database designed for an e-commerce website cannot manage or maintain a social networking site. It is irrelevant how less data it has to handle each day.

It is a classic example of trying to fit a square peg into a round hole. You will not only find the database hard to work, but you will also find it impossible to attach new functionalities. Do not compromise on quality, only because you can save some money trying to work with a hand-me-down.

2.Performance –

You can only expect gradually improving performance from a website that fits your purpose. The workload of your site will play a huge role in determining the performance and response time of the database. To reduce read traffic, you can try including buffering time and cache read. Both reduce the workload on your database during the peak hours.

3.Get a DBA –

Many new social media websites and apps try to start off without a professional DBA. Most of them wait until the last stage or the beta testing to approach a DBA or a remote DBA service. However, even remote DBAs like the remoteDBA.com require precise details to work with. If they are involved from the first step of website building or app designing, the process becomes much smoother. Appointing any database management service from the beginning of your project will also make the transition much smoother for scaling your website. 

4.Use data models –

Again, it boils down to the point of using a good remote database management system. Many engineers often omit the use of data models while designing websites. This can be the death call for any social media site that is looking to expanding soon. Programmers restrict themselves to writing codes and developing UI. However, this should not be the ideal scenario. They should work with an RDBMS in the absence of a full-time DBA to include summary data models. 

5.Facilitate data interaction –

You need to understand how the website data will interact with the database. Moreover, by “you” we mean, the person who is taking care of the data maintenance and management. This is an extensive and multi-faceted job. It is better you start looking for a DBA team right now if you do not have one. Trying to run a social networking app like Hike or Kik without a resident DBA team is like building a sand castle. It is just impossible to keep the system from collapsing onto itself. The data will keep building as your user number escalates, and finally, the system is bound to crash.  

A DBA can increase the efficiency by assigning primary keys. Database queries may go from primary to foreign keys. He must also design the central core by giving every foreign key and index. Even a single missing index can cause the entire system to run awry. 

6.Partitioning support for your DB –

It is common for almost all successful social media websites and apps to require partitions. As the number of users increases so does the incoming amounts of data. If you currently don’t have any plans to include barriers, at least pick a database design that supports partitions. This will help your website go through the transition more smoothly. Your DBA should know how to select a key type that will support partitions in the database in the future.

7.Reusable ideas –

In 2017, everything is about reuse and recycle. If your DBA team has an idea that works in the past, you should check it out. A practical idea that already exists can save you time and money. A database is not like a website. It will not make your app or your website any less unique. It will only ensure that you already have a working idea for your site or app database. This is very common in the case of MySQL databases. This is in use everywhere. All big names swear by MySQL database designs. You will come across multiple website database models that will work for your company with a little tweaking. Twitter renders over 250 million tweets per day with its MySQL database. 

Another idea that almost always saves the day is to incorporate data patterns from applied data representations. You do not need to waste time or money to create these verified data representations from scratch.

8.Scalability –

We have preached the idea of a flexible database so much that by now you must already understand it is imperative for your website or app scalability. Your database performance should never become the limiting factor in your growth. If your site garners 1 million users within a month of its launch, your database design should be able to tackle that amount of data load. 

You need to start thinking regarding how much concurrent users your website DB can handle. This is requests per second of RPS in DBMS terms. If you want a high RPS limit, go with a large session database. If that happens, you might even hit a connect limit or a session limit before you can reach the RPS maximum of your database. 

9.Fault tolerance –

A social media website database should be able to tolerate certain types of errors. In many cases, even the MySQL database design Facebook and Twitter users cannot handle specific types of faults. Then there are other kinds of failures, which they can handle, that the “ready-made” database setup cannot manage. 

You simply do not want your website to falter because your database cannot handle certain niche faults. If you can find a good DBA, it is possible to create a database that can tolerate these mistakes. Maybe, your DB will not be able to tackle it head-on. However, it may find a bypass that will keep your website and app running until your DBA team finds a solution. 

Social media and social networking sites rake in much money. However, this is only true for websites that work. Facebook lost over $1.7 million when it goes down for less than 30 minutes. Only a money-magnet like Facebook can make up for that loss regarding ad-money. Other websites need to be extremely wary of downtime and rather invest a couple of grand extra in better DBMS service.

Leave a Reply

Your email address will not be published. Required fields are marked *