Hanzo Datastore ile tanışın: kuantum sonrasına hazır bir OLAP motoru
ClickHouse türevli sütunlu bir ambar. Hanzo S3 üzerinde depolama ile hesaplama ayrıldı, profil güdümlü ve bağlama zamanı eniyilemesiyle bellek yaklaşık yarıya indi, gRPC söküldü ve lidersiz kuantum sonrası eşgüdüme giden bir yol açıldı.

Bu sayfada
Bugün Hanzo Datastore çıkıyor — Hanzo veri platformunun OLAP yarısı. ClickHouse 26.6 sürümünün bir çatalı; markasından arındırıldı ve analitiği gerçekten nasıl çalıştırdığımızın etrafında yeniden kuruldu: hesaplama, Hanzo S3 üzerinde depolamadan ayrıldı, ikili dosya daha yalın ve optimize, eski RPC yüzeyi kalktı. İmaj ghcr.io/hanzoai/datastore:26.6.1.1 adresinde yayında.
Yeni bir veritabanı yazmadık. ClickHouse dünyanın en iyi sütunlu motoru ve ona yaslanıyoruz. Değiştirdiğimiz yerler bir filoyu çalıştırmak için gerekenler: depolama altyapısı, derleme, taşıma ve eşgüdüm yol haritası.
Depolama ve hesaplama, ayrı
Bir MergeTree tablosunun parçaları değişmez nesnelerdir. Datastore bunları, bir sunucuya kaynatılmış yerel disk yerine, Hanzo S3 üzerinde nesne olarak tutar — SeaweedFS türevli depolama katmanımız. Durum tutmayan hesaplama replikaları, verinin tek fiziksel kopyasını sıfır kopyalı çoğaltmayla paylaşır.
Bu kanıtlandı, bir dilek değil. Ölçek genişletme testimizde, depolama ilkesi S3'ü hedefleyen 5 milyon satırlık bir tablo system.parts içinde seaweed diskini bildiriyor ve iki hesaplama düğümü bu tek kopyanın üzerinde ölçekleniyor. Okuma düğümü eklemek veriyi kopyalamaz; düğüm ona bağlanır. Analitik yük fırladığında, terabaytları yerinden oynatmadan saniyeler içinde sorgu kapasitesi eklemek için istediğiniz özellik budur.
-- parts live on S3, not on a node's local disk
SELECT name, disk_name FROM system.parts WHERE table = 'events' LIMIT 1;
-- ┌─name──────┬─disk_name─┐
-- │ all_1_1_0 │ seaweed │
-- └───────────┴───────────┘
Belleğin yarısı, daha küçük bir ikili
Sürüm derlemesi profil güdümlü eniyileme, ince bağlama zamanı eniyilemesi ve bağlama sonrası bir BOLT geçişi çalıştırır. Sonuç, stok derlemenin kapladığı belleğin yaklaşık yarısı ve belirgin biçimde daha küçük bir ikili dosyadır. BOLT'u aarch64 üzerinde çalıştırmak, varsayılan olarak açık olan ve bağlama sonrası yeniden yazmayı sessizce engelleyen XRay enstrümantasyonunu kapatmak demekti — bu düzeltme ağaçta. Pratik etki: aynı sorgu planı, daha az gigabayt ve daha çabuk başlayan bir ikili.
gRPC gitti
Bir veri deposunun tam olarak bir sorgu yolu olmalı, üç değil. gRPC sunucusunu bütünüyle kaldırdık — contrib/grpc yok, protobuf servis tanımları yok, ENABLE_GRPC derleme yolu yok — ve aynı geçişte ölü <grpc> bloğunu varsayılan yapılandırmadan sildik, ki çıkan ürün derlemeyle örtüşsün. Datastore yerel TCP (9000), HTTP (8123) ve sunucular arası çoğaltma (9009) konuşur. Yüzeyin tamamı budur.
Hedeflenen sonraki taşıma ZAP, Cap'n Proto türevli RPC'miz. Sunucu taslağı indi; henüz canlı sorgu yolu değil. Bu çizginin tam olarak nerede olduğunu söylemek, iş bitmiş gibi göstermekten iyidir.
Eşgüdüm nereye gidiyor
Replicated* tabloları bugün gömülü Raft ile eşgüdüm kuruyor: sunucu sürecinin içinde gelen, ZooKeeper ile uyumlu Keeper. Ayrı bir daemon yok. Bu çalışıyor ve üretimde şu an çalıştırdığınız şey bu.
Yön, bu Raft arka ucunu Quasar ile değiştirmek: Lux içindeki lidersiz, kuantum sonrası mutabakat, C++ sunucusuna yerel olarak bağlanıyor. Dikiş gerçek: bir C++ programı yerel mutabakat motorunu C ABI üzerinden şimdiden sürüyor — zincir aç, çoğaltma günlüğüne bir kayıt ekle, eminlik oylarını yürüt, kesinleşmeyi gözle — Raft olmadan ve sıfır bilgi düzeneği olmadan. Değiş tokuşun bir bağlama sorunu olduğunun, yeniden yazma olmadığının kanıtı bu. Henüz üretim eşgüdüm katmanı değil ve aksini iddia etmeyeceğiz.
Öteki yarı
Datastore OLAP'tır. Platformun OLTP yarısı, SQLite/Base üzerine kurulu, merkezi olmayan bir SQL motoru: tasarlandı, inşa ediliyor, henüz çıkmadı. Tek dosyalık, local-first veri hikâyesini bugün istiyorsanız bu soy zaten Hanzo Brain içinde duruyor. İki yarının da bindiği depolama altyapısı, Hanzo Storage ile çıkardığımız katman.
Çalıştırın
docker run -d --name datastore \
-p 8123:8123 -p 9000:9000 \
ghcr.io/hanzoai/datastore:26.6.1.1
- Kaynak: github.com/hanzoai/datastore
- Ürün: hanzo.ai/datastore
- Belgeler: docs.hanzo.ai
arm64 imajı şimdi yayında; amd64 derlemesi CI ile ardından geliyor. Bu, kendimizin çalıştırdığı analitik ve içgörü arka ucu — olaylarınızı ona yöneltin ve sütun hızında geri sorgulayın.
Devamını oku

Raft'ı bitirmek: ZooKeeper konsensüsünden yerel Lux Quasar'a
Hanzo Datastore, ClickHouse Keeper altındaki NuRaft motorunu Lux Quasar ile değiştirir — lidersiz, kuantum sonrası konsensüs, doğrudan C++ sunucusuna bağlanır — ve çoğaltmanın konuştuğu ZooKeeper API'sini yerinde bırakır.

Hanzo Insights: Product Analytics That Respects Privacy
Introducing Hanzo Insights — product analytics with event tracking, funnels, cohorts, and session replay, without selling user data.

Hanzo Storage: S3-Compatible Object Storage
Launching Hanzo Storage — S3-compatible object storage with integrated CDN and no egress fees.