Em 5 de abril de 2022, o Escritório de Patentes e Marcas Registradas dos EUA concedeu uma segunda patente à Couchbase para seu nova abordagem para otimizar consultas a bancos de dados orientados a documentos em matrizes! Esse recurso está disponível desde o Couchbase Server 7.1 e o Couchbase Capella 7.0, mas essa patente reconhece nossa inovação na otimização baseada em custos para bancos de dados orientados a documentos.

A otimização de consultas é uma ciência que está em andamento nos sistemas de dados relacionais desde a década de 1970. E é consistente com nossa liderança em trazer inovações para o mercado, O Couchbase foi reconhecido por seu trabalho técnico profundo em trazer a otimização de consultas para dados não estruturados em um formato JSON. A equipe de engenharia do Couchbase tem estado na vanguarda da evolução do desempenho dos bancos de dados de documentos na última década. O compromisso de nossos engenheiros com a excelência é a razão pela qual algumas das maiores empresas do mundo agora confiam no Couchbase para seus aplicativos de missão crítica. Recentemente, patenteamos uma nova abordagem de otimização baseada em custo (CBO) para consultas a bancos de dados orientados a documentos em matrizes como parte desse compromisso. A engenharia do Couchbase continua a trazer o poder da otimização baseada em custo para o NoSQL, e essa concessão de patente reconhece nossa inovação contínua.  

Parabenizamos Bingjie Miao, Keshav Murthy, Marco Grecoe Prathibha Bisarahalli por seu trabalho impressionante e contínuo no campo da otimização baseada em custos! 

Esta postagem abordará a otimização baseada em custo (CBO), por que ela é importante e por que a CBO para consultas a bancos de dados de documentos é exclusiva do Couchbase.

O que é otimização baseada em custos?

A otimização baseada em custo (ou CBO) é um processo para selecionar a maneira mais eficiente de executar uma consulta a um banco de dados, considerando o custo de memória, CPU, transporte de rede e uso de disco. A CBO compara o custo de rotas de consulta alternativas e, em seguida, seleciona o plano de execução de consulta com o menor custo. 

Keshav Murthy, nosso vice-presidente de engenharia e um dos autores da patente, usa a seguinte analogia de mapa para explicar o que é CBO:

Uma maneira de entender a CBO é considerar um avião plano de vooPor exemplo, um avião pode tomar qualquer número de caminhos para ir de São Francisco a São Paulo, mas há apenas alguns caminhos ideais quando você considera os custos de combustível, a resistência do vento, o tráfego aéreo etc. Da mesma forma, uma consulta ao banco de dados precisa de um plano de consulta. Há muitas maneiras de executar a consulta, mas apenas alguns planos ideais. 

Uma maneira de selecionar um caminho de consulta é usar uma otimização baseada em regras (Rule-based Optimization, RBO), que toma decisões sobre o caminho da consulta com base em regras (por exemplo, sempre preferir índices com o maior número de chaves). No entanto, a RBO pode ficar muito confusa e ineficiente rapidamente. E raramente produz o caminho de consulta mais ideal. No mundo dos bancos de dados NoSQL, a maioria dos bancos de dados ainda utiliza a otimização baseada em regras.

A otimização baseada em custos pega uma consulta enviada pelo usuário, seleciona entre milhões de planos de consulta e escolhe o plano de maior desempenho e eficiência de recursos para a execução da consulta com base em estatísticas. 

Por que a otimização baseada em custos é importante?

As implicações do CBO são que as consultas utilizam menos memória, menos disco, menos E/S, menos partições e menos estouro, o que resulta em menor latência e menor custo para os usuários. Isso é particularmente significativo para bancos de dados que lidam com um grande número de transações - até mesmo pequenas melhorias no desempenho podem ter um impacto significativo.

Keshav Murthy continuou explicando por que o CBO é importante, novamente usando uma analogia com um mapa:

Quando isso é importante - como chegar a tempo ao recital do seu filho ou a um jogo de futebol - você usaria um mapa de direção estático que não leva em conta o tráfego? O otimizador de rotas do Google Maps otimizará o tempo. Os otimizadores desenvolvem um plano para executar a consulta com o mínimo de recursos: CPU e memória. Sabendo disso, por que você aceitaria uma regra estática (ou forma de consulta!) de sua carga de trabalho de banco de dados crítica para os negócios?

cost-based optimization in a mapping application

O otimizador de consultas do banco de dados toma decisões. Essas decisões têm implicações importantes no desempenho da consulta, na taxa de transferência do sistema e em sua capacidade de cumprir os SLAs. Os bancos de dados com um otimizador melhor facilitarão o desenvolvimento, o gerenciamento e o cumprimento dos SLAs. 

Como o CBO para consultas de banco de dados orientadas a documentos em matrizes é exclusivo do Couchbase

A otimização baseada em custos (CBO) para SQL existe há mais de 40 anos e tem sido fundamental para o sucesso do RDBMS e da produtividade do desenvolvedor. No entanto, o CBO não estava geralmente disponível para consultas de banco de dados de documentos até que a Couchbase implementou o CBO para SQL++ (anteriormente conhecido como N1QL) com a versão 6.5 do Couchbase Server em 2019. Desde então, nossos clientes têm aproveitado os benefícios de desempenho do CBO para suas consultas - o que é particularmente importante para muitos de nossos clientes que dependem do alto desempenho do Couchbase para alimentar seus aplicativos de missão crítica.


A concessão da patente representa um compromisso técnico da Couchbase em fornecer os melhores elementos de SQL para nossa plataforma de banco de dados NoSQL. E, com a recente concessão da patente, o Couchbase é o único provedor de banco de dados de documentos que executa de forma inteligente a otimização baseada em custos para consultas a bancos de dados NoSQL, o que tem enormes implicações no desempenho e no custo. Antes de decidir por um banco de dados NoSQL, pergunte ao seu fornecedor:  Você tem um otimizador baseado em custos?

Parabéns à nossa equipe de engenharia por seu trabalho árduo e contínuo para desenvolver o padrão de excelência para bancos de dados de documentos.

Saiba mais sobre a otimização baseada em custo para o Couchbase!

Assista a vídeo curto ou leia o documentação para obter uma visão geral de Otimização baseada em custos em N1QL.

Para conhecer a fundo o CBO para SQL++, recomendo a leitura das seguintes postagens do blog de Keshav Murthy, nosso vice-presidente de engenharia:

Obrigado pela leitura!

Autor

Postado por Vinai Amble

Deixar uma resposta