Meta Threads'ün arka ucu Python 3.10 ile oluşturuldu
(twitter.com/llanga)"#MetaThreads'ün arka ucunun #Python 3.10 ile oluşturulduğunu biliyor muydunuz?
Instagram'ın #Cinder fork'u üzerinde çalışıyor; bu fork, JIT derleyicisi, gecikmeli yüklenen modüller, önceden derlenmiş statik modüller gibi standart Python 3.10'dan farklı birçok ilginç özellik içeriyor."
1 yorum
Hacker News yorumları
“Python üretim backend’i için yeterince hızlı değil” diyenler açısından oldukça ironik. Sonuçta aynı şirket, PHP + MySQL ile yapılmış dünyanın en büyük sosyal ağını yıllardır işletiyor
JIT yapan sanal makinenin tamamı da C++ ve MySQL dağıtımı da ölçeklenebilirlik için büyük ölçüde değiştirilmiş dahili bir fork. Depolama/hesaplama ayrımı, sharding, InnoDB yerine RocksDB tabanlı bir storage engine, senkron replikasyon için Raft gibi şeyler var
Backend altyapısını ölçeklenebilir hale getirmek için gerçekten çok etkileyici mühendislik yapıldı
Bakmaya değer kaynaklar:
[1] https://engineering.fb.com/2016/08/31/core-data/myrocks-a-sp...
[2] https://research.facebook.com/file/529018501538081/hhvm-jit-...
[3] https://research.facebook.com/file/700800348487709/HHVM_ICPE...
Fonksiyonel yardımcılar, binlerce çekirdekte asenkron yürütme, SSH kullanarak veri merkezleri arasında spanning tree kurmak gibi şeyleri düşünebilirsiniz. Yan not olarak, kullandığım iyi şeylerin önemli bir kısmını Evan Priestley yapmıştı; kendisi Phabricator’ı ve başka güçlü sistemleri de geliştirdi
“Instagram’ın Cinder fork’u üzerinde çalışıyor; buna JIT, lazy-loaded modüller, önceden derlenmiş statik modüller ve saf Python 3.10’a kıyasla çeşitli ilginç değişiklikler dahil”
Bu, tweette yazan şey
Benim açımdan insanlar hangi dili kullanıyor pek umurumda değil. Paranız varsa daha fazla sunucu eklersiniz; bunu herkes biliyor. Tabii CFO ile CTO ekonomik durgunluğu gerekçe gösterip sıradaki büyük hedefi “maliyet düşürme” ilan edene kadar
2023’te hâlâ ana akım programlama dillerinin “üretime hazır olup olmadığını” tartışıyor olmamız bana şaşırtıcı geliyor. Biraz “havalı çocuklar” yarışı gibi
Gerçekten yüksek performans gereken kısımlar, çeşitli C++ tabanlı toplama ve öneri servislerinde. Ama web sunucusu doğru şekilde Django
Neden Django kullansınlar? Küçük projelerde kullandım ama çok hızlı değil ve bu kadar büyük bir uygulamaya uygun olmayacağını düşünmüştüm. Artılarını ve eksilerini bilmek isterim
Neden C++ ya da Rust ile yapmadılar? Ağır kısımları derlenen bir dille yazmış olsalar bile Python yanıt süresini sınırlamaz mı? Acemi birinin naif soruları olabilir
“Instagram’ın Cinder fork’unda çalışıyor; buna JIT, lazy-loaded modüller, önceden derlenmiş statik modüller ve saf Python 3.10’a göre çeşitli ilginç değişiklikler dahil”
Yani tamamen düz Python 3.10 değil
Facebook’un bu fork’u sürdürmeye devam etmek isteyip istemediğini bilmiyorum ama CPython tarafı, mantıklıysa bu tür özellikleri birleştirmeye açık
Threads backend’iyle ilgili yazının Twitter’da paylaşılmış olması ironik
Anladınız değil mi? Threads, threading…? Tamam, çıkıyorum
Threads gönderisi olsaydı bile zaten HN’ye gönderilemezdi
Henüz web’e açık değil. Bir noktada açılacağı söyleniyor
Backend’in belirli ölçüde çakıştığı açık. https://www.threads.net/t/C ilk Instagram gönderisi ama Threads’te de görünüyor ve Instagram’dakiyle tamamen aynı beğeni sayısına sahip
Ama https://www.threads.net/@kevin adresinde hiç thread yokmuş gibi görünüyor
Python sadece web sunucusu. Gerçekten performansa duyarlı bileşenler olan edge proxy, load balancer, backend servisleri, veritabanı, cache ve depolama servislerinin çoğu C++
Cinder ve web sunucusu üzerinde çalıştım. Teknik sorular varsa yanıtlayabilirim :)
Ama burada gecikme büyük bir sorundu ve her zaman olduğu gibi MVP’ye ulaşmak için optimizasyonun önceliği düşüktü
O yüzden Cinder’ın gerçek zamanlı veri akışı optimizasyonunda kullanılıp kullanılamayacağını ya da bu sorunun kendisinin kullanım senaryosunu anlamadığım anlamına mı geldiğini merak ediyorum
Bu arada Django da kullanıyorduk, şimdi dönüp bakınca FastAPI’ye geçmemiz mi gerekirdi diye de düşünüyorum. O ayrı bir soru
Rollout hakkında daha fazla şey öğrenmek istiyorum. Saatte 1 milyondan çok daha fazla yeni kullanıcı ekleniyor ve bu oldukça çılgınca
Yine de duymak isteyeceğim pek çok ilginç ayrıntı vardır mutlaka
Birkaç milyon yeni kullanıcı toplamın %0,1’i bile etmiyor. Gayet öngörülebilir dalgalanma aralığında
https://github.com/twitter/the-algorithm/pull/447 asla unutulmamalı
Threads, Instagram’ın backend/API’sini yeniden kullanıyor. Instagram en başından beri Python tabanlıydı, bu yüzden Threads de Python kullanmış
Ama bu, şirket içi fork gerektirmeyen alternatifler varken böyle bir uygulamayı sıfırdan yaparken Python seçmeniz gerektiği anlamına gelmiyor. Yazının tamamını okuyunca bunu anlamak oldukça kolay ama Hacker News’in sadece “başlığa bakan” arayüzü meseleyi çarpıtıyor gibi