Primeira pergunta: Por que você está em um banco de dados relacional para começar, se você não precisa de propriedades ACID? Parece que você está fazendo algum tipo de trabalho não transacional, portanto, obter um RDMBS com transações provavelmente é muito pesado para seu ambiente.
Segunda pergunta: Que tipo de dados você está armazenando? Parece que você precisa de um banco de dados de armazenamento de colunas e que é para algum tipo de projeto de data warehouse.
Terceira pergunta: Se você está preso ao PostgreSQL (que é um bom banco de dados como está), é a versão atual? Versões antigas anteriores a 8.x são notoriamente lentas, mas muito de trabalho foi aprimorado desde então, e alguns dos problemas que você mencionou - como o autovacuum - agora são facilmente abordados com "set-and-set". Esqueça "configurações.
* Data growing with snowball effect
Algumas informações adicionais sobre isso seriam boas. Por que é bola de neve? Você pode normalizá-lo para reduzir o armazenamento?
* existing postgresql locks table etc for vaccuum tasks periodically
Se isso for um problema, já posso dizer que você está executando uma versão mais antiga. As versões mais recentes têm controles por tabela para isso e você pode até desligá-lo totalmente.
* Archiving data is tideous currently
É difícil fazer qualquer tipo de julgamento aqui porque não há muito com o que trabalhar. Qual mídia o arquivo está sendo despejado? Quanta E / S sustentada está envolvida? Em que período de tempo você está operando? Quantos dados? Precisa ser um depósito "quente" ou pode ser "frio"?
* Human interaction involved in existing archive, vaccuum, ... process periodically
Estou tentando ver como o uso "normal" exigiria intervenção manual, porque não deveria. O vácuo é automático agora e (como mencionado antes) pode ser configurado para não ocorrer, e a maioria dos backups é feita em script (e quando você pode criar scripts, pode agendar). Então, como isso ocorre?
* Need a 'set it. forget it. just add another server when data grows more.' type of solution
Você está falando sobre um acordo de servidor em cluster.
Parece-me o seguinte:
- Você está em um RDBMS e a natureza transacional não é adequada para seu aplicativo.
- Seu aplicativo parece querer um estilo de banco de dados principalmente lido. Também não parece que você precisa ter integridade transacional.
- O volume de dados que você está lidando provavelmente não está normalizado, e nenhuma tentativa foi feita para normalizá-lo.
- Você está fazendo muito a mão waaaaaay e precisa de mais automação.
- Você gosta da ideia de uma solução em cluster, possivelmente computação em "estilo de nuvem".
Além disso, não há informações suficientes aqui para descobrir o que seria um bom ajuste.