Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
facd751
Memgraph 3.9
gitbuda Feb 12, 2026
d6f7707
Merge main
gitbuda Mar 10, 2026
ca73147
Add embeddings memory tracking docs (#1556)
DavIvek Mar 11, 2026
42c75d0
Add vector index creation using functions docs (#1555)
DavIvek Mar 11, 2026
26e7290
Start adding changelog items
gitbuda Mar 11, 2026
379f764
Add more changelog items
gitbuda Mar 11, 2026
3c6e4f0
Complete changelog item
gitbuda Mar 11, 2026
b14a629
Update --storage-access-timeout-sec runtime flag info (#1554)
andrejtonev Mar 11, 2026
45f8522
Add mention that modifying users in community builds loses user auth …
colinbarry Mar 11, 2026
dc8c96a
Add license check logic update (#1553)
andrejtonev Mar 11, 2026
22c97d4
Add docs for log retention days (#1550)
as51340 Mar 11, 2026
64f948d
Add docs for async logs (#1549)
as51340 Mar 11, 2026
9569722
Add server side parameters docs (#1546)
DavIvek Mar 11, 2026
0899d72
Add missing server side params release note
gitbuda Mar 11, 2026
c50dc5f
Update SHOW TRANSACTIONS docs (#1545)
andrejtonev Mar 11, 2026
205a73b
Add section on using GDB in Memgraph Helm charts (#1544)
as51340 Mar 11, 2026
4c88737
Add section on profiling in Memgraph (#1543)
as51340 Mar 11, 2026
6b00c2d
Add S3 core dumps docs (#1542)
as51340 Mar 11, 2026
25a5b34
Add PropertyStore float precision docs (#1541)
andrejtonev Mar 11, 2026
1bf8a54
Add Vertex/Edge size update docs (#1540)
andrejtonev Mar 11, 2026
b861e71
feat: Parameter 'deltas_batch_progress_size' (#1538)
as51340 Mar 11, 2026
4b7e40a
feat: Coordinator request forwarding (#1535)
as51340 Mar 11, 2026
b56ecee
Merge branch 'main' into memgraph-3-9
gitbuda Mar 11, 2026
d2c075c
Remove breaking section
gitbuda Mar 11, 2026
e664313
Add some grammar fixes
gitbuda Mar 12, 2026
58a83b3
Add minor fix
gitbuda Mar 12, 2026
90bc135
Add the pre-release check skill + add missing chengelog item
gitbuda Mar 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions pages/advanced-algorithms/available-algorithms/migrate.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,19 @@ filter, and convert relational data into a graph format.
| **Implementation** | Python |
| **Parallelism** | sequential |

<Callout type="info">
When running multiple migrations against the same source, avoid repeating the `config` map in every call.
Use [server-side parameters](/database-management/server-side-parameters) to store the connection config once
and reference it as `$config` across all your queries:

```cypher
SET GLOBAL PARAMETER pg_config = {user: 'memgraph', password: 'password', host: 'localhost', database: 'demo_db'};

CALL migrate.postgresql('users', $pg_config) YIELD row CREATE (u:User {id: row.id});
CALL migrate.postgresql('orders', $pg_config) YIELD row CREATE (o:Order {id: row.id});
```
</Callout>

---

## Procedures
Expand Down
8 changes: 4 additions & 4 deletions pages/ai-ecosystem/graph-rag/atomic-pipelines.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ Offer the ability to compute embeddings during the preprocessing or retrieval
stages.
11. [`llm.complete`](/advanced-algorithms/available-algorithms/llm) function:
Allows you to call any LLM under any given Cypher query.
12. Server-side parameters: Could be used for many different things, but in this
context, the parameters help you with managing configuration under any given
query or pipeline.
12. [Server-side parameters](/database-management/server-side-parameters): Could
be used for many different things, but in this context, the parameters help you
with managing configuration under any given query or pipeline.

## Question and Pipeline Types

Expand Down Expand Up @@ -107,4 +107,4 @@ exists, it synthesizes what is missing or not well-covered. Example use cases:
- **Publishing**: *"I want to write a book, which important topics in this
domain are not yet well covered in the existing literature?"*

![atomic_graphrag_pipelines](/pages/ai-ecosystem/graph-rag/atomic-pipelines/atomic-graphrag-pipelines.png)
![atomic_graphrag_pipelines](/pages/ai-ecosystem/graph-rag/atomic-pipelines/atomic-graphrag-pipelines.png)
13 changes: 13 additions & 0 deletions pages/clustering/high-availability/best-practices.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,19 @@ The configuration value can be controlled using the query:
SET COORDINATOR SETTING 'max_replica_read_lag' TO '10' ;
```

### `deltas_batch_progress_size`

Users can control how often replicas report back to main that they're still processing the data (transactions, WALs, snapshots)
the main has sent to them. The default value is 100'000 which should be enough for most of your transactions.
However, if processing 100'000 deltas takes more than 30s (because you're dealing with large deltas or you have older CPUs),
you can set the configuration value `deltas_batch_progress_size` to a smaller value. This will avoid timeouts on replicas so
you won't see the query exception "At least one SYNC replica has not committed", but at the cost of lower throughput since replicas
will be sending in-progress messages to the main more often.

```
SET COORDINATOR SETTING 'deltas_batch_progress_size' TO '50000';
```

## Observability

Monitoring cluster health is essential. Key metrics include:
Expand Down
17 changes: 9 additions & 8 deletions pages/clustering/high-availability/ha-commands-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,18 @@ Memgraph High Availability (HA) cluster.
## Cluster registration commands

<Callout type="warning">
**Important:** **All registration commands (adding coordinators and registering
data instances) must be executed on the *same* coordinator.** You may choose any
**Important:** You may choose any
coordinator for the initial setup; it automatically becomes the leader. After
setup, the choice no longer matters.
</Callout>

<Callout type="info">
All queries can be run on any coordinator. If currently the coordinator is not a
leader, the query will be automatically forwarded to the current leader and
executed there. This is because the Raft protocol specifies that only the
leader should accept changes in the cluster.
</Callout>

### `ADD COORDINATOR`

Adds a coordinator to the cluster.
Expand Down Expand Up @@ -78,7 +84,6 @@ REMOVE COORDINATOR coordinatorId;

{<h4 className="custom-header"> Behavior & implications </h4>}

- Must be executed on the **leader** coordinator.
- Leader coordinator **cannot** remove itself. To remove the leader, first
trigger a leadership change.

Expand Down Expand Up @@ -106,7 +111,6 @@ of each instance.

{<h4 className="custom-header"> Behavior & implications </h4>}

- Must be executed on the **leader** coordinator.
- Only bolt server can be updated.

{<h4 className="custom-header"> Example </h4>}
Expand Down Expand Up @@ -294,8 +298,7 @@ SHOW INSTANCE;

### `SHOW REPLICATION LAG`

Shows replication lag (in committed transactions) for all instances. Must be run
on the **leader**.
Shows replication lag (in committed transactions) for all instances.

```cypher
SHOW REPLICATION LAG;
Expand Down Expand Up @@ -326,7 +329,5 @@ FORCE RESET CLUSTER STATE;

{<h4 className="custom-header"> Implications </h4>}

- Must be executed on the **leader** coordinator.


<CommunityLinks/>
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,20 @@ Below is a cleaned-up categorization.

#### Coordinator → Coordinator RPCs

| RPC | Purpose | Description |
| -------------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `ShowInstancesRpc` | Follower requests cluster state from leader | Sent by a follower coordinator to the leader coordinator when a user executes `SHOW INSTANCES` through the follower. |
| RPC | Purpose | Description |
| ------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `ShowInstancesRpc` | Follower requests cluster state from leader. | Sent by a follower coordinator to the leader coordinator when a user executes `SHOW INSTANCES` through the follower. |
| `AddCoordinatorRpc` | Follower requests adding coordinator. | Sent by a follower coordinator to the leader coordinator when a user executes `ADD COORDINATOR` through the follower. |
| `RemoveCoordinatorRpc` | Follower requests removing coordinator. | Sent by a follower coordinator to the leader coordinator when a user executes `REMOVE COORDINATOR` through the follower. |
| `RegisterInstanceRpc` | Follower requests registering an instance. | Sent by a follower coordinator to the leader coordinator when a user executes `REGISTER INSTANCE` through the follower. |
| `UnregisterInstanceRpc` | Follower requests unregistering an instance. | Sent by a follower coordinator to the leader coordinator when a user executes `UNREGISTER INSTANCE` through the follower. |
| `SetInstanceToMainRpc` | Follower requests updating main instance. | Sent by a follower coordinator to the leader coordinator when a user executes `SET INSTANCE TO MAIN` through the follower. |
| `DemoteInstanceRpc` | Follower requests demoting an instance. | Sent by a follower coordinator to the leader coordinator when a user executes `DEMOTE INSTANCE` through the follower. |
| `UpdateConfigRpc` | Follower requests updating config. | Sent by a follower coordinator to the leader coordinator when a user executes `UPDATE CONFIG` through the follower. |
| `ForceResetRpc` | Follower requests resetting cluster state. | Sent by a follower coordinator to the leader coordinator when a user executes `FORCE RESET` through the follower. |
| `ShowInstancesRpc` | Follower requests showing cluster state. | Sent by a follower coordinator to the leader coordinator when a user executes `SHOW INSTANCES` through the follower. |
| `GetRoutingTableRpc` | Follower requests a routing table. | Sent by a follower coordinator to the leader coordinator when a user connects using `bolt+routing` through the follower. |
| `CoordReplicationLagRpc` | Follower requests replication lag info. | Sent by a follower coordinator to the leader coordinator when a user executes `SHOW REPLICATION LAG` through the follower. |


#### Coordinator → Data Instance RPCs
Expand Down
48 changes: 47 additions & 1 deletion pages/clustering/high-availability/setup-ha-cluster-k8s.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,41 @@ Memgraph HA uses standard Kubernetes **startup**, **readiness**, and
- **Coordinators**: probed on the **NuRaft server**
- **Data instances**: probed on the **Bolt server**

## Debugging

There are different ways in which you can debug Memgraph's HA cluster in production. One way is to send us logs from all instances if you notice some issue. That's why we
advise users to set the log level to `TRACE` if possible. Note however that running `TRACE` log level has some performance costs, especially when logging to stderr additionally
to files. If the performance is your concern, first try to set `--also-log-to-stderr=false` since logging to files is cheaper. If you're still unhappy with the performance overhead
of logging, use `--log-level=DEBUG` (higher log level will also be fine like `INFO`, `CRITICAL`...) and `--also-log-to-stderr=true`.

If you notice your application is crashing, you will be able to collect core dumps by setting `storage.data.createCoreDumpsClaim` and `storage.coordinators.createCoreDumpsClaim`
to `true`. That will trigger the creation of init container which will be run in privileged mode as root user to set-up all the necessary things on your nodes to be able to
collect core dumps. You can then create the debug pod and attach PVC containing core dumps to that pod to be able to extract core dumps outside of the K8s nodes. The example
of such a debug pod is the following YAML file:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: debug-coredump
spec:
containers:
- name: debug
image: ubuntu:22.04
command: ["sleep", "infinity"]
volumeMounts:
- name: coredumps
mountPath: /var/core/memgraph
volumes:
- name: coredumps
persistentVolumeClaim:
claimName: memgraph-data-0-core-dumps-storage-memgraph-data-0-0
restartPolicy: Never
```
There is also a possibility of automatically uploading core dumps to S3. To do that, set `coreDumpUploader.enabled` to `true` and configure the S3 bucket,
AWS region, and credentials secret in the `coreDumpUploader` section. Note that the `createCoreDumpsClaim` flag for the relevant role (data/coordinators)
must also be set to `true`, as the uploader sidecar mounts the same PVC used for core dump storage. Core dumps are uploaded to
`s3://<s3BucketName>/<s3Prefix>/<pod-hostname>/<core-dump-filename>`.


## Monitoring

Expand Down Expand Up @@ -748,7 +783,7 @@ and their default values.
| `prometheus.memgraphExporter.pullFrequencySeconds` | How often will Memgraph's Prometheus exporter pull data from Memgraph instances. | `5` |
| `prometheus.memgraphExporter.repository` | The repository where Memgraph's Prometheus exporter image is available. | `memgraph/prometheus-exporter` |
| `prometheus.memgraphExporter.tag` | The tag of Memgraph's Prometheus exporter image. | `0.2.1` |
| `prometheus.serviceMonitor.enabled` | If enabled, a `ServiceMonitor` object will be deployed. | `true` |
| `prometheus.serviceMonitor.enabled` | If enabled, a `ServiceMonitor` object will be deployed. | `true` |
| `prometheus.serviceMonitor.kubePrometheusStackReleaseName` | The release name under which `kube-prometheus-stack` chart is installed. | `kube-prometheus-stack` |
| `prometheus.serviceMonitor.interval` | How often will Prometheus pull data from Memgraph's Prometheus exporter. | `15s` |
| `labels.coordinators.podLabels` | Enables you to set labels on a pod level. | `{}` |
Expand All @@ -759,6 +794,17 @@ and their default values.
| `extraEnv.coordinators` | Env variables that users can define and are applied to coordinators | `[]` |
| `initContainers.data` | Init containers that users can define that will be applied to data instances. | `[]` |
| `initContainers.coordinators` | Init containers that users can define that will be applied to coordinators. | `[]` |
| `coreDumpUploader.enabled` | Enable the core dump S3 uploader sidecar. Requires `storage.<role>.createCoreDumpsClaim` to be `true`. | `false` |
| `coreDumpUploader.image.repository` | Docker image repository for the uploader sidecar | `amazon/aws-cli` |
| `coreDumpUploader.image.tag` | Docker image tag for the uploader sidecar | `2.33.28` |
| `coreDumpUploader.image.pullPolicy` | Image pull policy for the uploader sidecar | `IfNotPresent` |
| `coreDumpUploader.s3BucketName` | S3 bucket name where core dumps will be uploaded | `""` |
| `coreDumpUploader.s3Prefix` | S3 key prefix (folder) for uploaded core dumps | `core-dumps` |
| `coreDumpUploader.awsRegion` | AWS region of the S3 bucket | `us-east-1` |
| `coreDumpUploader.pollIntervalSeconds` | How often (in seconds) the sidecar checks for new core dump files | `30` |
| `coreDumpUploader.secretName` | Name of the K8s Secret containing AWS credentials | `aws-s3-credentials` |
| `coreDumpUploader.accessKeySecretKey` | Key in the K8s Secret for `AWS_ACCESS_KEY_ID` | `AWS_ACCESS_KEY_ID` |
| `coreDumpUploader.secretAccessKeySecretKey` | Key in the K8s Secret for `AWS_SECRET_ACCESS_KEY` | `AWS_SECRET_ACCESS_KEY` |


For the `data` and `coordinators` sections, each item in the list has the
Expand Down
1 change: 1 addition & 0 deletions pages/database-management/_meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default {
"monitoring": "Monitoring",
"multi-tenancy": "Multi-tenancy",
"query-metadata": "Query metadata",
"server-side-parameters": "Server-side parameters",
"server-stats": "Server stats",
"ssl-encryption": "SSL encryption",
"system-configuration": "System configuration"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@ Memgraph's privilege system controls access to various database operations throu
| `DATA DIRECTORY LOCK STATUS` | `DURABILITY` | `DATA DIRECTORY LOCK STATUS` |
| `FREE MEMORY` | `FREE_MEMORY` | `FREE MEMORY` |
| `SHOW CONFIG` | `CONFIG` | `SHOW CONFIG` |
| `SET [GLOBAL] PARAMETER` | `SERVER_SIDE_PARAMETERS` | `SET GLOBAL PARAMETER x = 'value'` |
| `UNSET [GLOBAL] PARAMETER` | `SERVER_SIDE_PARAMETERS` | `UNSET PARAMETER x` |
| `SHOW PARAMETERS` | `SERVER_SIDE_PARAMETERS` | `SHOW PARAMETERS` |
| `CREATE TRIGGER` | `TRIGGER` | `CREATE TRIGGER ...` |
| `DROP TRIGGER` | `TRIGGER` | `DROP TRIGGER ...` |
| `SHOW TRIGGERS` | `TRIGGER` | `SHOW TRIGGERS` |
Expand Down
Loading