Database Maintenance

Application is using two types of databases, both contain different data that should be backed up in different way.

PostgreSQL

SQL relational databases contain application configuration which includes:

  • Flow diagrams
  • NLU training sets
  • Knowledge base
  • Users, roles, organisations
  • Active sessions state
  • Transcripts, and analytics data

Storage requirements

At all times there must be at least 50% free disk space available.

This is crucial especially during schema changes.

Below you'll find estimation of minimal storage size depending on number of monthly conversations served.

Monthly conversations

Data retention

SQL Data Size

Minimum storage size

S - <10k monthly conversations

6 months

5.5 GB

11 GB

M - < 50k monthly conversations

6 months

7.5 GB

15 GB

L - <300k monthly conversations

6 months

20 GB

40 GB

Configuration for data retention is described here

Backups

To configure backups you can use native solutions like pg_dump or use more advanced solution that supports backups and restores of PostgreSQL schemas

ElasticSearch

ElasticSearch document database contains following data:

  • Transcripts
  • Conversation metadata

Data retention

There is a built-in data retention mechanism in Bot Integration service. It is disabled by default and can be enabled by overriding the default config.

botService: dataRetention: enabled: false durationInDays: 365 # Max duration to keep data for, always extended to the start of a day statementsLimit: 30000 # Statements delete limit per run, can be ignored when there are more statements in 6h period

Backups

To configure backups please follow the official documentation on snapshots and restore