[SEI][SPIKE] Realizar análise para redução do espaço em disco ocupado pelo SEI
CENÁRIO ATUAL
O Sistema Eletrônico de Informação é parte do projeto Governo Sem Papel, mantido pelo Estado de Rondônia, sendo utilizado para a geração e tramitação de processos entre secretarias. Economizando milhões em papel e impressão e acelerando o fluxo dos trâmites.
PROBLEMA
Com a ampla adoção pelas secretarias uma grande quantidade diária de dados é gerada. A versão utilizada possuí problemas conhecidos de performance e otimização e não pode ser atualizada devido a entraves burocráticos. O crescimento da utilização de recursos, principalmente de disco, gera dificuldades para a manutenção de logs, rotinas de backup, lentidão na aplicação e até mesmo alto custo para armazenamento.
OBJETIVO
Sendo definido o cenário atual e explicitado o problema, tem-se como objetivo primário a diminuição do espaço em disco ocupado pela base de dados da aplicação, atendendo a Estória de Usuário propostas em: https://app.pipefy.com/open-cards/435477806.
RESULTADOS ESPERADOS
Com este estudo espera-se:
- Identificar uma ou mais soluções que possibilitam a diminuição do espaço em disco ocupado pela base de dados da aplicação;
- Identificar riscos inerentes a cada solução identificada e a legalidade da proposta;
- Fornecer subsídio para os próximos estudos;
- Definir plano de execução;
PREMISSAS
P1) Com os entraves burocráticos, hoje não é possível realizar correção via software, sendo necessárias a utilização de rotinas de banco;
P2) Mais de 90% do volume de dados estão concentrados nas tabelas dbo.versao_secao_documento e dbo.documento_conteudo;
P3) Não existe material documentado sobre esta situação;
ENVOLVIDOS
- Coordenadoria de Análise e Gestão de Dados
- Coordenadoria de Infraestrutura
- Adriano B. Sol Sol
ESCOPO DE ATUAÇÃO
Dado nosso objetivo proposto, e considerando as premissas PRE1 e PRE2, realizamos uma análise exploratória preliminar (AEP) e definimos pelo escopo deste estudo apenas as tabelas dbo.versao_secao_documento e dbo.documento_conteudo, sendo a análise da estrutura e impacto demonstradas a seguir.
ANÁLISE DA ESTRUTURA (Relacionamento Lógico)
Os relacionamentos de primeiro grau das duas tabelas propostas são os seguintes:
ANÁLISE DO IMPACTO (Armazenamento Utilizado)
O uso de espaço em disco das tabelas ordenadas pelo tamanho(KB) de forma decrescente trás as duas tabelas propostas ao topo do relatório, mostrando assim todo o grande armazenamento reservado para elas e a quantidade de registros(Records).
SOLUÇÕES PROPOSTAS
Para as propostas listadas a seguir, são considerados o escopo definido na seção anterior.
S1) Exclusão dos registros repetidos - Existe uma grande quantidade de informação repetida entre as tabelas dbo.versao_secao_documento(VSD) e dbo.documento_conteudo(DC), enquanto a tabela VSD armazena partes do documento, a tabela DC armazena o documento inteiro. Com esta abordagem, nosso objetivo é identificar se é possível excluir os registros de uma das tabelas sem prejudicar a informação presente. Sendo necessária para esta abordagem as seguintes validações:
V1. Estabilidade da Aplicação - será necessário validar se as chaves removidas não impactarão em erros inesperados, procurando por marcadores que informam a quantidade de versões, por exemplo.
V2. Validação de Integridade - a maioria das transações possuem validação de integridade (para evitar operações fraudulentas). É necessário um estudo para identificar se não existem validadores de integridade nos registros, como Verificação de Somatória, Verificadores de Dispersão, entre outros.
S2) Atualização dos registros - Esta proposta consiste na atualizado dos registros de histórico de versão do documento assinado e visualizado por uma mensagem padrão, diminuindo consideravelmente. Sendo necessária a validação V2 da proposta S1.
S3) Expurgo - O expurgo consiste na remoção dos dados para uma outra tabela, ficando como histórico. Operações como movimentação das bases de dados levariam em conta apenas os dados que não foram expurgados, se tornando mais rápidas. Os backups nessas tabelas de expurgo poderiam ser menos recorrentes. A economia ocorreria na frequência dos backups e nos snapshots da aplicação. Sendo necessária as mesmas validações da proposta S1.
S4) Particionamento das Tabelas - embora não culmine para uma efetiva redução no espaço em disco, essa solução permite uma possível melhoria na performance. Para isso, é necessário um estudo visando identificar as chaves de partição e a granularidade.
O particionamento de tabelas só é efetivo se as consultas se aproveitarem dessa solução.
MAPA DE RISCO
Para definição do mapa de risco, foram considerados os seguintes atributos:
- ABORDAGEM - de acordo com as soluções propostas na seção anterior;
- EFICIÊNCIA - considerando a abordagem proposta, e o contexto, considera-se eficiência a melhoria na performance e a diminuição do espaço em disco;
- RISCO - considera-se neste atributo o risco de indisponibilidade e falhas inesperadas na aplicação;
- RECUPERABILIDADE - probabilidade de recuperação dos registros impactados (sem considerar backup);
- COMPLEXIDADE - complexidade de implantação da solução.
Os valores preenchidos foram definidos a partir de alinhamento entre os membros do time.
# | ABORDAGEM | EFICIÊNCIA | RISCO | RECUPERABILIDADE | COMPLEXIDADE |
Exclusão | Alta | Alto | Alta | Altíssima | |
Atualização | Média | Médio/Alto | Nula | Altíssima | |
Expurgo | Média/Alta | Médio | Alta | Média/Alta | |
Particionamento | Necessita de Estudo | Nulo | Não Aplica | Alta |
DISCUSSÃO
Após a elucidação das abordagens propostas, optamos pela execução da solução proposta S1, sendo destacados os pontos fortes e fracos a seguir e a aplicação na próxima seção.
Pontos Fortes
São pontos fortes dessa abordagem a alta eficiência da proposta e a alta recuperabilidade. A alta eficiência consiste na grande quantidade de registros que serão removidos, de acordo com a análise exploratória preliminar. Por outro lado, a recuperabilidade consiste no foco da proposta de apagar apenas informações redundantes, não ocorrendo perda efetiva da informação;
Pontos Fracos
A complexidade de execução da abordagem é o seu principal ponto fraco, sendo uma atividade complexa e que necessita de simulação e teste. Outro ponto fraco esta relacionado ao risco de sermos afetados por cenários desconhecidos, como validação de conteúdo que pode estar presente na aplicação, mas não foi identificada na análise exploratória preliminar.
APLICAÇÃO
Conforme apresentado na discussão, com a abordagem de exclusão de registros redundantes sendo definida como primeiro foco de trabalho, torna-se necessária a realização de um segundo estudo técnico, com os objetivos de explorar, simular e validar a proposta, tornando-a APTA para execução em produção.
Recomenda-se a criação de um cronograma para estudo e execução da proposta.
CRONOGRAMA
Pode
Solicitarser ambienteinteressante avaliar o tempo de testesexecução parada asolução Coordenadoriaafim de Infraestrutura.
um melhor horário de execução.
REFERÊNCIAS
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms177411(v=sql.105)?redirectedfrom=MSDN
https://dba.stackexchange.com/questions/62707/is-table-partitioning-improving-performance-is-it-worth-it