lançamento do SGBD distribuído , desenvolvido sob a influência das tecnologias do Google e . TiDB é classificada como um sistema híbrido HTAP (Hybrid Transactional/Analytical Processing), capaz de realizar transações em tempo real (OLTP) e processar consultas analíticas. O projeto é escrito na linguagem Go e estão sob a licença Apache 2.0.
Recursos do TiDB:
- Suporte a SQL e fornecimento de uma interface de cliente compatível com o protocolo MySQL, facilitando a adaptação de aplicações existentes para TiDB que foram escritas para MySQL, além de permitir o uso de bibliotecas de cliente populares. Além do protocolo MySQL, é possível acessar o SGBD através de uma API baseada em JSON e conector para Spark.
- Entre os recursos suportados pelo SQL estão índices, funções agregadas, expressões GROUP BY, ORDER BY, DISTINCT, junções (LEFT JOIN / RIGHT JOIN / CROSS JOIN), visões, funções de janela e subconsultas. As capacidades fornecidas são suficientes para operar com TiDB em web-aplicações como PhpMyAdmin, e WordPress;
- Capacidade de escalonamento horizontal e garantia de alta disponibilidade: o tamanho do armazenamento e a potência computacional podem ser aumentados simplesmente conectando novos nós. Os dados são distribuídos entre os nós com redundância, permitindo a continuidade do funcionamento em caso de falhas de nós individuais. Falhas são tratadas automaticamente.
- O sistema garante consistência e para o software cliente parece um único grande SGBD, apesar de que, para executar uma transação, são utilizados dados de vários nós.
- Para o armazenamento físico de dados nos nós, diferentes backends podem ser utilizados, como os mecanismos de armazenamento locais GoLevelDB e BoltDB ou os mecanismos próprios de armazenamento distribuído. e TiFlash. TiKV armazena dados em formato de chave/valor, otimizado para tarefas de processamento transacional (OLTP). TiFlash armazena dados em colunas, permitindo melhor desempenho em tarefas analíticas (OLAP).
- Capacidade de alteração assíncrona do esquema de armazenamento, permitindo a adição de colunas e índices em tempo real sem interromper a execução de operações atuais.
No novo lançamento:
- O coletor de lixo distribuído Green GC está habilitado por padrão, permitindo aumentar significativamente a velocidade de coleta de lixo em grandes clusters e aumentar a estabilidade do sistema.
- Adicionada a capacidade de lidar com grandes transações, cujo tamanho é praticamente limitado pelo tamanho da memória física. O limite para uma única transação foi aumentado de 100 MB para 10 GB.
- Adicionada a suportar os comandos BACKUP e RESTORE para backup.
- Adicionada a possibilidade de aplicar bloqueios em tabelas.
- Adicionado o mecanismo de isolamento de transações compatível com MySQL no nível de leitura (READ COMMITTED).
- Na equipe 'ADMIN SHOW DDL JOBS', adicionada a suporte para expressões LIKE e WHERE.
- Adicionado o parâmetro oom-use-tmp-storage, permitindo o uso de arquivos temporários para armazenar resultados intermediários em condições de falta de memória RAM.
- Adicionada a palavra-chave Random para atribuir valores aleatórios a atributos.
- Na instrução LOAD DATA, agora é possível usar expressões hexadecimais e binárias.
- Adicionados 15 parâmetros para controlar o comportamento do otimizador.
- Incluídos recursos para diagnóstico de desempenho de consultas SQL. Adicionado um log de consultas lentas, acessível através das tabelas de sistema SLOW_QUERY / CLUSTER_SLOW_QUERY.
- Adicionada a suporte para funções de trabalho com sequências.
- Adicionada a capacidade de modificar dinamicamente parâmetros de configuração lidos do PD (Placement Driver), servidor de gerenciamento de cluster. Possibilidade de usar a expressão 'SET CONFIG' para alterar as configurações dos nós PD/TiKV.
- Adicionada a configuração max-server-connections para limitar o número máximo de conexões simultâneas ao servidor (por padrão 4096).
- Aumentada a performance em situações onde as colunas requisitadas são totalmente cobertas por índices.
- Adicionada a otimização de consultas baseada na fusão de índices.
- Aumentou o desempenho das operações com intervalos de valores;
- A carga no CPU foi reduzida graças ao cache dos resultados de acesso aos índices e à filtragem de duplicatas;
- Adicionada a suporte ao novo formato de armazenamento de strings, permitindo aumentar o desempenho de tabelas com um grande número de colunas;
- A função GROUP_CONCAT agora suporta a expressão 'ORDER BY';
- Adicionada a possibilidade de extrair dados do log TiFlash através do SQL;
- No comando 'RECOVER TABLE' foi implementado suporte para a recuperação de tabelas truncadas;
- Adicionada a tabela de sistema DDLJobs para consultar detalhes sobre a execução de trabalhos DDL;
- Adicionada a possibilidade de usar o comando SHOW CONFIG para mostrar as configurações do PD e TiKV;
- por padrão, cache do co-processador;
- O número de goroutines na fase de tentativas de commit agora pode ser controlado através da configuração committer-concurrency;
- Adicionada a possibilidade de exibir regiões de partição de tabelas;
- No tidb-server, foi adicionada a possibilidade de limitar o tamanho do armazenamento temporário;
- Suporte adicionado para as operações 'insert into tbl_name partition(partition_name_list)' e 'replace into tbl_name partition(partition_name_list)';
- O hash usado para particionamento agora suporta filtragem pelo critério 'is null';
- Para tabelas particionadas, suporte adicionado para operações de verificação, limpeza e recuperação de índices.
Fonte: opennet.ru
