HeadlinesBriefing HeadlinesBriefing 12 languages

ParadeDB Search Performance Improvements

Hacker News ·

🇬🇧 English

By Ming Ying on October 1, 2026 Two weeks ago, Planet Scale unveiled TIN, a full-text search extension for Postgres. Their launch post reported impressive performance wins over a subset of Parade DB’s text search functionality, specifically BM25-ranked text search and document counts. We’d like to extend kudos to the Planet Scale team. It’s great to see another Postgres platform investing in search, and it’s clear that a lot of thoughtful engineering went into TIN.

Let’s be very clear about one thing: TIN is fast (at least 8x faster than Parade DB 0.25 in every Planet Scale benchmark). So fast that the only response which made sense was to shut up and put on our performance optimization hats. Two weeks later, here’s the BM25-ranked before and after, using the same Stack Exchange benchmark dataset, harness, and machine types.

What’s interesting is not that we quickly closed the gap, but how we closed it. TIN’s post claims that their performance is due to a fundamental architectural difference that uses Postgres’ internal ctid fields as document identifiers. However, we closed this gap through a few optimization passes that had little to do with how documents are identified.

The heart of any text search index is a postings list. Tantivy, the search library behind Parade DB, uses sequential u32 document IDs for its postings. Postgres identifies its rows by ctid values. The crux of TIN’s post is that using ctid values directly as document identifiers eliminates this map and enables efficient bitmap operations and visibility checks. For BM25 Top K queries, we were skeptical.

View original article →


🇸🇦 العربية

بحث النص PlanetScale: تحليل الأداء الجزء الأول

بقلم Ming Ying في 1 أكتوبر 2026 قبل أسبوعين، كشفت Planet Scale عن TIN، وهو امتداد بحث نص كامل لـ Postgres. أبلغ منشور إطلاقهم عن مكاسب أداء مثيرة للإعجاب على مجموعة فرعية من وظائف بحث النص في Parade DB، وتحديداً بحث النص المرتب BM25 وعدد المستندات. نود أن نوجه التحية لفريق Planet Scale. من الرائع رؤية منصة Postgres أخرى تستثمر في البحث، ومن الواضح أن الكثير من الهندسة المدروسة قد دخلت في TIN.

لنكن واضحين جداً بشأن شيء واحد: TIN سريع (أسرع على الأقل 8x من Parade DB 0.25 في كل معيار Planet Scale). سريع جداً لدرجة أن الرد الوحيد المنطقي كان التزام الصمت وارتداء قبعات تحسين الأداء. بعد أسبوعين، ها هي النتائج قبل وبعد المرتبة BM25، باستخدام نفس مجموعة بيانات المعيار Stack Exchange، ونفس الأدوات، وأنواع الآلات.

المثير للاهتمام ليس أننا أغلقنا الفجوة بسرعة، ولكن كيف أغلقناها. يدعي منشور TIN أن أداءهم يرجع إلى اختلاف معماري أساسي يستخدم حقول ctid الداخلية لـ Postgres كمعرفات للمستندات. ومع ذلك، أغلقنا هذه الفجوة من خلال بعض تمريرات التحسين التي لا علاقة لها بكيفية تحديد المستندات.

قلب أي فهرس بحث نصي هو قائمة الترحيلات. Tantivy، مكتبة البحث وراء Parade DB، تستخدم معرفات مستند u32 متسلسلة لترحيلاتها. يحدد Postgres صفوفه بقيم ctid. جوهر منشور TIN هو أن استخدام قيم ctid مباشرة كمعرفات للمستندات يلغي هذه الخريطة ويمكّن من عمليات bitmap فعالة وفحوصات الرؤية. بالنسبة لاستعلامات BM25 Top K، كنا متشككين.

ما هو TIN وكيف يختلف عن Parade DB؟

TIN هو امتداد بحث نص كامل لـ Postgres من PlanetScale. يدعي أنه أسرع من Parade DB باستخدام حقول ctid الداخلية لـ Postgres مباشرة كمعرفات للمستندات، مما يلغي الحاجة إلى خريطة بين Doc Id وقيم ctid. يستخدم Parade DB معرفات مستند u32 المتسلسلة من Tantivy.

العربية version →


🇧🇩 বাংলা

PlanetScale টেক্সট সার্চ: পারফরম্যান্স বিশ্লেষণ প্রথম অংশ

