Wydajność budowana pod cel

Crafted Database Engine

Twoje dane. Twoje zasady. Twoja baza danych.

Gdy tuning gotowych baz przestaje wystarczać, projektujemy silnik pod Twoje obciążenie i sprzęt. Przed budową uzgadniamy, co będziemy mierzyć. Publiczny silnik orderbookowy pokazuje nasze podejście do tej pracy.

Po co własny silnik?

To odpowiedź na moment, w którym tuning nie ma już czego poprawiać. Nie jest to odpowiedź domyślna.

Latencja w mikrosekundach

Silnik general-purpose niesie narzut, o który nigdy nie prosiłeś: warstwy pod workloady, których nie masz, i funkcje, których nigdy nie wywołasz. Wyjmij je, a czas odpowiedzi liczy się w mikrosekundach, bo w ścieżce prawie nic nie zostaje.

Mniej serwerów na te same dane

Struktury danych zbudowane pod jeden wzorzec dostępu oznaczają mniej obliczeń, mniej storage’u i mniejszy ruch sieciowy przy tym samym wyniku. Oszczędność widać jako sprzęt, którego nie wstawiasz do szafy, i siedzi w benchmarku, zanim się do czegokolwiek zobowiążesz.

Projektowane wokół Twoich danych, nie odwrotnie

Schemat, strategia indeksów i protokół wire idą za Twoim modelem danych i za maszyną, na której to chodzi. Nic w tym silniku nie istnieje dlatego, że potrzebował tego inny klient.

Jeden już zbudowaliśmy. Publicznie.

Silnik bazodanowy do danych Level 2 order booka, napisany w C++20 pod jeden workload i konkretny sprzęt. Jest na GitHubie: sklonuj, przeczytaj, jak ułożona jest warstwa storage, odpal testy, zmierz na własnej maszynie. Tak wygląda skończony silnik na zamówienie i taki sam proces przeszedłby Twój projekt.

Co potrafi dziś

  • Dziennik zapisu z sumą kontrolną każdego rekordu i skompresowane segmenty kolumnowe na dysku.
  • Zapytania po zakresie czasu, cała księga w dowolnej chwili z przeszłości oraz świece ceny środkowej i spreadu liczone w samym silniku.
  • Bieżąca księga i subskrypcje wypychane przez sieć, klienci w C++ i Pythonie oraz API w C.
  • Replikacja z automatycznym przełączaniem przez etcd, siatki multi-master i sharding po symbolu.
  • TLS 1.3 i uwierzytelnianie challenge-response na połączeniach klientów, replikacji i siatki.
  • Kopie zapasowe i odtwarzanie, metryki Prometheusa z dashboardem Grafany i paczki dla Linuksa.
  • C++20 Natywny silnik L2 orderbook
  • Otwarty Kod na licencji Apache-2.0
  • Pomiary Publiczna metodyka benchmarków

Wyniki zależą od sprzętu i obciążenia. Publiczne porównanie opisuje metodykę i ograniczenia pomiarów. Nie jest gwarancją wydajności Twojej aplikacji.

Przeczytaj źródło silnika (otwiera w nowej karcie)

Ile kosztuje zapis: zmierzone wobec ClickHouse i TimescaleDB

Nazwa naszego silnika obiecuje niski koszt, więc mierzymy koszt: czas CPU serwera, który każdy system zużywa na zapis tych samych 2 000 000 poziomów księgi zleceń.

Baza danychPoziomy księgi zapisane na sekundę CPU serwera
Orderbook DB Engineod 4,88 do 5,00 mln
ClickHouse 26.9od 1,64 do 2,25 mln
TimescaleDB 2.300,63 mln

2,1 razy tyle co ClickHouse i 7,7 razy tyle co TimescaleDB, nasz najwolniejszy przebieg wobec najszybszego każdego z nich: mniej sekund CPU na te same dane to mniej serwerów i mniej energii.

Amazon EC2 m8a.xlarge (4 vCPU, AMD EPYC 9R45), 7 października 2026, pięć przebiegów, ClickHouse i TimescaleDB na PostgreSQL 16 zainstalowane natywnie. ClickHouse kończy zapis pierwszy, bo używa od 2,4 do 3,0 rdzenia, gdy nasz silnik 0,1; tu porównujemy koszt zapisu.

