<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ankur Yadav</title>
    <description>The latest articles on DEV Community by Ankur Yadav (@ankur221b).</description>
    <link>https://dev.to/ankur221b</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1061495%2F54ae87d6-5252-440d-bf7f-6fe83081c1ec.jpeg</url>
      <title>DEV Community: Ankur Yadav</title>
      <link>https://dev.to/ankur221b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ankur221b"/>
    <language>en</language>
    <item>
      <title>SQL vs NoSQL databases</title>
      <dc:creator>Ankur Yadav</dc:creator>
      <pubDate>Mon, 10 Apr 2023 03:59:00 +0000</pubDate>
      <link>https://dev.to/ankur221b/sql-vs-nosql-9ec</link>
      <guid>https://dev.to/ankur221b/sql-vs-nosql-9ec</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--khIOz5Pq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z1phqsgiy7r3vnow2irj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--khIOz5Pq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z1phqsgiy7r3vnow2irj.png" alt="SQL vs NoSQL" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two main types of databases: relational databases and non-relational databases. Both of them are different in the way they were built, the kind of information they store, and the storage method they use.&lt;/p&gt;

&lt;p&gt;Relational databases are structured and have predefined schemas. Non-relational databases are unstructured, distributed, and have a dynamic schema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A SQL database supports structured query language (SQL) — a domain-specific programming language for querying and manipulating data in a relational database.&lt;/p&gt;

&lt;p&gt;Relational databases store data in rows and columns. Some of the most popular relational databases are MySQL, Oracle, Postgres, and MariaDB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NoSQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most common types of NoSQL databases are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key-Value Databases&lt;/strong&gt;: Data is stored as key-value pairs. Some popular key-value databases include Redis and Dynamo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document Databases&lt;/strong&gt;: In these databases, data is stored as JSON documents and these documents are grouped together into collections. Each document can have a different structure. Document databases include CouchDB and MongoDB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wide-Column Databases&lt;/strong&gt;: In these databases, the names and format of the columns can vary across rows, even within the same table. Wide-column databases are also known as column family databases. Columnar databases are best suited for analyzing large datasets. Some popular Wide-Column databases are Cassandra and HBase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph Databases&lt;/strong&gt;: These databases are used to store data whose relations are best represented in a graph. Data is stored as graph structures with nodes, properties, and lines. Examples of graph databases are Neo4J and InfiniteGraph.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Differences between SQL and NoSQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage&lt;/strong&gt;: SQL stores data in tables where each row represents an entity and each column represents a data point about that entity.&lt;/p&gt;

&lt;p&gt;NoSQL databases can have different data storage models. The main ones are key-value, document, graph, and columnar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema&lt;/strong&gt;: In SQL, each column must be decided and chosen before data entry and each row must have data for each column. The schema can be altered later, but it involves modifying the whole database and going offline.&lt;/p&gt;

&lt;p&gt;In NoSQL, schemas are dynamic. Columns can be added anytime and each row doesn’t have to contain data for each column.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Querying&lt;/strong&gt;: SQL databases use SQL (structured query language) for defining and manipulating the data.&lt;/p&gt;

&lt;p&gt;In a NoSQL database, queries are focused on a collection of documents. Sometimes it is also called UnQL (Unstructured Query Language). Different databases have different syntax for using UnQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: SQL databases are vertically scalable, i.e. by increasing the power (Memory, CPU, etc.) of the hardware, which can get very expensive. It is possible to scale a relational database across multiple servers, but this is a challenging and time-consuming process.&lt;/p&gt;

&lt;p&gt;NoSQL databases are horizontally scalable, meaning we can add more servers easily in our NoSQL database infrastructure to handle a lot of traffic. It can be a lot more cost-effective than vertical scaling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use SQL databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your data is structured and unchanging.&lt;/p&gt;

&lt;p&gt;SQL databases are best when you need ACID compliance. ACID compliances protect the integrity of your data by defining exactly how transaction interacts with your database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use NoSQL databases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you need rapid development. NoSQL is extremely useful for rapid development as it doesn’t need to be planned ahead of time.&lt;/p&gt;

&lt;p&gt;Storing large volumes of data that have little to no structure. A NoSQL database has no limits on the types of data we can store together.&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
      <category>nosql</category>
    </item>
    <item>
      <title>What are Load Balancers?</title>
      <dc:creator>Ankur Yadav</dc:creator>
      <pubDate>Mon, 10 Apr 2023 03:51:49 +0000</pubDate>
      <link>https://dev.to/ankur221b/what-are-load-balancers-3m6i</link>
      <guid>https://dev.to/ankur221b/what-are-load-balancers-3m6i</guid>
      <description>&lt;p&gt;Load Balancer helps in distributing network traffic across multiple servers. This ensures no single server bears too much demand. By spreading the work evenly, load balancing improves application responsiveness, availability of applications, and websites for users.&lt;/p&gt;

&lt;p&gt;Typically a load balancer sits between the client and the server accepting incoming network and application traffic and distributing the traffic across multiple backend servers. By balancing requests across multiple servers, a load balancer reduces individual server load and prevents any one server from becoming a single point of failure, thus improving overall application availability and responsiveness.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fBoXlyxg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xg2recyjlyu6pheqvfll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fBoXlyxg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xg2recyjlyu6pheqvfll.png" alt="Load Balancers" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Load Balancer also keeps track of the status of all the servers while distributing requests. If a server is not available to take new requests or is not responding, it will stop sending traffic to such a server.&lt;/p&gt;

