SAN as building block in Distributed Data Storage

SAN as building block in Distributed Data Storage

Storage Area Network (SAN) – 

A storage area network is usually recognized as a specialized, speedy network that offer the provision of network access to various storage devices. Storage Area Networks usually comprise different hosts, switches, storage elements as well as storage devices, which are inter-related and inter-connected through various technologies, protocols, and topologies. 

A SAN makes the representation of the storage devices towards a host in such a way that it seems like the storage is locally attached. However, for a more simplified representation, the storage toward a host is attained through the usage of various kinds of virtualization. 

The usage of Storage Area Networks (SANs) – 

  1. It helps in the improvement of application-related availabilities, like multiple data paths. 
  2. It enhances and enriches the performance of the application like; off-load storage functions, segregated or zonal networks, etc. 
  3. Storage Area Network assists in increasing the storage utilization and efficacy along with ameliorating the data protection and security system. For instance, it provides consolidated storage resources, tiered storage, etc. 

Building Blocks – 

It is declared most solemnly that the most challenging and appealing aspect of building web distributed systems and Distributed Data Storage systems are scaling the access available to the data. 

When the application servers are created to be stateless and substantiate an architecture that is shared to nothing, at that time only, the heavy lifting is pressed down through the stack toward the database server and its supporting services. 

In the arena of the data access layer, the real scaling and performance come into their active abilities. 

The building blocks of a scalable data access layer are built of caches, proxies, indexes, load balancers, and queues. Some short glimpses of these building blocks would be as follows; 

Caches – 

Caches can be considered ubiquitous in the process of computation. They possess a large capability to scale the readability access in a system that is clear. The locality and positioning of the reference principle are advantageous to the Cache. Here the recently requested data can be requested again. 

There is massive importance of multiple layers of caching, which predominantly includes the existence of client-side caching. 

On the other hand, caches can really exist in all levels of architecture and are mostly found at the nearest level of the front end. They are then organized to return data rapidly without monetizing the downstream levels. 

This monetization of the downstream level is smartly bypassed and which in order creates space for more growth in the system without having the necessity of scaling out. 

Cache Replacement – 

Request Nodes –  Simultaneous occurrence of the Cache with the node which makes a request of the data. The pros and cons associated with this request node are as follows; 

Pros – 

Anytime a request is made, the node can promptly return the cached data, avoiding any kind of hopping if it possesses an existence. 

It primarily exists in in-memory, and it is very fast. 

Cons – 

If you happen to have numerous request nodes and if they are load-balanced, then you might have to cache a similar item on all the nodes. 

Global Cache – It is a kind of central Cache that is utilized by all request nodes, and the respective pros and cons are as follows; 

Pros – 

The chance of Cache of a given item is once only. 

Multiple requests for an item can be compressed into one request when it is sent to the backend.

Cons – 

If respectively the number of clients and the incoming requests increase, a single cache can be given a lot of importance. 

Reverse proxy cache – The Cache becomes responsible for the recovery of a cache miss, which is usually more common and possesses the ability to handle its own eviction. 

Cache as a service – Here, the request nodes become responsible for the recovery of a cache miss, which is typically utilized when the request nodes conceive and conceptualize the eviction strategy or hot spots better than the Cache itself. 

Distributed Cache – All and each of the nodes that make up the Cache possesses a part of the cached data, further divided through utilizing a consistent hash function. 

Pros – 

The cache space and the loading capacity can both be increased through scaling out, which indirectly means increasing the number of nodes. 

Cons – 

Node failure occurs oftentimes. Thus, they must be cautiously handled too and carefully ignored. 

Proxies – 

Proxies are actually quite simple building blocks in any architecture. Only it is that they create deceptions like they are lightweight, comprised of invisible components, but they can offer the provision of an unbelievable and exceptional value to a system, through the means of minimizing the load or weight on the backend servers, furthermore offering a comfortable location for the caching layers and tunnelling the traffic and width appropriately. 

Apart from these, there are Indexes, Load Balancers, and Queues, which also constitute a large part of the building block of Distributed Data Storage.

Leave a Reply

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