<?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: Abdulhai Mohamed Samy</title>
    <description>The latest articles on DEV Community by Abdulhai Mohamed Samy (@lordsnow).</description>
    <link>https://dev.to/lordsnow</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%2F3291142%2F18a9faef-5fb8-4a15-a6a5-37d28391d95d.jpg</url>
      <title>DEV Community: Abdulhai Mohamed Samy</title>
      <link>https://dev.to/lordsnow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lordsnow"/>
    <language>en</language>
    <item>
      <title>Concurrency in Go Green Threads VS .NET Kernel-Level Threads</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 03 Nov 2025 11:28:53 +0000</pubDate>
      <link>https://dev.to/lordsnow/concurrency-in-go-green-threads-vs-net-kernel-level-threads-3ef1</link>
      <guid>https://dev.to/lordsnow/concurrency-in-go-green-threads-vs-net-kernel-level-threads-3ef1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 35 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: November 3, 2025&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;💡 How do Go and .NET handle concurrency differently — and why does it matter for performance and scalability?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Concurrency is everywhere in modern software, but the underlying mechanisms vary drastically. Go embraces &lt;strong&gt;lightweight Goroutines&lt;/strong&gt; multiplexed onto a few OS threads, while .NET relies on &lt;strong&gt;kernel-level threads managed by the CLR Thread Pool&lt;/strong&gt;. Understanding these approaches isn’t just academic — it shapes &lt;strong&gt;how you design, scale, and optimize applications&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Concurrency isn’t just about running multiple tasks at once — it’s about managing execution, resources, and data safely across threads or Goroutines. The model you choose affects performance, scalability, and developer effort.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inside this article, you’ll explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Worker Pools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn how Go requires &lt;strong&gt;manual worker pool setup&lt;/strong&gt; using Goroutines and channels versus .NET’s &lt;strong&gt;automatic thread pool management&lt;/strong&gt;. Discover the trade-offs between &lt;strong&gt;control vs automation&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Safety &amp;amp; Shared Resources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understand Go’s &lt;strong&gt;CSP (Communicating Sequential Processes)&lt;/strong&gt; approach to avoid shared mutable state, compared to .NET’s &lt;strong&gt;lock-based shared memory&lt;/strong&gt; design.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Error Handling and Graceful Shutdown&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;See how Go uses &lt;strong&gt;context. Context and defer/recover&lt;/strong&gt; to manage worker lifecycles and failures, while .NET relies on &lt;strong&gt;try/catch and CancellationTokens&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Scheduling &amp;amp; Coordination&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dive into Go’s &lt;strong&gt;minimalist primitives&lt;/strong&gt; for time-based and event-driven scheduling versus .NET’s &lt;strong&gt;rich frameworks&lt;/strong&gt; like IHostedService, Quartz.NET, and Hangfire.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Performance Characteristics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compare &lt;strong&gt;memory overhead, context switching, and throughput&lt;/strong&gt; between lightweight Goroutines and kernel threads. Explore scenarios where Go’s M:N model outperforms .NET, and where the CLR Thread Pool shines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Practical Guidance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Learn when to prefer Go for &lt;strong&gt;high-density, I/O-heavy workloads&lt;/strong&gt; and when .NET is better for &lt;strong&gt;managed, enterprise-grade architectures&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Concurrency in Go and .NET is a study in philosophy: Go prioritizes lightweight explicit control, while .NET emphasizes managed orchestration and safety. Both achieve high performance — just through very different routes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/snow-tech/Concurrency-in-Go-Green-Threads-VS-NET-Kernel-Level-Threads-29f87f33e3ad8107af63fa5e8392e811" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7a7lgxpu0h70qzbw3w3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7a7lgxpu0h70qzbw3w3n.png" alt="Separator" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;About the Author&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and Architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>parallelcomputing</category>
      <category>go</category>
      <category>dotnet</category>
      <category>multithreading</category>
    </item>
    <item>
      <title>Parallel Computing</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 03 Nov 2025 11:25:01 +0000</pubDate>
      <link>https://dev.to/lordsnow/parallel-computing-4hbo</link>
      <guid>https://dev.to/lordsnow/parallel-computing-4hbo</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 35 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: November 3, 2025&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;💡 What truly happens when computers run tasks “in parallel”?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;It’s one of those concepts we use daily — but behind the scenes, &lt;strong&gt;parallel computing&lt;/strong&gt; is a deep orchestration of &lt;strong&gt;hardware execution units, instruction pipelines, and multi-core scheduling&lt;/strong&gt;, all designed to make programs &lt;em&gt;feel&lt;/em&gt; instantaneous.&lt;/p&gt;