Ming Ying দ্বারা 1 অক্টোবর 2026 দুই সপ্তাহ আগে, Planet Scale TIN উন্মোচন করেছে, যা Postgres-এর জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধান এক্সটেনশন। তাদের লঞ্চ পোস্টটি Parade DB-এর টেক্সট সার্চ কার্যকারিতার একটি উপসেটের উপর চিত্তাকর্ষক কর্মক্ষমতা লাভের কথা জানিয়েছে, বিশেষ করে BM25-র্যাঙ্কযুক্ত টেক্সট সার্চ এবং ডকুমেন্ট গণনা। আমরা Planet Scale টিমকে অভিনন্দন জানাতে চাই। আরেকটি Postgres প্ল্যাটফর্মকে সার্চে বিনিয়োগ করতে দেখা দারুণ, এবং এটা স্পষ্ট যে TIN-এ অনেক চিন্তাশীল ইঞ্জিনিয়ারিং গেছে।

আসুন একটি বিষয়ে খুব স্পষ্ট হই: TIN দ্রুত (প্রতিটি Planet Scale বেঞ্চমার্কে Parade DB 0.25-এর থেকে কমপক্ষে 8x দ্রুত)। এত দ্রুত যে একমাত্র বোধগম্য প্রতিক্রিয়া ছিল চুপ থাকা এবং আমাদের পারফরম্যান্স অপ্টিমাইজেশন টুপি পরা। দুই সপ্তাহ পরে, এখানে BM25-র্যাঙ্কযুক্ত আগে এবং পরে, একই Stack Exchange বেঞ্চমার্ক ডেটাসেট, হার্নেস এবং মেশিন টাইপ ব্যবহার করে।

মজার বিষয় হল আমরা দ্রুত ব্যবধান বন্ধ করেছি তা নয়, বরং আমরা কীভাবে এটি বন্ধ করেছি। TIN-এর পোস্ট দাবি করে যে তাদের কর্মক্ষমতা একটি মৌলিক আর্কিটেকচারাল পার্থক্যের কারণে যা Postgres-এর অভ্যন্তরীণ ctid ফিল্ডকে ডকুমেন্ট আইডেন্টিফায়ার হিসেবে ব্যবহার করে। তবে, আমরা কিছু অপ্টিমাইজেশন পাসের মাধ্যমে এই ব্যবধান বন্ধ করেছি যার সাথে ডকুমেন্টগুলি কীভাবে চিহ্নিত করা হয় তার খুব কম সম্পর্ক ছিল।

যেকোনো টেক্সট সার্চ ইনডেক্সের হৃদয় হল একটি পোস্টিং তালিকা। Parade DB-এর পিছনের সার্চ লাইব্রেরি Tantivy, তার পোস্টিংয়ের জন্য অনুক্রমিক u32 ডকুমেন্ট আইডি ব্যবহার করে। Postgres তার সারিগুলিকে ctid মান দ্বারা চিহ্নিত করে। TIN-এর পোস্টের মূল বিষয় হল ctid মানগুলিকে সরাসরি ডকুমেন্ট আইডেন্টিফায়ার হিসেবে ব্যবহার করা এই মানচিত্রটি দূর করে এবং কার্যকর বিটম্যাপ অপারেশন এবং দৃশ্যমানতা পরীক্ষা সক্ষম করে। BM25 Top K ক্যোয়ারীর জন্য, আমরা সন্দিহান ছিলাম।

TIN কী এবং এটি Parade DB থেকে কীভাবে আলাদা?

TIN হল PlanetScale থেকে Postgres-এর জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধান এক্সটেনশন। এটি Postgres-এর অভ্যন্তরীণ ctid ফিল্ড সরাসরি ডকুমেন্ট আইডেন্টিফায়ার হিসেবে ব্যবহার করে Parade DB-এর চেয়ে দ্রুত বলে দাবি করে, যার ফলে Doc Id এবং ctid মানের মধ্যে মানচিত্রের প্রয়োজনীয়তা দূর হয়। Parade DB Tantivy-এর অনুক্রমিক u32 ডকুমেন্ট আইডি ব্যবহার করে।

বাংলা version →


🇩🇪 Deutsch

PlanetScale Textsuche: Leistungsanalyse Teil I

