Por Ming Ying em 1 de outubro de 2026 Duas semanas atrás, a Planet Scale revelou o TIN, uma extensão de pesquisa de texto completo para Postgres. Seu post de lançamento relatou impressionantes ganhos de desempenho sobre um subconjunto da funcionalidade de pesquisa de texto do Parade DB, especificamente a pesquisa de texto classificada por BM25 e contagens de documentos. Gostaríamos de estender parabéns à equipe da Planet Scale. É ótimo ver outra plataforma Postgres investindo em pesquisa, e está claro que muita engenharia cuidadosa foi dedicada ao TIN.
Vamos ser muito claros sobre uma coisa: TIN é rápido (pelo menos 8x mais rápido que Parade DB 0.25 em todos os benchmarks da Planet Scale). Tão rápido que a única resposta que fazia sentido era calar a boca e colocar nossos chapéus de otimização de desempenho. Duas semanas depois, aqui está o antes e depois classificado por BM25, usando o mesmo conjunto de dados de benchmark do Stack Exchange, mesmo harness e mesmos tipos de máquina.
O interessante não é que fechamos rapidamente a lacuna, mas como a fechamos. O post do TIN afirma que seu desempenho se deve a uma diferença arquitetônica fundamental que usa os campos ctid internos do Postgres como identificadores de documentos. No entanto, fechamos essa lacura através de algumas passagens de otimização que tinham pouco a ver com como os documentos são identificados.
O coração de qualquer índice de pesquisa de texto é uma lista de postagens. Tantivy, a biblioteca de pesquisa por trás do Parade DB, usa IDs de documento u32 sequenciais para suas postagens. O Postgres identifica suas linhas por valores ctid. O cerne do post do TIN é que usar valores ctid diretamente como identificadores de documentos elimina esse mapa e permite operações de bitmap eficientes e verificações de visibilidade. Para consultas BM25 Top K, estávamos céticos.
Fonte: Hacker News · Resumido por HeadlinesBriefing