&lt;p&gt;From &lt;strong&gt;instruction-level parallelism (ILP)&lt;/strong&gt; inside a single core to &lt;strong&gt;data and task parallelism&lt;/strong&gt; across multiple processors — the way we split, schedule, and synchronize work defines how modern systems achieve scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Parallelism isn’t just a performance trick — it’s a design philosophy.&lt;/p&gt;

&lt;p&gt;Understanding how processors exploit concurrency at every level helps engineers write faster, more scalable code, and design architectures that fully utilize hardware potential.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inside this article, you’ll explore&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The foundational &lt;strong&gt;concepts and classifications of parallel computing&lt;/strong&gt;, from Flynn’s taxonomy to the modern multi-core era.&lt;/li&gt;
&lt;li&gt;How &lt;strong&gt;task decomposition and workload distribution&lt;/strong&gt; enable concurrent execution across multiple processing units.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;architectural models&lt;/strong&gt; that define parallel systems — shared-memory, distributed-memory, and hybrid designs — and their implications for scalability.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;types of parallelism&lt;/strong&gt; that shape computational performance: data, task, and pipeline parallelism.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;synchronization and communication mechanisms&lt;/strong&gt; that maintain consistency across concurrent processes.&lt;/li&gt;
&lt;li&gt;Understanding parallelism is essential for building modern, high-performance systems that scale efficiently across cores and clusters.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Parallel computing isn’t just about dividing work; it’s about orchestrating simultaneous execution in a way that preserves correctness, maximizes throughput, and adapts to the complexity of modern hardware.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/snow-tech/Parallel-Computing-29f87f33e3ad81eb8502ff7120548d55" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7a7lgxpu0h70qzbw3w3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7a7lgxpu0h70qzbw3w3n.png" alt="Separator" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;About the Author&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and Architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>operatingsystem</category>
      <category>parallelcomputing</category>
      <category>multithreading</category>
    </item>
    <item>
      <title>Write-Optimized Index Structures, Bitmap Indices, and PostgreSQL</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 01 Sep 2025 12:27:17 +0000</pubDate>
      <link>https://dev.to/lordsnow/write-optimized-index-structures-bitmap-indices-and-postgresql-3llj</link>
      <guid>https://dev.to/lordsnow/write-optimized-index-structures-bitmap-indices-and-postgresql-3llj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Tags&lt;/strong&gt;: #SnowTech #Databases #Indexing #LSMTrees #BitmapIndex #SpatialIndexing #TemporalIndexing #PostgreSQL&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 45 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: September 01, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Beyond B+-Trees: Write-Optimized Index Structures, Bitmap Indices, and PostgreSQL
&lt;/h2&gt;

&lt;p&gt;Databases live and die by their ability to &lt;strong&gt;access data efficiently&lt;/strong&gt;. For decades, the &lt;strong&gt;B+-tree&lt;/strong&gt; was the unquestioned king of indexing, and &lt;strong&gt;hash tables&lt;/strong&gt; powered countless equality lookups. But the world has changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming systems&lt;/strong&gt; generate &lt;em&gt;millions of inserts per second&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytical platforms&lt;/strong&gt; run queries across &lt;em&gt;terabytes of data&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spatial &amp;amp; temporal workloads&lt;/strong&gt; demand &lt;em&gt;multi-dimensional indexing&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;And &lt;strong&gt;storage hardware&lt;/strong&gt; itself has evolved, shifting from spinning disks to SSDs and beyond.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 In this reality, &lt;strong&gt;traditional indexing alone cannot keep up&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This article explores the &lt;strong&gt;modern indexing ecosystem&lt;/strong&gt;—structures and strategies that are no longer “optional,” but &lt;strong&gt;fundamental to building scalable, high-performance systems&lt;/strong&gt;:&lt;/p&gt;