&lt;p&gt;How does the load balancer choose the server?&lt;br&gt;
Load balancers consider two factors before forwarding a request to a backend server. They will first ensure that the server they choose is actually responding appropriately to requests and then use an algorithm to select one from the set of healthy servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load Balancing Algorithms&lt;/strong&gt;&lt;br&gt;
There are various load balancing methods, which use different algorithms best suited for a particular situation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Round Robin Method — rotates servers by directing traffic to the first available server and then moves that server to the bottom of the queue. When it reaches the end of the queue, it starts over at the beginning. Most useful when servers are of equal specification and there are not many persistent connections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Least Connection Method — directs traffic to the server with the fewest active connections. Most useful when there are a large number of persistent connections in the traffic unevenly distributed between the servers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Least Response Time Method — directs traffic to the server with the fewest active connections and the lowest average response time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IP Hash — a hash of the IP address of the client is calculated to redirect the request to a server.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Redundant Load Balancers&lt;/strong&gt;&lt;br&gt;
The load balancer can be a single point of failure. To overcome this, a second load balancer can be connected to the first to form a cluster. Each Load Balancer monitors the health of the other and since both of them are equally capable of serving traffic and failure detection, in the event the main load balancer fails, the second load balancer takes over.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qrCar7Tq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nf97jhuk2y383n2vd7nu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qrCar7Tq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nf97jhuk2y383n2vd7nu.png" alt="Redundant Load Balancers" width="779" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Load Balancing Benefits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Users experience faster, uninterrupted service. Users won’t have to wait for a single struggling server to finish its previous tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service providers experience less downtime and higher throughput. Even a full server failure won’t affect the end-user experience as the load balancer will simply route around it to another server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smart load balancers provide benefits like predictive analytics that determine traffic bottlenecks before they happen. As a result, the smart load balancer gives an organization actionable insights. These are key to automation and can help drive business decisions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Machine learning in Healthcare</title>
      <dc:creator>Ankur Yadav</dc:creator>
      <pubDate>Mon, 10 Apr 2023 03:49:16 +0000</pubDate>
      <link>https://dev.to/ankur221b/machine-learning-in-healthcare-313d</link>
      <guid>https://dev.to/ankur221b/machine-learning-in-healthcare-313d</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJ40y68z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w1ycqv19x8npe0cn1w9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZJ40y68z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w1ycqv19x8npe0cn1w9.png" alt="Machine learning in Healthcare" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Machine Learning is used across many domains around the world. One of the biggest benefits of ML is its ability to scan through massive amounts of data in record time. This helps researchers determine areas of focus for their own research.&lt;/p&gt;

&lt;p&gt;Machine learning is causing a buzz in the healthcare industry. It can play an essential role in predicting presence/absence of Locomotors disorders, Heart diseases and more. Such information, if predicted well in advance, can provide important insights to doctors who can then adapt their diagnosis and treatment per-patient basis.&lt;/p&gt;

&lt;p&gt;Cancer patients are often given the same drug and then monitored to see the effectiveness of that drug. ML could use data to predict which patients could benefit from using a particular drug, providing a highly personalized approach, and saving valuable time and money.&lt;/p&gt;

&lt;p&gt;It won’t be long until machine learning is being used as standard practice throughout the healthcare industry, and that’s good news for all of us. After all, we’ll all become patients at some point in our lives, and ML has the potential to usher in a new era of health care in which we’re all treated with personalized health care plans based on data and not just the results of clinical trials and the good news is that we won’t even lose our doctors. ML won’t replace them, it will just help to make them more efficient. It’s a true case of man and machine working better together than either could in isolation, and it spells a bright future for all of us.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Vertical Scaling vs Horizontal Scaling</title>
      <dc:creator>Ankur Yadav</dc:creator>
      <pubDate>Sat, 08 Apr 2023 18:23:40 +0000</pubDate>
      <link>https://dev.to/ankur221b/vertical-scaling-vs-horizontal-scaling-4jdf</link>
      <guid>https://dev.to/ankur221b/vertical-scaling-vs-horizontal-scaling-4jdf</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Scaling?&lt;/strong&gt;&lt;br&gt;
Scalability is the ability of a system to handle an increasing amount of workload without sacrificing the latency.&lt;/p&gt;

&lt;p&gt;Suppose, an application take X seconds to respond to a user request, it should take the same X seconds to respond to millions of concurrent user request.&lt;/p&gt;

&lt;p&gt;The backend infrastructure of the app should not collapse under a load of a million concurrent requests. It should scale when subjected to a heavy traffic load &amp;amp; maintain the latency of the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vertical Scaling&lt;/strong&gt;&lt;br&gt;
Vertical scaling means adding more power to the server. Suppose your app is hosted by a server with 32 GB of RAM. To handle the increased load you increase the RAM to 64 GB. Now the server is vertically scaled. This is also called scaling up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rd9GWmL6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ga4o56dmy9v42hyus044.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rd9GWmL6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ga4o56dmy9v42hyus044.png" alt="Vertical Scaling" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This should be the first step when the traffic on your app is increasing. This is the simplest way to scale since it doesn’t require any code refactoring or any complex configurations. but there is a limit we can augment on a single server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Horizontal Scaling&lt;/strong&gt;&lt;br&gt;
Horizontal scaling means adding more hardware to the existing hardware resource pool. This increases the computational power of the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FVW-rjnb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvjpc0sox8sky25zdguz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FVW-rjnb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvjpc0sox8sky25zdguz.png" alt="Horizontal  Scaling" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the increased traffic can be easily dealt with the increased computational capacity &amp;amp; there is no limit to how much we can scale horizontally.&lt;/p&gt;

&lt;p&gt;Horizontal scaling also provides us with the ability to dynamically scale in real-time as the traffic on our website increases &amp;amp; decreases over a period of time as opposed to vertical scaling which requires pre-planning &amp;amp; a stipulated time to be pulled off.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
