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 conversationsData retentionSQL Data SizeMinimum storage size
S - <10k monthly conversations6 months5.5 GB11 GB
M - < 50k monthly conversations6 months7.5 GB15 GB
L - <300k monthly conversations6 months20 GB40 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