&lt;h3&gt;
  
  
  Write-Optimized Indexing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Log-Structured Merge (LSM) Trees&lt;/strong&gt; buffer writes in memory before merging them to disk.

&lt;ul&gt;
&lt;li&gt;Core of RocksDB, Cassandra, LevelDB.&lt;/li&gt;
&lt;li&gt;Handles &lt;em&gt;massive insert/update workloads&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Buffer Trees&lt;/strong&gt; generalize the idea of batching—reducing I/O complexity to near-optimal levels.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  Bitmap Indices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Designed for &lt;strong&gt;low-cardinality attributes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;bit vectors&lt;/strong&gt; + compression (Roaring, WAH) to allow lightning-fast &lt;strong&gt;set operations&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The backbone of &lt;strong&gt;data warehouses&lt;/strong&gt; and &lt;strong&gt;OLAP systems&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Spatial &amp;amp; Temporal Indices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;R-Trees&lt;/strong&gt; for spatial queries (GIS, mapping, geometry).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interval Trees &amp;amp; Hybrids&lt;/strong&gt; for temporal data (auditing, versioning, time-series).&lt;/li&gt;
&lt;li&gt;Enable efficient &lt;strong&gt;nearest-neighbor, intersection, and range queries&lt;/strong&gt; where B+-trees fail.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  PostgreSQL’s Index Arsenal
&lt;/h3&gt;

&lt;p&gt;Postgres unifies theory and practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;B-Tree, Hash&lt;/strong&gt; → Classic queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GiST, SP-GiST&lt;/strong&gt; → Extensible for unstructured/spatial data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GIN, BRIN&lt;/strong&gt; → Full-text search &amp;amp; large sequential datasets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced features&lt;/strong&gt; like multicolumn, covering indexes, and index-only scans give developers &lt;strong&gt;surgical performance control&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Why this matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Index design is not an afterthought—it is the &lt;strong&gt;foundation of performance engineering&lt;/strong&gt;. Whether you’re building a real-time system, a warehouse, or a geospatial application, understanding these structures determines if your database &lt;strong&gt;scales gracefully or collapses under pressure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/Write-Optimized-Index-Structures-Bitmap-Indices-and-PostgreSQL-26087f33e3ad81ad96cef7cff35d2981?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ll2mngm2bjhs9dpz1i6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ll2mngm2bjhs9dpz1i6.png" alt="separator" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>database</category>
      <category>indexing</category>
      <category>postgres</category>
      <category>lsmtree</category>
    </item>
    <item>
      <title>Hash Indices</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 01 Sep 2025 12:20:18 +0000</pubDate>
      <link>https://dev.to/lordsnow/hash-indices-3f75</link>
      <guid>https://dev.to/lordsnow/hash-indices-3f75</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 35 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: September 01, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Why Hash Indices?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In the last article, we explored &lt;strong&gt;Ordered Indexes&lt;/strong&gt; and the &lt;strong&gt;B+-Tree&lt;/strong&gt; — structures that shine when queries rely on &lt;em&gt;order&lt;/em&gt;. They allow efficient range queries like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;“Find all products priced between $100 and $500.”&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;“List all usernames alphabetically between Alice and Bob.”&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But sometimes… &lt;strong&gt;order doesn’t matter at all&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your query is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;“Find the record with ProductID = 30035”&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;“Does username = 'Alice99' exist?”&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…then walking down a multi-level tree is overkill. You don’t need sorted traversal — you just need the &lt;strong&gt;answer, instantly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s where &lt;strong&gt;Hash Indices&lt;/strong&gt; come in.&lt;/p&gt;

