<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shared-Nothing on SoloSoft</title><link>https://www.solosoft.dev/tags/shared-nothing/</link><description>Recent content in Shared-Nothing on SoloSoft</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 01 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.solosoft.dev/tags/shared-nothing/index.xml" rel="self" type="application/rss+xml"/><item><title>NebulaGraph: Open-Source Distributed Graph Database</title><link>https://www.solosoft.dev/post/nebula-graph-2026/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://www.solosoft.dev/post/nebula-graph-2026/</guid><description>&lt;p&gt;Graph databases are essential for applications that need to traverse complex relationships at scale. NebulaGraph, developed by vesoft-inc, is a distributed graph database designed from the ground up for handling trillion-edge datasets with millisecond query latency.&lt;/p&gt;
&lt;p&gt;Unlike graph databases that bolt distribution onto a single-node design, NebulaGraph was built with a shared-nothing architecture where every component is horizontally scalable. Storage, computation, and metadata are decoupled, allowing independent scaling. The result is a graph database that can grow from a laptop to a 100+ node cluster without architectural changes.&lt;/p&gt;
&lt;h2 id="architecture-components"&gt;Architecture Components&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Component&lt;/th&gt;
 &lt;th&gt;Function&lt;/th&gt;
 &lt;th&gt;Scalability&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Meta Service&lt;/td&gt;
 &lt;td&gt;Cluster metadata, schema management&lt;/td&gt;
 &lt;td&gt;Raft consensus&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Storage Service&lt;/td&gt;
 &lt;td&gt;Data persistence with auto-sharding&lt;/td&gt;
 &lt;td&gt;Linear horizontal&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Graph Service&lt;/td&gt;
 &lt;td&gt;Query computation and execution&lt;/td&gt;
 &lt;td&gt;Linear horizontal&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Monitor Service&lt;/td&gt;
 &lt;td&gt;Cluster health and performance&lt;/td&gt;
 &lt;td&gt;Centralized&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="query-processing-flow"&gt;Query Processing Flow&lt;/h2&gt;

&lt;figure class="mermaid-wrapper not-prose" role="img" aria-label="Mermaid diagram"&gt;
 &lt;div class="mermaid-container"&gt;
 &lt;pre class="mermaid"&gt;flowchart LR
 A[Client Query&amp;lt;br/&amp;gt;nGQL] --&amp;gt; B[Graph Service]
 B --&amp;gt; C[Query Parser]
 C --&amp;gt; D[Query Planner]
 D --&amp;gt; E[Query Optimizer]
 E --&amp;gt; F[Execution Plan]
 F --&amp;gt; G[Storage Service 1]
 F --&amp;gt; H[Storage Service 2]
 F --&amp;gt; I[Storage Service N]
 G --&amp;gt; J[Result Aggregation]
 H --&amp;gt; J
 I --&amp;gt; J
 J --&amp;gt; K[Final Result]&lt;/pre&gt;
 &lt;script type="application/mermaid"&gt;flowchart LR
 A[Client Query&lt;br/&gt;nGQL] --&gt; B[Graph Service]
 B --&gt; C[Query Parser]
 C --&gt; D[Query Planner]
 D --&gt; E[Query Optimizer]
 E --&gt; F[Execution Plan]
 F --&gt; G[Storage Service 1]
 F --&gt; H[Storage Service 2]
 F --&gt; I[Storage Service N]
 G --&gt; J[Result Aggregation]
 H --&gt; J
 I --&gt; J
 J --&gt; K[Final Result]&lt;/script&gt;
 &lt;/div&gt;
&lt;/figure&gt;&lt;p&gt;Queries enter via the Graph Service where they are parsed, planned, and optimized. The execution plan is distributed across Storage Service nodes, each returning partial results that are aggregated into the final result.&lt;/p&gt;</description></item></channel></rss>