# 📊Record Managers

When document chunks are upserting, each chunk will be hashed using [SHA-1](https://github.com/emn178/js-sha1) algorithm. These hashes will get stored in Record Manager. If there is an existing hash, the embedding and upserting process will be skipped.

In some cases, you might want to delete existing documents that are derived from the same sources as the new documents being indexed. For that, there are 3 cleanup modes for Record Manager:

<figure><img src="/files/lJPy8mdGsYiSnux5Rpw0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2hHTgmwcpwyhr5IMH4Xe" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/vaXbSUaefbscDSkOIaqs" alt=""><figcaption></figcaption></figure>

2. And have the following 2 documents:

<figure><img src="/files/UJvunhrk7NBpMSSNCEsU" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/muqi6cQI3TAwzRzaEmki" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/vrZxPWqMCiIO54yq2rzw" alt=""><figcaption></figcaption></figure>

3. After an upsert, we will see 2 documents that are upserted:

<figure><img src="/files/tT0Snu48dF3Gs5mv4qnW" alt=""><figcaption></figcaption></figure>

4.Now, if we delete the **Dog** document, and update **Cat** to **Cats**, we will now see the following:

![](/files/BczU4a8pLIGYzsUkhZvW)

·       The original **Cat** document is deleted

·       A new document with **Cats** is added

·       **Dog** document is left untouched

·       The remaining vector embeddings in Vector Store are **Cats** and **Dog**

<figure><img src="/files/WfstXCrOZIXSA5VTl5d2" alt=""><figcaption></figcaption></figure>

Current available Record Managers are:

·       SQLite Record manager

·       MySQL Record manager

·       PostgresQL Record manager

&#x20;

#### 1)SQLite Record manager

The SQLite Record Manager stores records locally using SQLite database.

#### Key Features:

• Local Storage: Stores data on local system\
• Lightweight: No server required\
• Easy Setup: Minimal configuration needed\
• Fast Access: Suitable for small applications

#### Setup Requirements:

1. Add SQLite Record Manager node to the canvas
2. Configure Additional Parameters if required

#### Use Cases:

• Local development\
• Small-scale applications

<figure><img src="/files/Cdfk0Tg3QOB2CXj2RVB2" alt=""><figcaption></figcaption></figure>

#### 2)MySQL Record manager

The MySQL Record Manager stores and manages records using a MySQL database.

#### Key Features:

• Database Storage: Stores records in MySQL\
• Persistent Data: Retains data across sessions\
• Structured Storage: Uses relational database format\
• Scalable: Suitable for production applications

#### Setup Requirements:

1. Set up a MySQL database
2. Add MySQL Record Manager node to the canvas
3. Connect Credential > provide MySQL credentials
4. Enter Host, Database, and Port (default: 3306)
5. Configure Additional Parameters if required

#### Use Cases:

• Storing application data\
• Managing structured records in workflows

<figure><img src="/files/q5v04HFtCd3kfdg7yp7b" alt=""><figcaption></figcaption></figure>

#### 3)PostgresQL Record manage

The Postgres Record Manager stores and manages records using a PostgreSQL database.

#### Key Features:

• Reliable Storage: Uses PostgreSQL database\
• Persistent Records: Maintains data across sessions\
• High Performance: Efficient for large datasets\
• Flexible Queries: Supports advanced querying

#### Setup Requirements:

1. Set up a PostgreSQL database
2. Add Postgres Record Manager node to the canvas
3. Connect Credential > provide PostgreSQL credentials
4. Enter Host, Database, and Port (default: 5432)
5. Configure Additional Parameters if required

#### Use Cases:

• Backend data storage\
• Large-scale applications

<figure><img src="/files/Vjg2bYOSeWUVL9DbIu9V" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thub.tech/langchain/record-managers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