Von Ming Ying am 1. Oktober 2026 Vor zwei Wochen enthüllte Planet Scale TIN, eine Volltextsuche-Erweiterung für Postgres. Ihr Startbeitrag berichtete von beeindruckenden Leistungssteigerungen gegenüber einer Teilmenge der Textsuchfunktionalität von Parade DB, insbesondere der BM25-bewerteten Textsuche und Dokumentzählungen. Wir möchten dem Planet Scale Team gratulieren. Es ist großartig, eine weitere Postgres-Plattform zu sehen, die in die Suche investiert, und es ist klar, dass viel durchdachte Ingenieursarbeit in TIN gesteckt wurde.

Lassen Sie uns eines sehr klar sagen: TIN ist schnell (mindestens 8x schneller als Parade DB 0.25 in jedem Planet Scale Benchmark). So schnell, dass die einzig sinnvolle Reaktion war, den Mund zu halten und unsere Leistungsoptimierungs-Hüte aufzusetzen. Zwei Wochen später, hier ist das BM25-bewertete Vorher und Nachher, unter Verwendung desselben Stack Exchange Benchmark-Datensatzes, derselben Testumgebung und derselben Maschinentypen.

Interessant ist nicht, dass wir die Lücke schnell geschlossen haben, sondern wie wir sie geschlossen haben. TINs Beitrag behauptet, dass ihre Leistung auf einem grundlegenden architektonischen Unterschied beruht, der Postgres' interne ctid-Felder als Dokumentidentifikatoren verwendet. Wir haben diese Lücke jedoch durch einige Optimierungsdurchläufe geschlossen, die wenig damit zu tun hatten, wie Dokumente identifiziert werden.

Das Herzstück jedes Textsuchindex ist eine Postings-Liste. Tantivy, die Suchbibliothek hinter Parade DB, verwendet sequentielle u32-Dokument-IDs für ihre Postings. Postgres identifiziert seine Zeilen durch ctid-Werte. Der Kern von TINs Beitrag ist, dass die direkte Verwendung von ctid-Werten als Dokumentidentifikatoren diese Karte eliminiert und effiziente Bitmap-Operationen und Sichtbarkeitsprüfungen ermöglicht. Für BM25 Top K-Abfragen waren wir skeptisch.

Was ist TIN und wie unterscheidet es sich von Parade DB?

TIN ist eine Volltextsuche-Erweiterung für Postgres von PlanetScale. Es behauptet, schneller als Parade DB zu sein, indem es Postgres' interne ctid-Felder direkt als Dokumentidentifikatoren verwendet, wodurch die Notwendigkeit einer Karte zwischen Doc Id und ctid-Werten entfällt. Parade DB verwendet Tantivys sequentielle u32-Dokument-IDs.

Deutsch version →


🇪🇸 Español

Búsqueda de Texto de PlanetScale: Análisis de Rendimiento Parte I

Por Ming Ying el 1 de octubre de 2026 Hace dos semanas, Planet Scale presentó TIN, una extensión de búsqueda de texto completo para Postgres. Su publicación de lanzamiento reportó impresionantes ganancias de rendimiento sobre un subconjunto de la funcionalidad de búsqueda de texto de Parade DB, específicamente la búsqueda de texto clasificada por BM25 y los recuentos de documentos. Nos gustaría extender felicitaciones al equipo de Planet Scale. Es genial ver otra plataforma Postgres invirtiendo en búsqueda, y está claro que se dedicó mucha ingeniería cuidadosa a TIN.

Seamos muy claros sobre una cosa: TIN es rápido (al menos 8x más rápido que Parade DB 0.25 en cada punto de referencia de Planet Scale). Tan rápido que la única respuesta que tenía sentido fue callarse y ponerse los sombreros de optimización de rendimiento. Dos semanas después, aquí está el antes y después clasificado por BM25, utilizando el mismo conjunto de datos de referencia de Stack Exchange, el mismo arnés y los mismos tipos de máquina.

Lo interesante no es que cerramos rápidamente la brecha, sino cómo la cerramos. La publicación de TIN afirma que su rendimiento se debe a una diferencia arquitectónica fundamental que utiliza los campos ctid internos de Postgres como identificadores de documentos. Sin embargo, cerramos esta brecha a través de algunas pasadas de optimización que tenían poco que ver con cómo se identifican los documentos.

