DataVault Deployment/Operations

Performance Tuning

Optimize DataVault performance for your document volume and usage patterns

Core Performance Settings

Adjust these settings in your config/app_config.yaml based on your document volume:

Processing Settings

Vault Configuration
vault:
  ingestion_interval: 900        # Seconds between ingestion runs (0 to disable)
  tasks_batch_size: 10          # Tasks processed per datapool at once
  chunk_size: 256               # Text chunk size in tokens
  chunk_overlap: 26             # Overlapping tokens between chunks

Embedding Model Rate Limits

Embedding Model Settings
embedding_model:
  rpm: 3000                     # Requests per minute
  tpm: 1000000                  # Tokens per minute

Search Rate Limiting

Search Configuration
search_requests_per_minute: 30  # API rate limit
search_results_limit: 20        # Max results per search

Weaviate Memory Settings

Configure memory in your docker-compose.yaml:

Weaviate Memory Configuration
weaviate:
  environment:
    GOMEMLIMIT: 4GiB            # Memory limit for Weaviate
    QUERY_DEFAULTS_LIMIT: 100   # Default query result limit

Monitoring Settings

Enable monitoring based on your needs:

Monitoring Configuration
logging:
  system_monitoring_interval: 60      # System stats (0 to disable)
  storage_monitoring_interval: 300    # Storage stats (0 to disable)
  database_monitoring_interval: 60    # Database stats (0 to disable)
  heartbeat_interval_minutes: 1       # Uptime monitoring interval

Tuning Guidelines

For Small Setups (< 1,000 documents)

  • tasks_batch_size: 5
  • ingestion_interval: 300 (5 minutes)
  • GOMEMLIMIT: 1GiB

For Medium Setups (1,000 - 10,000 documents)

  • tasks_batch_size: 10 (default)
  • ingestion_interval: 900 (15 minutes)
  • GOMEMLIMIT: 4GiB

For Large Setups (10,000+ documents)

  • tasks_batch_size: 20
  • ingestion_interval: 3600 (1 hour)
  • GOMEMLIMIT: 8GiB

Troubleshooting

Check Processing Performance

# Monitor ingestion logs
docker compose logs -f vault | grep -i "ingestion\|batch"

# Check current resource usage
docker stats --no-stream vault weaviate

Common Issues

  • Slow ingestion: Increase tasks_batch_size or reduce ingestion_interval
  • Memory issues: Reduce tasks_batch_size or increase GOMEMLIMIT
  • Rate limit errors: Reduce rpm/tpm in embedding model config
  • Search timeouts: Increase QUERY_DEFAULTS_LIMIT or reduce search_results_limit

That's it. Focus on these core settings rather than complex optimizations.