Ile kosztuje przechowywanie: bajty na dysku wobec ClickHouse i TimescaleDB

Dwa nagrania ksiąg zleceń z Binance, dziesięć par z tych samych dziesięciu minut, wgrane do każdego systemu i zmierzone na dysku po jego własnej kompresji.

Baza danychStrumień zmian, bajty na wierszMigawki top 20, bajty na wiersz
Orderbook DB Engine3,780,53
ClickHouse 26.9 po instalacji7,041,17
ClickHouse 26.9, najlepszy z pięciu zestawów kodeków4,310,87
TimescaleDB 2.30 po kompresji17,2912,45

To, co w ClickHouse po instalacji zajmuje terabajt, u nas zajmuje od 0,46 do 0,54 terabajta, a od 0,61 do 0,88 tego, czego ClickHouse potrzebuje z najlepszym zestawem kodeków znalezionym dla każdego nagrania. Replika dołączająca do klastra i kopia zapasowa kopiują segmenty tak, jak leżą na dysku, więc przenoszą te same bajty.

Amazon EC2 m8a.xlarge, 7 października 2026: każde nagranie wgrane, zrzucone na dysk i zostawione na 90 sekund przed pomiarem. Najlepszy zestaw kodeków to najmniejszy z pięciu, które sprawdziliśmy dla każdego nagrania.

Kiedy potrzebujesz własnego silnika

Sześć sytuacji, w których tuning przestaje pomagać. Jeśli rozmieszczenie ze Smart Data Engine skończyło się na „nic gotowego nie pasuje", to była jedna z nich.

Latencja Cię zabija

Zapytania są za wolne. Dostroiłeś indeksy, dodałeś cache, dołożyłeś sprzętu, a nadal walisz w ścianę, przez którą baza general-purpose nie przejdzie.

Koszty wymknęły się spod kontroli

Rachunek za infrastrukturę rośnie z miesiąca na miesiąc. Płacisz za funkcje, których nie używasz, i za narzut, który nie robi nic dla Twojego workloadu.

Skala wszystko zepsuła

To, co działało przy milionie rekordów, nie działa przy miliardzie. Twoja baza nie była projektowana na skalę, do której doszedłeś.

Nic nie pasuje

Próbowałeś PostgreSQL, MongoDB, Redisa, ClickHouse. Każdy rozwiązuje część problemu, żaden nie obsługuje Twojego modelu danych tak, jak trzeba.

Nietypowy sprzęt

Pracujesz na wyspecjalizowanej infrastrukturze: własne SSD, FPGA albo konkretna architektura CPU, której gotowa baza nie wykorzysta w pełni.

Przewaga konkurencyjna

Infrastruktura danych jest u Ciebie elementem przewagi, nie kosztem. Szybsze zapytania na mniejszym sprzęcie to coś, czego konkurencja nie skopiuje jednym zakupem.

Jak to budujemy

Cztery etapy, a pod koniec drugiego dostajesz liczbę, przy której nas rozliczasz.

Rozpoznanie

Badamy Twoje dane razem z Tobą: strukturę, wolumeny, wzorce dostępu, cele latencji i sprzęt, na którym to ma stać. Jeśli własny silnik jest złą odpowiedzią, słyszysz to na tym etapie.

Projekt i benchmark

Struktury danych, strategia indeksów i protokół wire, wszystko wybrane pod Twoje wzorce dostępu. Etap kończy się zapisanym benchmarkiem: co znaczy lepiej, w liczbach, na Twoich danych.

Budowa

Implementowane i mierzone przy tym benchmarku na bieżąco, a nie na końcu. Nic nie trafia na Twoją produkcję, dopóki liczby nie są spełnione.

Przekazanie albo utrzymanie

Silnik, benchmarki, testy i dokumentacja. Twój zespół przejmuje to dalej albo my utrzymujemy to jako usługę zarządzaną, a Ty dalej sprawdzasz nas przy benchmarku.

Zacznij od sufitu, w który trafiłeś

Powiedz, co próbowałeś, ile to kosztowało i gdzie się zatrzymało. Jeśli własny silnik nie jest odpowiedzią, to będzie krótsza rozmowa i tańsza dla Ciebie.

Rozpocznij projekt