El corazón de cualquier índice de búsqueda de texto es una lista de publicaciones. Tantivy, la biblioteca de búsqueda detrás de Parade DB, utiliza identificadores de documento u32 secuenciales para sus publicaciones. Postgres identifica sus filas por valores ctid. El punto central de la publicación de TIN es que usar valores ctid directamente como identificadores de documentos elimina este mapa y permite operaciones de mapa de bits eficientes y verificaciones de visibilidad. Para las consultas BM25 Top K, éramos escépticos.

¿Qué es TIN y en qué se diferencia de Parade DB?

TIN es una extensión de búsqueda de texto completo para Postgres de PlanetScale. Afirma ser más rápido que Parade DB al usar los campos ctid internos de Postgres directamente como identificadores de documentos, eliminando la necesidad de un mapa entre Doc Id y valores ctid. Parade DB utiliza los identificadores de documento u32 secuenciales de Tantivy.

Español version →


🇫🇷 Français

Recherche Textuelle PlanetScale : Analyse de Performance Partie I

Par Ming Ying le 1 octobre 2026 Il y a deux semaines, Planet Scale a dévoilé TIN, une extension de recherche en texte intégral pour Postgres. Leur article de lancement a rapporté des gains de performance impressionnants par rapport à un sous-ensemble des fonctionnalités de recherche textuelle de Parade DB, en particulier la recherche textuelle classée BM25 et les décomptes de documents. Nous aimerions féliciter l'équipe de Planet Scale. C'est formidable de voir une autre plateforme Postgres investir dans la recherche, et il est clair que beaucoup d'ingénierie réfléchie a été consacrée à TIN.

Soyons très clairs sur une chose : TIN est rapide (au moins 8x plus rapide que Parade DB 0.25 dans chaque benchmark Planet Scale). Si rapide que la seule réponse qui avait du sens était de se taire et d'enfiler nos chapeaux d'optimisation des performances. Deux semaines plus tard, voici l'avant et l'après classés BM25, utilisant le même ensemble de données de benchmark Stack Exchange, le même harnais et les mêmes types de machines.

Ce qui est intéressant n'est pas que nous ayons rapidement comblé l'écart, mais comment nous l'avons comblé. L'article de TIN affirme que leurs performances sont dues à une différence architecturale fondamentale qui utilise les champs ctid internes de Postgres comme identifiants de documents. Cependant, nous avons comblé cet écart grâce à quelques passes d'optimisation qui avaient peu à voir avec la façon dont les documents sont identifiés.

Le cœur de tout index de recherche textuelle est une liste de publications. Tantivy, la bibliothèque de recherche derrière Parade DB, utilise des identifiants de document u32 séquentiels pour ses publications. Postgres identifie ses lignes par des valeurs ctid. Le point crucial de l'article de TIN est que l'utilisation directe des valeurs ctid comme identifiants de documents élimine cette carte et permet des opérations bitmap efficaces et des vérifications de visibilité. Pour les requêtes BM25 Top K, nous étions sceptiques.

Qu'est-ce que TIN et en quoi diffère-t-il de Parade DB ?

TIN est une extension de recherche en texte intégral pour Postgres de PlanetScale. Elle prétend être plus rapide que Parade DB en utilisant directement les champs ctid internes de Postgres comme identifiants de documents, éliminant ainsi le besoin d'une carte entre Doc Id et les valeurs ctid. Parade DB utilise les identifiants de document u32 séquentiels de Tantivy.

Français version →


🇮🇳 हिन्दी

PlanetScale टेक्स्ट सर्च: प्रदर्शन विश्लेषण भाग I

Ming Ying द्वारा 1 अक्टूबर 2026 को दो सप्ताह पहले, Planet Scale ने TIN का अनावरण किया, जो Postgres के लिए एक पूर्ण-पाठ खोज एक्सटेंशन है। उनके लॉन्च पोस्ट ने Parade DB की टेक्स्ट सर्च कार्यक्षमता के एक उपसमूह पर प्रभावशाली प्रदर्शन लाभों की सूचना दी, विशेष रूप से BM25-रैंक वाली टेक्स्ट सर्च और दस्तावेज़ गणना। हम Planet Scale टीम को बधाई देना चाहते हैं। एक और Postgres प्लेटफ़ॉर्म को सर्च में निवेश करते देखना बहुत अच्छा है, और यह स्पष्ट है कि TIN में बहुत सारी विचारशील इंजीनियरिंग गई है।

