Skip to main content

Calculating size of User and Cache storage


user storage:-

it can be solved using same scenario as mentioned in first article .

https://tech.nazarmubeenworks.com/2019/08/basics-of-system-design-chapter-0.html


Suppose there are 12 Million of users are adding every year meaning 1 Million per month.

So if we consider 5 year there will be around 60 million of users. Now in terms of data we can look to our DB table and get information about it. A user will be generally having name , id , address , some forien keys .

Lets assume 10 columns with each column on an average storing 4 byte of data.

10*4 = 40 bytes of data for one user.

60 * 10^6 * 40 = 2400 * 10^6 = 2.4 * 10^9 = 2.4 GB of data we need to store only user values.

Also while calculating storage for the user there is also one important point we need to remember is of ids. If we are going to have 60 Million of users which means 60*10^6 users so unique id’s will be

as we know below figures are almost equal

2^10=10^3
then 60*(10^3)^2 = 2^20 *2^6

which means we almost need 26 bits for storing ids. If we have any separate system to generate these ids then 26*60*10^6=1560*10^6=1.5 GB approx.

Cache storage :-

calcluting an idea for cache storage is not tough once we have an idea of calculating total storage . Cache normally sits between end user and application servers and caters read requests for the website. Nearly 60-80 percent of users do not apply any modification to the data of website and just read data. To avoid load on application servers which are modifying data for write requests and involve in lot of performance on data we use cache servers which just caters data as a replica of original one. So if we have 500 GB of original data , 100 GB of data can be served through cache.

There can be multiple techniques we can use for cache such as LRU , LFU which i will explain in coming articles.


Comments

.

Popular posts from this blog

BREADTH FIRST SEARCH IN JAVA

BREADTH FIRST SEARCH IN JAVA:- package com . problems . graph ; import java.awt.DisplayMode ; import java.util.Iterator ; import java.util.LinkedList ; public class BFSGraph { int maxsize ; Vertex vertexlist []; int matrixlist [][]; int vertexcount ; @SuppressWarnings ({ "rawtypes" , "unused" }) LinkedList queue ; public BFSGraph () { maxsize = 20 ; matrixlist = new int [ maxsize ][ maxsize ]; vertexlist = new Vertex [ maxsize ]; for ( int i = 0 ; i < maxsize ; i ++) { for ( int j = 0 ; j < maxsize ; j ++) { matrixlist [ i ][ j ]= 0 ; } } queue = new LinkedList (); } public void addVertex ( char label ) { vertexlist [ vertexcount ++]= new Vertex ( label ); } public void addEdge ( int i , int j ) { matrixlist [ i ][ j ]= 1 ; matrixlist [ j ][ i ]= 1 ; } public void displayVertex ( int v ) { System . out . println ( vertexlis

How to do Effective Programming?

There is no secret to doing effective programming but following a sequence of steps and procedures can help in building great programs. Today I will take you on a tour to some of the best practices that are integrants of perfect programs. Algorithms are important: - You can’t deny the fact that algorithms are important and before start to write any program, Algorithms are must to write. For example, if there is a program about finding the sum of two numbers? What will you write ?The steps can be :- 1)   Get the first number. 2)   Get the second number. 3)   Add both numbers. This is what algorithm is writing about ,a list of statements .From the above three statements you can conclude boundary cases (at least two number should be there in input), mathematical function(Sum is needed here) , storage capacity(amount of memory to be assign to the variables), number of methods by analyzing repeat steps (reduce replete codes) and many other things. During algorithm only yo