Em Parte I a série, abordamos a arquitetura por trás dos índices globais e locais e quando usar um índice global (GSI) em vez de um índice local (MapReduce View) no Couchbase Server. Em Parte II Na Parte II da série, também falamos sobre os novos índices secundários globais otimizados para memória e como a MOI melhora o desempenho da manutenção do índice com uma estrutura na memória projetada exclusivamente para altas taxas de mutação e altas taxas de varredura. Na Parte III, gostaria de falar sobre como os índices secundários globais padrão foram aprimorados na versão 4.5: Há vários aprimoramentos nessa área, mas o mais importante é um novo modo de gravação chamado "Circular Writes".
Índices secundários globais otimizados para memória versus índices secundários globais padrão
Os índices otimizados para memória foram adicionados na versão 4.5 como uma opção de armazenamento adicional para GSIs. Os índices secundários globais padrão estão presentes desde a versão 4.0. Os administradores podem configurar o GSI com o armazenamento padrão do GSI, que usa o ForestDB por baixo, para índices que não cabem na memória, ou podem escolher o GSI otimizado para memória para indexação e consultas mais rápidas na memória. Embora os índices otimizados para memória, com gerenciamento de índices na memória, possam oferecer o melhor desempenho de manutenção e varredura de índices, nem todos podem se dar ao luxo de ter todos os índices na memória. O GSI padrão pode ser transferido para o disco quando a memória se esgota, portanto, a E/S eficiente do disco é essencial para a indexação e as varreduras eficientes.
Modos de gravação em índices secundários globais padrão
Anteriormente, o GSI padrão oferecia apenas um modo de gravação somente com acréscimo. As gravações Append Only gravam no final do arquivo a cada mutação no índice. Entretanto, as gravações somente de acréscimo exigem compactações frequentes. Com a versão 4.5, o GSI padrão vem com um modo de gravação adicional chamado "gravações circulares".
Quando você ativa as "gravações circulares", conforme as mutações chegam, em vez de simplesmente anexar novas páginas ao final do arquivo, as operações de gravação procuram reutilizar o espaço órfão no arquivo. Se não houver espaço órfão suficiente disponível no arquivo que possa acomodar a gravação, a operação ainda poderá fazer uma gravação com acréscimo.

Com gravações circulares, a compactação total ainda funciona da mesma forma. O processo de compactação lê o arquivo existente e grava um novo arquivo contíguo que não contém mais os itens órfãos e é gravado como um arquivo contíguo. No entanto, o número de compactações necessárias é drasticamente reduzido. Em vez de compactar a cada poucas horas, pode ser uma vez por semana, o que representa uma economia incrível na capacidade de IO (IOPS e MB/s).
Configuração do modo de gravação e do acionador de compactação para o GSI padrão
O GSI padrão vem com dois modos de gravação. A configuração do modo de gravação e da fragmentação do índice está em settings > auto-fragmentation no wconsole eb. (Observação: FA configuração de segmentação do índice só se aplica quando a opção de armazenamento "Índice secundário global padrão" é selecionada para os índices. O modo de gravação e a estratégia de compactação não se aplicam a índices secundários globais otimizados para memória.)
- Use gravações circulares com intervalo de tempo para acionar a compactação: Para novos clusters criados com a versão 4.5, essa opção é selecionada por padrão. Com gravações circulares, não são necessárias compactações frequentes. Você deve especificar os dias da semana e a hora de início em que a compactação pode ser executada e, opcionalmente, definir uma hora de término do período de tempo em que a compactação é abortada. A hora de término só entra em vigor se a opção abortar compactação estiver marcada.
- Gravações somente de acréscimo com nível de fragmentação de índice para acionar a compactação: Quando você faz upgrade de um cluster (com o serviço de indexação ativado) da versão 4.0 ou 4.1, essa opção é selecionada por padrão. A opção é mantida principalmente para compatibilidade com versões anteriores.
Você pode alternar entre os modos de gravação a qualquer momento.

Os alertas e as estatísticas funcionam da mesma forma entre os índices padrão e otimizados para memória. Parte II da série para obter mais informações sobre estatísticas e alertas.
-cihan