आइए एक बात के बारे में बहुत स्पष्ट हों: TIN तेज़ है (हर Planet Scale बेंचमार्क में Parade DB 0.25 से कम से कम 8x तेज़)। इतना तेज़ कि एकमात्र प्रतिक्रिया जो समझ में आती थी वह थी चुप रहना और अपनी प्रदर्शन अनुकूलन टोपी लगाना। दो सप्ताह बाद, यहाँ BM25-रैंक वाला पहले और बाद का परिणाम है, उसी Stack Exchange बेंचमार्क डेटासेट, हार्नेस और मशीन प्रकारों का उपयोग करते हुए।

दिलचस्प यह नहीं है कि हमने जल्दी से अंतर को बंद कर दिया, बल्कि यह है कि हमने इसे कैसे बंद किया। TIN की पोस्ट का दावा है कि उनका प्रदर्शन एक मौलिक आर्किटेक्चरल अंतर के कारण है जो Postgres के आंतरिक ctid फ़ील्ड को दस्तावेज़ पहचानकर्ता के रूप में उपयोग करता है। हालाँकि, हमने कुछ अनुकूलन पासों के माध्यम से इस अंतर को बंद किया जिनका दस्तावेज़ों की पहचान करने के तरीके से बहुत कम लेना-देना था।

किसी भी टेक्स्ट सर्च इंडेक्स का हृदय एक पोस्टिंग सूची है। Parade DB के पीछे की सर्च लाइब्रेरी Tantivy, अपनी पोस्टिंग के लिए अनुक्रमिक u32 दस्तावेज़ ID का उपयोग करती है। Postgres अपनी पंक्तियों को ctid मानों द्वारा पहचानता है। TIN की पोस्ट का मूल यह है कि ctid मानों को सीधे दस्तावेज़ पहचानकर्ता के रूप में उपयोग करना इस मानचित्र को समाप्त करता है और कुशल बिटमैप संचालन और दृश्यता जाँच को सक्षम करता है। BM25 Top K क्वेरी के लिए, हम संशय में थे।

TIN क्या है और यह Parade DB से कैसे अलग है?

TIN PlanetScale की ओर से Postgres के लिए एक पूर्ण-पाठ खोज एक्सटेंशन है। यह Postgres के आंतरिक ctid फ़ील्ड को सीधे दस्तावेज़ पहचानकर्ता के रूप में उपयोग करके Parade DB से तेज़ होने का दावा करता है, जिससे Doc Id और ctid मानों के बीच मानचित्र की आवश्यकता समाप्त हो जाती है। Parade DB Tantivy के अनुक्रमिक u32 दस्तावेज़ ID का उपयोग करता है।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Pencarian Teks PlanetScale: Analisis Kinerja Bagian I

Oleh Ming Ying pada 1 Oktober 2026 Dua minggu lalu, Planet Scale meluncurkan TIN, ekstensi pencarian teks lengkap untuk Postgres. Posting peluncuran mereka melaporkan peningkatan kinerja yang mengesankan pada subset fungsionalitas pencarian teks Parade DB, khususnya pencarian teks peringkat BM25 dan hitungan dokumen. Kami ingin memberikan pujian kepada tim Planet Scale. Sangat menyenangkan melihat platform Postgres lain berinvestasi dalam pencarian, dan jelas bahwa banyak rekayasa yang cermat telah dilakukan pada TIN.

Mari kita sangat jelas tentang satu hal: TIN cepat (setidaknya 8x lebih cepat dari Parade DB 0.25 di setiap tolok ukur Planet Scale). Begitu cepat sehingga satu-satunya respons yang masuk akal adalah diam dan memakai topi optimasi kinerja kami. Dua minggu kemudian, inilah hasil sebelum dan sesudah peringkat BM25, menggunakan kumpulan data tolok ukur Stack Exchange yang sama, perangkat yang sama, dan jenis mesin yang sama.

Yang menarik bukanlah bahwa kami dengan cepat menutup kesenjangan, tetapi bagaimana kami menutupnya. Posting TIN mengklaim bahwa kinerja mereka disebabkan oleh perbedaan arsitektural fundamental yang menggunakan bidang ctid internal Postgres sebagai pengidentifikasi dokumen. Namun, kami menutup kesenjangan ini melalui beberapa lintasan optimasi yang tidak ada hubungannya dengan bagaimana dokumen diidentifikasi.

