> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanoss.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SCANOSS LDB

> An overview of the <a href='https://github.com/scanoss/ldb' target='_blank' rel='noopener noreferrer'>LDB (Linked-list Database)</a>, the headless, read-optimised database engine at the core of the SCANOSS platform, designed for single-key lookups across vast amounts of open source data.

## Overview

The **LDB (Linked-list Database)** is a headless (no user interface or client layer)
database engine at the core of SCANOSS. It is designed for single-key, read-optimised
access across large volumes of data, whilst maintaining a minimal memory and disk
footprint and minimising kernel-level system calls. Data is structured using linked lists.

SCANOSS SaaS runs on a distributed infrastructure built around the LDB. The platform
uses load balancing and distributed LDB data nodes to process software analysis requests
at scale, ensuring high availability and fault tolerance.

## How Load Balancing Works

Incoming requests are distributed across multiple **processing nodes**. Each processing
node runs the
[SCANOSS Engine](https://docs.scanoss.com/en/latest/core/scanoss-engine) and queries a
shared **LDB Knowledge Base** — a read-optimised store of open source component data —
to match file fingerprints (cryptographic hashes of source code snippets) against known
open source components.

This architecture provides:

* **Even workload distribution** across processing nodes
* **High availability** through redundancy
* **Horizontal scaling** to handle increased request volumes

## Example Deployment Scenario

A typical large enterprise deployment includes the following layers:

1. **External request endpoint** — receives incoming scan requests
2. **Load balancer** — distributes requests across processing nodes
3. **Processing nodes** — each running the SCANOSS Engine
4. **LDB Knowledge Base** — shared, read-optimised data layer queried by all nodes

## Architecture Diagram

```mermaid theme={null}
graph TD
    A[Customer Requests] --> B[Load Balancer]

    B --> C[Node 1]
    B --> D[Node 2]

    C --> E[(LDB Knowledge Base)]
    D --> E

    style A fill:#42A5F5,stroke:#1976D2,stroke-width:3px,color:#fff
    style B fill:#7E57C2,stroke:#5E35B1,stroke-width:3px,color:#fff
    style C fill:#26A69A,stroke:#00897B,stroke-width:2px,color:#fff
    style D fill:#26A69A,stroke:#00897B,stroke-width:2px,color:#fff
    style E fill:#FFA726,stroke:#F57C00,stroke-width:3px,color:#fff
```

## Reliability and Scalability Properties

This architecture is designed to provide:

* **Fault tolerance** — redundant processing nodes prevent single points of failure
* **Consistent query performance** — read-optimised data access at the LDB layer
* **High availability** — load balancing ensures continuity under node failure
* **Horizontal scaling** — additional processing nodes can be added without downtime