&lt;p&gt;Hashing transforms a search key (e.g., &lt;code&gt;ProductID&lt;/code&gt;) into a &lt;strong&gt;bucket address&lt;/strong&gt; using a hash function. Instead of traversing nodes, the DB jumps straight to the location where the record &lt;em&gt;should&lt;/em&gt; be.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Ordered Indexes &amp;amp; B+-Trees&lt;/strong&gt; → best for &lt;em&gt;range queries&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Hash Indices&lt;/strong&gt; → best for &lt;em&gt;point queries&lt;/em&gt; (exact match lookups).&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Inside Hash Indexing&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hash Functions&lt;/strong&gt; → map search keys into buckets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collisions&lt;/strong&gt; → two different keys land in the same bucket. Handled with chaining or open addressing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Hashing&lt;/strong&gt; → fixed buckets, fast but inflexible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Hashing&lt;/strong&gt; → buckets split/grow as data expands. (Extendible &amp;amp; Linear Hashing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitations&lt;/strong&gt; → no ordering → range queries are useless.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Why It Matters&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When the query is &lt;em&gt;“find this exact record”&lt;/em&gt;, nothing beats hashing.&lt;/p&gt;

&lt;p&gt;That’s why high-performance systems — from OLTP databases to key-value stores — rely heavily on hash indices for equality lookups.&lt;/p&gt;

&lt;p&gt;Modern systems often combine hashing with &lt;strong&gt;Bloom Filters&lt;/strong&gt;, which act as a quick pre-check for membership. While Bloom Filters may yield &lt;em&gt;false positives&lt;/em&gt;, they guarantee &lt;em&gt;no false negatives&lt;/em&gt;, making them perfect for filtering massive datasets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/Hash-Indices-26087f33e3ad811bb8fccb319fc85f4a?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs286fpvyljyxv9w9cezb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs286fpvyljyxv9w9cezb.png" alt="separator" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>database</category>
      <category>indexing</category>
      <category>bloomfilters</category>
      <category>databaseperformance</category>
    </item>
    <item>
      <title>Ordered Indices</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 01 Sep 2025 12:02:34 +0000</pubDate>
      <link>https://dev.to/lordsnow/ordered-indices-4j0j</link>
      <guid>https://dev.to/lordsnow/ordered-indices-4j0j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 35 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: September 01, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Ordered Indices vs. B+ Trees — Why Indexing Had to Evolve
&lt;/h2&gt;

&lt;p&gt;In the last article, we explored &lt;strong&gt;B-trees&lt;/strong&gt; and &lt;strong&gt;B+ trees&lt;/strong&gt;—brilliant self-balancing data structures that quietly power most databases. But before we celebrate them as heroes, let’s rewind.&lt;/p&gt;

&lt;p&gt;Because in the beginning, databases relied on something simpler: the &lt;strong&gt;ordered index&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  📖 Ordered Indices — The First Step
&lt;/h3&gt;

&lt;p&gt;Think of an ordered index like a &lt;strong&gt;sorted list of records&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching is fast: binary search takes you to the right record quickly.&lt;/li&gt;
&lt;li&gt;Range queries are effortless: just scan sequentially from one key to the next.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there’s a catch.&lt;/p&gt;

&lt;p&gt;What happens when new records arrive out of order? Or when data gets deleted?&lt;/p&gt;

&lt;p&gt;Suddenly, you’re faced with &lt;strong&gt;shifting entire rows&lt;/strong&gt; or relying on &lt;strong&gt;overflow blocks&lt;/strong&gt; (spare storage areas for “out of place” records). This is manageable on small datasets—but at &lt;strong&gt;billions of records&lt;/strong&gt;, it’s a nightmare of slow writes and messy fragmentation.&lt;/p&gt;

&lt;p&gt;That’s where ordered indices hit their limit.&lt;/p&gt;




&lt;h3&gt;
  
  
  🌲 Enter the B+ Tree
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;B+ tree&lt;/strong&gt; took everything good about ordered indices (sorted access, fast range queries) and solved their biggest flaws:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Efficient Updates&lt;/strong&gt; → No more shifting entire data blocks. Instead, inserts and deletes trigger &lt;em&gt;local splits or merges&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guaranteed Balance&lt;/strong&gt; → The tree stays shallow, so searches are always &lt;code&gt;O(log n)&lt;/code&gt;. Even with millions of rows, only a few I/Os are needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leaf Links&lt;/strong&gt; → Since leaves are connected, range queries are still blazing fast.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of a fragile, shifting structure, the B+ tree gave databases a &lt;strong&gt;self-organizing index&lt;/strong&gt; that stays efficient under constant growth and churn.&lt;/p&gt;

&lt;p&gt;This wasn’t just an improvement—it was the &lt;strong&gt;necessary evolution&lt;/strong&gt; to make indexing viable at scale.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚙️ Modern Optimizations
&lt;/h3&gt;

&lt;p&gt;B+ trees didn’t stop at their original design. Databases have extended them with smart tricks, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prefix compression&lt;/strong&gt; → Shrinks string keys to save space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk loading&lt;/strong&gt; → Builds an index much faster from sorted data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buffer management&lt;/strong&gt; → Keeps hot nodes in memory, reducing disk I/O.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache-aware layouts&lt;/strong&gt; → Align nodes with CPU cache lines for speed in in-memory DBs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage adaptation&lt;/strong&gt; → Wide nodes for magnetic disks, merge-friendly writes for SSDs, and hybrid layouts for RAM.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s why, decades later, the &lt;strong&gt;B+ tree remains the backbone of indexing&lt;/strong&gt; in MySQL, PostgreSQL, Oracle, and even modern in-memory systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/Ordered-Indices-26087f33e3ad815fb66cf17eb71978f5?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fars833hsj9blniz4nqki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fars833hsj9blniz4nqki.png" alt="separtor" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>database</category>
      <category>indexing</category>
      <category>sqlperformance</category>
      <category>storageoptimization</category>
    </item>
    <item>
      <title>B+ Tree</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 01 Sep 2025 11:47:46 +0000</pubDate>
      <link>https://dev.to/lordsnow/b-tree-4li7</link>
      <guid>https://dev.to/lordsnow/b-tree-4li7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Intermediate&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 25 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: September 01, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  🌳 B+ Trees — The Gold Standard of Database Indexing
&lt;/h2&gt;

&lt;p&gt;When you run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Products&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="k"&gt;BETWEEN&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…the difference between that query taking &lt;strong&gt;milliseconds or minutes&lt;/strong&gt; often comes down to one structure: the &lt;strong&gt;B+ tree&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most developers learn about arrays, linked lists, and binary search trees early on. But in the real world of databases and filesystems, these structures fall short. They’re too linear, too shallow, or too memory-focused. Disk access is slow — and disk I/O is the bottleneck every serious database has to solve.&lt;/p&gt;

&lt;p&gt;That’s where the &lt;strong&gt;B+ tree&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;Unlike simple binary search trees, the B+ tree:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps itself &lt;strong&gt;perfectly balanced&lt;/strong&gt;, no matter how many records you insert or delete.&lt;/li&gt;
&lt;li&gt;Stores &lt;strong&gt;multiple keys per node&lt;/strong&gt;, aligned with disk block sizes, to minimize expensive I/O.&lt;/li&gt;
&lt;li&gt;Places &lt;strong&gt;all actual data in the leaf nodes&lt;/strong&gt;, while internal nodes act only as guides.&lt;/li&gt;
&lt;li&gt;Links those leaves together, making &lt;strong&gt;range queries blazingly fast&lt;/strong&gt; with just a single pass.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This design means operations scale logarithmically (&lt;code&gt;O(log n)&lt;/code&gt;), even across &lt;strong&gt;billions of records&lt;/strong&gt;. It’s why relational databases like &lt;strong&gt;MySQL, PostgreSQL, and SQLite&lt;/strong&gt;, and filesystems like &lt;strong&gt;NTFS, XFS, HFS+&lt;/strong&gt;, all rely on B+ trees under the hood.&lt;/p&gt;

&lt;p&gt;But the brilliance of B+ trees isn’t just in raw performance. It’s in the elegance of the design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌲 &lt;strong&gt;Binary Search Trees&lt;/strong&gt; gave us ordering but crumbled under imbalance.&lt;/li&gt;
&lt;li&gt;🌲 &lt;strong&gt;AVL &amp;amp; Red-Black Trees&lt;/strong&gt; introduced balance, but only suited for in-memory data.&lt;/li&gt;
&lt;li&gt;🌲 &lt;strong&gt;B-Trees&lt;/strong&gt; adapted to disk, but mixed data and routing.&lt;/li&gt;
&lt;li&gt;🌲 &lt;strong&gt;B+ Trees&lt;/strong&gt; perfected the model: separating routing from data, linking leaves, and unlocking massive scalability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the next time you fire off a query and marvel at how instantly your results appear, remember: it’s a humble &lt;strong&gt;B+ tree&lt;/strong&gt; making it happen, silently keeping the system in balance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/B-Tree-26087f33e3ad81e4aec9f79c5e9a2a4d?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcds2rskvisj36f220ei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcds2rskvisj36f220ei.png" alt="separator" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>database</category>
      <category>indexing</category>
      <category>datastructures</category>
      <category>bplustree</category>
    </item>
    <item>
      <title>Memory Management Unit (MMU) and Translation Lookaside Buffer (TLB)</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 30 Jun 2025 14:27:19 +0000</pubDate>
      <link>https://dev.to/lordsnow/memory-management-unit-mmu-and-translation-lookaside-buffer-tlb-3npl</link>
      <guid>https://dev.to/lordsnow/memory-management-unit-mmu-and-translation-lookaside-buffer-tlb-3npl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 11 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: June 30, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Ever wondered how your computer knows where to find the data you ask for?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Behind every memory access, there’s a hidden translator: the &lt;strong&gt;Memory Management Unit (MMU)&lt;/strong&gt;. And to keep things blazing fast, it has a secret helper—the &lt;strong&gt;Translation Lookaside Buffer (TLB)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These two are the unsung heroes of computing. Without them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtual memory would be painfully slow.&lt;/li&gt;
&lt;li&gt;Context switching would break performance.&lt;/li&gt;
&lt;li&gt;Process isolation and security would collapse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key insights the article covers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How the &lt;strong&gt;MMU translates virtual to physical memory&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Why the &lt;strong&gt;TLB cache&lt;/strong&gt; is critical for speed&lt;/li&gt;
&lt;li&gt;What happens on a &lt;strong&gt;TLB flush&lt;/strong&gt; (and why it’s so expensive)&lt;/li&gt;
&lt;li&gt;How &lt;strong&gt;replacement policies&lt;/strong&gt; and &lt;strong&gt;multi-level TLB hierarchies&lt;/strong&gt; keep systems efficient&lt;/li&gt;
&lt;li&gt;The real-world &lt;strong&gt;performance bottlenecks&lt;/strong&gt; engineers face&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you think about memory management, do you see it as an OS problem, a hardware problem, or a &lt;em&gt;beautiful collaboration&lt;/em&gt; between the two?&lt;/p&gt;

&lt;p&gt;If you’ve ever hit a &lt;strong&gt;page fault&lt;/strong&gt;, debugged memory issues, or wondered why context switching is costly — this article connects the dots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/Memory-Management-Unit-MMU-and-Translation-Lookaside-Buffer-TLB-26087f33e3ad812ebc64e104afb61e9a?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncvqezmhl1iaziif9xjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncvqezmhl1iaziif9xjc.png" alt="Separtor" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>operatingystems</category>
      <category>virtualmemory</category>
      <category>mmu</category>
      <category>tlb</category>
    </item>
    <item>
      <title>io_uring — The Modern Asynchronous I/O Revolution in Linux</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 30 Jun 2025 13:28:28 +0000</pubDate>
      <link>https://dev.to/lordsnow/iouring-the-modern-asynchronous-io-revolution-in-linux-46ch</link>
      <guid>https://dev.to/lordsnow/iouring-the-modern-asynchronous-io-revolution-in-linux-46ch</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Advanced&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 10 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: June 30, 2025&lt;/p&gt;




&lt;p&gt;💡 Have you ever wondered why, despite Linux’s reputation for performance, traditional I/O calls often feel slow and blocking?&lt;/p&gt;

&lt;p&gt;For decades, the kernel’s I/O model has revolved around syscalls and context switches — a model that worked, but came with real costs in performance and scalability. Enter &lt;strong&gt;io_uring&lt;/strong&gt;, a Linux feature that quietly rewrites the rules of how applications talk to the kernel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How does it eliminate syscall overhead with shared rings?&lt;/li&gt;
&lt;li&gt;Why are databases, web servers, and logging systems racing to adopt it?&lt;/li&gt;
&lt;li&gt;And if it’s so powerful, why are Google and Android still hesitant to enable it by default?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this article, I break down the architecture, the algorithms, and the real-world use cases of io_uring — and why it might be the biggest leap in Linux I/O since epoll.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/io_uring-The-Modern-Asynchronous-I-O-Revolution-in-Linux-26087f33e3ad81ff90cdc71948aa9d8d?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrhlib1jw9yy9knz7mtc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrhlib1jw9yy9knz7mtc.png" alt="separtor" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>operatingsystems</category>
      <category>asynchronousio</category>
      <category>iouring</category>
      <category>io</category>
    </item>
    <item>
      <title>What Happens When a Computer is Turned On?</title>
      <dc:creator>Abdulhai Mohamed Samy</dc:creator>
      <pubDate>Mon, 30 Jun 2025 12:08:57 +0000</pubDate>
      <link>https://dev.to/lordsnow/what-happens-when-a-computer-is-turned-on-488h</link>
      <guid>https://dev.to/lordsnow/what-happens-when-a-computer-is-turned-on-488h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Difficulty&lt;/strong&gt;: Beginner&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reading Time&lt;/strong&gt;: 5 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Last Updated&lt;/strong&gt;: June 30, 2025&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;1. What Happens When a Computer is Turned On?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;💡 &lt;em&gt;What really happens inside your computer the moment you press the power button?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s a process most of us take for granted—but behind the scenes, a fascinating chain of steps turns cold hardware into a living, working system.&lt;/p&gt;

&lt;p&gt;From &lt;strong&gt;BIOS/UEFI checks&lt;/strong&gt; and the mysterious &lt;strong&gt;POST beeps&lt;/strong&gt;, to the &lt;strong&gt;MBR and bootloader&lt;/strong&gt;, all the way through to &lt;strong&gt;Linux’s &lt;code&gt;init&lt;/code&gt; (or &lt;code&gt;systemd&lt;/code&gt;) launching daemons and graphical interfaces&lt;/strong&gt;—this process is the foundation of everything we do in software engineering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does it matter?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Understanding the boot process isn’t just trivia—it’s the backbone of debugging, performance tuning, and even security hardening. Whether you’re a student exploring OS fundamentals or an engineer tackling low-level issues, knowing what happens at boot unlocks a whole new perspective on how systems really work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Read the full article in my Notion blog here&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;a href="https://www.notion.so/What-Happens-When-a-Computer-is-Turned-On-26087f33e3ad815987cdd1eb2ea1722d?pvs=21" rel="noopener noreferrer"&gt;Read it on Notion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Note:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The full article lives in my &lt;strong&gt;Notion blog&lt;/strong&gt; &lt;a href="https://www.notion.so/Abdul-Hai-Mohamed-s-Blog-26087f33e3ad8095b5abc071c95f67ce?pvs=21" rel="noopener noreferrer"&gt;here&lt;/a&gt;, which serves as the single hub for all my articles and ensures consistent formatting across platforms. You can read this article directly in the Notion link above. Feel free to share your thoughts or feedback in the site comments—or drop me a note on &lt;strong&gt;LinkedIn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9o3flbg64qrewcwutkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9o3flbg64qrewcwutkv.png" alt="separtor" width="800" height="62"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Abdul-Hai Mohamed |&lt;/strong&gt; Software Engineering Geek’s.&lt;/p&gt;

&lt;p&gt;Writes in-depth articles about Software Engineering and architecture.&lt;/p&gt;

&lt;p&gt;Follow on &lt;a href="https://github.com/Abdulhai-Mohamed" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/abdul-hai-mohamed-158205219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>operatingsystems</category>
      <category>bios</category>
      <category>mbr</category>
      <category>linuxbootprocess</category>
    </item>
  </channel>
</rss>