Inti dari setiap indeks pencarian teks adalah daftar posting. Tantivy, pustaka pencarian di balik Parade DB, menggunakan ID dokumen u32 berurutan untuk posting-nya. Postgres mengidentifikasi barisnya dengan nilai ctid. Inti dari posting TIN adalah bahwa menggunakan nilai ctid secara langsung sebagai pengidentifikasi dokumen menghilangkan peta ini dan memungkinkan operasi bitmap yang efisien dan pemeriksaan visibilitas. Untuk kueri BM25 Top K, kami skeptis.

Apa itu TIN dan apa bedanya dengan Parade DB?

TIN adalah ekstensi pencarian teks lengkap untuk Postgres dari PlanetScale. Ia mengklaim lebih cepat dari Parade DB dengan menggunakan bidang ctid internal Postgres secara langsung sebagai pengidentifikasi dokumen, menghilangkan kebutuhan akan peta antara Doc Id dan nilai ctid. Parade DB menggunakan ID dokumen u32 berurutan dari Tantivy.

Bahasa Indonesia version →


🇯🇵 日本語

PlanetScale テキスト検索:パフォーマンス分析 パートI

Ming Ying 著 2026年10月1日 2週間前、Planet Scale は Postgres 用の全文検索拡張機能 TIN を発表しました。彼らの発表記事では、Parade DB のテキスト検索機能のサブセット、特に BM25 ランク付けされたテキスト検索とドキュメントカウントにおいて、印象的なパフォーマンスの向上が報告されました。Planet Scale チームに敬意を表したいと思います。別の Postgres プラットフォームが検索に投資しているのを見るのは素晴らしいことであり、TIN には多くの思慮深いエンジニアリングが投入されたことは明らかです。

一つはっきりさせておきましょう:TIN は高速です(すべての Planet Scale ベンチマークで Parade DB 0.25 よりも少なくとも 8倍 高速です)。あまりに高速だったため、唯一理にかなった対応は黙ってパフォーマンス最適化の帽子をかぶることでした。2週間後、同じ Stack Exchange ベンチマークデータセット、ハーネス、マシンタイプを使用した BM25 ランク付けの前後の結果がこちらです。

興味深いのは、私たちがすぐにギャップを埋めたことではなく、どのように埋めたかです。TIN の記事は、そのパフォーマンスが Postgres の内部 ctid フィールドをドキュメント識別子として使用するという根本的なアーキテクチャの違いによるものだと主張しています。しかし、私たちはドキュメントの識別方法とはほとんど関係のないいくつかの最適化パスを通じてこのギャップを埋めました。

テキスト検索インデックスの核心はポスティングリストです。Parade DB の背後にある検索ライブラリ Tantivy は、そのポスティングに順次 u32 ドキュメント ID を使用します。Postgres は ctid 値によって行を識別します。TIN の記事の核心は、ctid 値をドキュメント識別子として直接使用することでこのマップが不要になり、効率的なビットマップ操作と可視性チェックが可能になることです。BM25 Top K クエリについては、私たちは懐疑的でした。

TINとは何か、Parade DBとどう違うのか?

TIN は PlanetScale による Postgres 用の全文検索拡張機能です。Postgres の内部 ctid フィールドをドキュメント識別子として直接使用することで、Doc Id と ctid 値の間のマップの必要性を排除し、Parade DB よりも高速であると主張しています。Parade DB は Tantivy の順次 u32 ドキュメント ID を使用します。

日本語 version →


🇧🇷 Português

Pesquisa de Texto PlanetScale: Análise de Desempenho Parte I

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.

O que é TIN e como difere do Parade DB?

TIN é uma extensão de pesquisa de texto completo para Postgres da PlanetScale. Ele afirma ser mais rápido que o Parade DB ao usar os campos ctid internos do Postgres diretamente como identificadores de documentos, eliminando a necessidade de um mapa entre Doc Id e valores ctid. O Parade DB usa os IDs de documento u32 sequenciais do Tantivy.

Português version →


🇷🇺 Русский

Текстовый поиск PlanetScale: Анализ производительности Часть I

