> For the complete documentation index, see [llms.txt](https://docs.thub.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thub.tech/langchain/record-managers.md).

# 📊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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
