Sobre o projeto
O RetractorDB é um motor de processamento de sinais de borda para processar e gravar dados de séries temporais regulares em tempo real. Ele é voltado para fluxos de dados contínuos, processamento de sinais, telemetria e monitoramento de IoT, e é descrito por seu autor como trabalho em andamento. O sistema é escrito em C++ e testado em x64 e ARM64 sob Linux, com uma porta para macOS testada apenas em Apple silicon.
As características de design declaradas no README incluem operação em tempo real, uma thread de processamento sequencial determinística, consultas contínuas que são executadas desde a declaração até o encerramento do sistema, memória compartilhada para comunicação entre processos e uma álgebra personalizada para séries temporais regulares.
O projeto consiste em três programas cooperantes:
- xretractor - o motor. Ele compila conjuntos de consultas .rql e executa planos de consulta contínuos, opcionalmente como um serviço systemd com agendamento em tempo real.
- xqry - o cliente. Ele lê resultados do motor em execução por meio de memória compartilhada e oferece vários modos de saída (incluindo Graphite, InfluxDB e gnuplot) além de um modo de consulta ad-hoc.
- xtrdb - uma ferramenta de inspeção para ler artefatos de armazenamento binário e metadados.
A instalação é oferecida de duas maneiras. Pacotes pré-compilados são publicados no GitHub Releases: um .deb Debian/Ubuntu para x86-64 que instala binários em /usr/bin e configura um serviço systemd, além de arquivos tar.gz portáteis para x86-64 e AArch64. Um instalador do site verifica o resumo SHA-256 do ativo escolhido e instala em ~/.local ou /usr/local, com configuração opcional de serviço. A compilação a partir do código-fonte usa Conan 2, CMake e Ninja; no Linux, requer GCC 14+ para recursos de C++23, e no macOS as ferramentas de linha de comando do Xcode 16.3+ com um alvo de implantação do macOS 14.4 ou mais recente. Scripts auxiliares (scripts/buildrdb.sh, scripts/macos-build.sh) inicializam o conjunto de ferramentas e conduzem as etapas de configuração, compilação, instalação e teste. Os alvos de empacotamento local produzem .deb e arquivos portáteis, incluindo uma compilação ARM64 via emulação Docker.
A configuração é um TOML opcional carregado em camadas: um arquivo de sistema em /etc/retractor, um arquivo de usuário no diretório de configuração XDG, ou um arquivo explícito passado com --config, que então se torna o único arquivo carregado. O README observa que um arquivo de configuração ausente é um estado válido. O local de armazenamento é controlado principalmente pela diretiva :STORAGE dentro do arquivo RQL, com a chave de configuração storage.dir atuando apenas como padrão.
Uma primeira consulta é demonstrada com um arquivo .rql declarando fluxos de entrada lidos de /dev/urandom, compilado com xretractor -c para validação e então executado continuamente. O cliente xqry lista fluxos ativos e imprime resultados de um fluxo nomeado; o motor também pode ser interrompido por meio de xqry --kill. Conjuntos de consultas podem ser entregues a um serviço já em execução iniciando o xretractor com o arquivo .rql, que valida as consultas, substitui o arquivo de consulta do serviço e reinicia a unidade.
Várias opções do CMake expõem otimizações independentes de plano de consulta (deduplicação de substratos idênticos, compartilhamento de computações SELECT equivalentes, tratamento de adição comutativa e fatoração de planos de movimentação de tempo de hash correspondentes). Todas são ativadas por padrão, e o README documenta como configurar variantes de ablação em diretórios de compilação separados. Existe uma opção separada de sonda de medição, que é forçada a desativar em compilações de produção e empacotamento.
O material de pesquisa fica em um repositório independente, rdb-experiment, contendo campanhas de desempenho em hardware real e experimentos de validação semântica contra oráculos independentes. Ele não é exigido pela compilação, testes, empacotamento ou CI, e é mantido separado porque os dados experimentais crescem monotonicamente e devem permanecer reproduzíveis.
O projeto é licenciado sob MIT e mantido por Michal Widera. A documentação está disponível no site do projeto, com documentação abrangente em polonês.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.