Автор: Ming Ying, 1 октября 2026 г. Две недели назад Planet Scale представила TIN — расширение полнотекстового поиска для Postgres. В их анонсе сообщалось о впечатляющих преимуществах в производительности по сравнению с подмножеством функций текстового поиска Parade DB, в частности текстового поиска с ранжированием BM25 и подсчета документов. Мы хотели бы выразить признательность команде Planet Scale. Приятно видеть, что еще одна платформа Postgres инвестирует в поиск, и очевидно, что в TIN было вложено много продуманной инженерной работы.

Давайте будем очень четкими в одном: TIN быстр (по крайней мере, в 8 раз быстрее Parade DB 0.25 в каждом тесте Planet Scale). Настолько быстр, что единственным разумным ответом было замолчать и надеть наши шляпы оптимизации производительности. Две недели спустя, вот результаты до и после с ранжированием BM25, с использованием того же набора данных теста Stack Exchange, того же оборудования и тех же типов машин.

Интересно не то, что мы быстро сократили разрыв, а то, как мы его сократили. В посте TIN утверждается, что их производительность обусловлена фундаментальным архитектурным различием, которое использует внутренние поля ctid Postgres в качестве идентификаторов документов. Однако мы сократили этот разрыв с помощью нескольких оптимизационных проходов, которые имели мало общего с тем, как идентифицируются документы.

Сердцем любого индекса текстового поиска является список постингов. Tantivy, поисковая библиотека, лежащая в основе Parade DB, использует последовательные u32 идентификаторы документов для своих постингов. Postgres идентифицирует свои строки по значениям ctid. Суть поста TIN заключается в том, что использование значений ctid непосредственно в качестве идентификаторов документов устраняет эту карту и обеспечивает эффективные операции с битовыми картами и проверки видимости. Для запросов BM25 Top K мы были скептичны.

Что такое TIN и чем он отличается от Parade DB?

TIN — это расширение полнотекстового поиска для Postgres от PlanetScale. Он утверждает, что быстрее Parade DB, поскольку использует внутренние поля ctid Postgres непосредственно в качестве идентификаторов документов, устраняя необходимость в карте между Doc Id и значениями ctid. Parade DB использует последовательные u32 идентификаторы документов Tantivy.

Русский version →


🇨🇳 简体中文

PlanetScale 文本搜索:性能分析第一部分

作者:Ming Ying 于 2026 年 10 月 1 日 两周前,Planet Scale 发布了 TIN,一个用于 Postgres 的全文搜索扩展。他们的发布文章报告了在 Parade DB 文本搜索功能子集上的令人印象深刻的性能优势,特别是 BM25 排名文本搜索和文档计数。我们要向 Planet Scale 团队表示祝贺。很高兴看到另一个 Postgres 平台在搜索方面进行投资,很明显 TIN 背后进行了大量深思熟虑的工程工作。

让我们非常明确一点:TIN 很快(在每一个 Planet Scale 基准测试中至少比 Parade DB 0.25 快 8x)。如此之快,以至于唯一合理的反应就是闭嘴并戴上我们的性能优化帽子。两周后,这是使用相同的 Stack Exchange 基准数据集、测试工具和机器类型的 BM25 排名前后对比。

有趣的不是我们迅速缩小了差距,而是我们如何缩小了差距。TIN 的文章声称他们的性能是由于一个根本性的架构差异,即使用 Postgres 的内部 ctid 字段作为文档标识符。然而,我们通过一些与文档标识方式关系不大的优化过程缩小了这一差距。

任何文本搜索索引的核心都是一个倒排列表。Parade DB 背后的搜索库 Tantivy 为其倒排列表使用顺序的 u32 文档 ID。Postgres 通过 ctid 值标识其行。TIN 文章的关键在于直接使用 ctid 值作为文档标识符消除了这种映射,并实现了高效的位图操作和可见性检查。对于 BM25 Top K 查询,我们持怀疑态度。

什么是 TIN,它与 Parade DB 有何不同?

TIN 是 PlanetScale 为 Postgres 提供的全文搜索扩展。它声称比 Parade DB 更快,因为它直接使用 Postgres 的内部 ctid 字段作为文档标识符,从而消除了 Doc Id 和 ctid 值之间的映射需求。Parade DB 使用 Tantivy 的顺序 u32 文档 ID。

简体中文 version →