1 puan yazan GN⁺ 2025-09-23 | 1 yorum | WhatsApp'ta paylaş
  • Bu ay indirme sunucusundaki altyapı yükseltmesi sayesinde daha hızlı bir indirme deneyimi sunuluyor
  • “…latest” dosya istek yöntemi HTTP yönlendirmesi olarak değiştirildi
  • Tüm kullanıcıların en güncel OSM verilerine rahatça erişebilmesi hedefleniyor
  • Büyük dosyaların tekrar tekrar aşırı indirilmesi gibi anormal kullanım örnekleri genel hizmet performansının düşmesine yol açıyor
  • Verimli ve sorumlu indirme için üç somut öneri sunuluyor

İndirme sunucusu güncellemesi ve sorumlu kullanım çağrısı

Bu ay indirme sunucusunda altyapıyı güçlendirme çalışmaları yapıldı.
Böylece indirmelerin daha hızlı ve daha erken sunulabildiği bir ortam kuruldu.
Teknik değişiklik olarak, “...latest” dosyaları istendiğinde artık doğrudan dosya vermek yerine en güncel sürüm dosyasına HTTP yönlendirmesi uygulanıyor.

Sorumlu indirmenin neden gerekli olduğu

Sunucu, tüm kullanıcıların en güncel OSM (OpenStreetMap) verilerine rahatça erişebilmesi için işletiliyor.
Ancak bazı kullanıcıların aynı büyük dosyaları (ör. 20 GB) bir günde yüzlerce hatta binlerce kez tekrar tekrar indirdiği durumlar yaşanıyor.

  • Örneğin bir kullanıcı, 24 saat içinde italy-latest.osm.pbf dosyasını neredeyse 10.000 kez indirdi
  • Başkaları ise sunucudaki tüm dosyaları her gün tamamen indirmeyi tekrarlıyor

Bu tür davranışlar, sunucunun bant genişliği sınırları nedeniyle tüm kullanıcılar için yavaşlamaya yol açıyor.
IP aralıklarını engellemek kaçınılmaz hale gelirse, ilgili olmayan kullanıcılar da zarar görebilir.

Sunucu kullanıcılarına üç somut öneri

  1. Dünya genelindeki veriye ihtiyacınız varsa, sunucudan parça parça almak yerine planet.openstreetmap.org üzerinden planet dosyasını tek seferde indirmeniz önerilir
  2. Kıta veya geniş bölge verilerini (ör. Europe, North America) her gün güncellemek istiyorsanız, pyosmium-up-to-date programını kullanarak yalnızca değişiklikleri indirebilir, böylece toplam trafiği %98 azaltıp hızı da artırabilirsiniz
  3. Otomasyon betikleri kullanıyorsanız, neyin indirildiğini izlemeli ya da uygun hata işleme ekleyerek aynı dosyanın sonsuz döngüyle tekrar indirilmesi gibi hataları önlemelisiniz

Sonuç

Daha sorumlu indirme alışkanlıklarıyla, herkesin en güncel verilere rahatça erişebildiği bir ortama katkı sağlanması isteniyor

1 yorum

 
GN⁺ 2025-09-23
Hacker News görüşü
  • Benzer bir sorun gördüğümde her seferinde neden BitTorrent’in daha yaygın kullanılmadığını merak ediyorum; keşke konteyner registry’leri ya da paket depoları gibi daha fazla yerde varsayılan protokol olarak kullanılsa
    • BitTorrent’in kamuoyunda kötü bir imajı var; çoğu kişi onu sadece yasa dışı indirmelerle ilişkilendiriyor<br>Güvenlik duvarı ayarları HTTP’ye göre daha zahmetli; ağ yöneticisinden böyle ayarlar istemek tuhaf karşılanabiliyor, özellikle de BitTorrent’in kendisine karşı bir önyargı olduğu için<br>BitTorrent istemcileri HTTP istemcilerinden çok daha karmaşık ve çoğu şirket bilgisayarında ya da CI pipeline’ında kurulu değil; birçok kişi işin tek bir curl komutuyla bitmesini istiyor<br>Seed etmek gerektiğine dair çok yaygın bir yanlış kanı var ve bu da insanları ürkütüyor<br>Sonuçta imaj sorunu ve her şeyin yalnızca curl ile yapılabiliyor olması nedeniyle BitTorrent’in hak ettiği değeri görmemesi üzücü<br>Video oyunu istemcilerinin güncellemelerde BT kullanması ya da PeerTube’un webtorrent kullanması gibi örnekler var, ama yine de yeterince yaygın değil
    • Amazon, Esri, Grab, Hyundai, Meta, Microsoft, Precisely, Tripadvisor ve TomTom gibi onlarca şirket OpenStreetMap verisini Parquet formatında S3 üzerinde ücretsiz sunuyor; bu sayede TB düzeyindeki veri kümelerinde yalnızca MB düzeyinde bant genişliği kullanarak istediğiniz bilgiyi sorgulayıp analiz edebiliyorsunuz<br>Daha fazla bilgi için bakabilirsiniz<br>ArcGIS Pro kullanıcıları bu eklentiden da yararlanabilir
    • Birkaç yıl önce “dinamik içerikli torrentler” diye bir kavram gördüğümü hatırlıyorum; pratikte ise pek kullanılmadı Bunun gerçeğe dönüşmesini istemiştim, acaba güvenlik sorunları gibi öldürücü problemler mi vardı diye merak ediyorum İlgili bağlantı
    • Bence HTTP’ye kıyasla BitTorrent’in eksik kaldığı nokta, her yerde kullanılabilecek yerleşik bir “genel amaçlı istemci”sinin olmamasıydı; SSH ya da SCP kadar tanıdık değil ve kurulum, yapılandırma, tracker ayarı derken epey uğraştırıyor<br>Genelde bunun anlamlı olması için büyük dosyaların sık sık indirilmesine ihtiyaç var; güvenilirlik ve seed hacmi sorunları da düşünülünce mesele sonunda araçların geliştirme ve bakım maliyetine karşı ne kadar kazanç sağlandığına geliyor<br>Belki Git LFS gibi bir şey yardımcı olurdu ama bilgim burada bitiyor
    • Önceki çalıştığım şirkette her hafta tüm geliştiricilere büyük dosyalar dağıtmamız gerekiyordu; başta rsync ile aynı anda abanarak çekiyorduk ama BitTorrent’e geçince hızda muazzam bir artış oldu
  • Geofabrik gibi şirketler olduğu için ara sıra gerçekten harika deneyimler yaşayabiliyoruz; bunun için her zaman minnettarım API’leri bizzat işletince geliştiricilerin düşüncesizliği ya da bilgisizliği karşısında gerçekten şaşırabiliyorsunuz; o kadar tuhaf istekler geliyor ki Bunu yaşamamış olsaydım biri bana anlattığında abartı sanırdım Ama öte yandan API geliştiricileri de çoğu zaman birden çok işlemi hesaba katmıyor; genellikle sadece tek bir entity üzerinde işlem sunuyorlar ve gerçek kullanım senaryosunda toplu iş yapmak gerekirken mecburen 700 istek atmak zorunda kalıyorsunuz
    • Düşük tecrübeli insanlarda her meslekte sorumsuzluk ve bilgisizlik olabilir Tüm geliştiricilerin API’lere abanmadığından eminim Programlama herkese açıldı ve son dönemde “vibe-coding” eğilimi de var; büyük resimde bakınca biraz kaçınılmaz geliyor Yanıtta 429 (Too Many Requests) döndürmek ya da leaky-bucket algoritması uygulamak, junior ya da yeni başlayan geliştiricilerin bile sorunu hızla fark etmesini sağlar
    • S3’ün “downloader pays” özelliğinin neden daha yaygın benimsenmediğini anlamakta zorlanıyorum; AWS dışında da böyle bir model olsa verimsiz kullanım yapanlar sadece kendi maliyetleri kadar ödeme yapardı Dezavantajı, ödeme sistemi olmayan kişilerin erişiminin zorlaşması olabilir; ama bu durumda ücretsiz fakat hız sınırlı bir seçenek bırakılabilir diye düşünüyorum
    • Günde binlerce kez 20GB dosya indiren kullanıcılar olduğu söyleniyor; neden bunun basitçe rate limit ile kontrol edilmediğini merak ediyorum
    • Bence her iki tarafın da daha fazla empatiye ihtiyacı var: istemciler altyapıya saygı duymalı, API geliştiricileri de kullanıcı açısından daha geniş düşünmeli
  • “Bir kullanıcı 24 saat içinde italy-latest.osm.pbf dosyasını neredeyse on bin kez indirdi” örneğinde büyük olasılıkla sorun koddadır; IP başına sınır koymak yeterli olurdu, VPN kullanıcıları olsa bile
  • Muhtemelen insanlar CI pipeline’larında map veri dosyalarını indiriyor; bazen bunun farkında bile olmadan istemeden indirme yapıyorlar<br>Bu yüzden birçok hizmet üye olmayanların otomatik indirme yapmasını yasakladı<br>cURL ile dosya almak için önce üyelik istemek ve aşırı indirme yapan kullanıcıları engellemek ya da ücretlendirmek bence iyi olur
    • CI kavramının bilişim kaynaklarını israf eden en kötü icatlardan biri olduğunu düşünüyorum; ama harita verilerinde bunun neden kod kütüphanelerinde olduğu gibi kötüye kullanılan toplu indirmelere dönüştüğünü tam bilmiyorum
    • Acaba web uygulaması GPKG dosyasını “sorgulayarak” mı kullanıyor diye şüpheleniyorum; Parquet formatı istenen kısımları verimli biçimde sorgulamaya izin veriyor ama aynısı GPKG’de de mümkün mü emin değilim
    • CI sunucusundan gelen istekleri güvenilir biçimde ayırt etmek mümkün mü diye merak ediyorum
    • Basit bir kimlik doğrulama bile (ör. API anahtarı ya da e-posta tabanlı) iyi bir orta yol olabilir
  • “Aynı 20GB dosyayı birkaç gün boyunca günde yüzlerce kez indiren kullanıcılar var (24 saat içinde on bin kez indiren bile var), hatta sunucudaki tüm dosyaları her gün indirenler de var” örneği, sanki yalnızca rate-limiting ile kolayca engellenebilirmiş gibi geliyor<br>24 saat içindeki dosya indirme sayısını zaten tutuyorlarsa neden bir sınır koymadıklarını merak ediyorum<br>Bu kişilerin (a) sunucu operatörünün uyarı yazısını okuyacağını ve (b) davranışını değiştireceğini sanmıyorum
  • Birkaç yıl önce “kim her build script’inde her seferinde 100MB’den büyük bir şeyi indirir ki?” diye düşünürdüm ama Docker’ı gördükten sonra böyle vakanın çok fazla olduğunu fark ettim
    • Bazen insanlar konteynerin içine girince sihirli biçimde her şeyin bedava olduğunu sanıyor
    • Docker layer cache desteklemiyor mu; o zaman her şeyi her seferinde yeniden indirmeye gerek olmamalı, değil mi?
    • Bu yüzden ben projeye özel image’ları CI için önceden oluşturup yalnızca CI’da kullanıyorum; her seferinde apt-get ile ortam kurmak çok zaman alıyor
  • Aşırı indirme yapan kullanıcılara ayrıca e-posta gönderilip gönderilmediğini merak ediyorum; 2012’de ücretsiz Nominatim API kullanırken e-posta zorunluydu ve istek sayısını caching vb. yöntemlerle azaltmam gerektiğine dair gerçekten bir uyarı e-postası almıştım
    • Giriş sistemi yoksa e-posta adresi de alınmadığı için e-posta gönderilemez
  • Ben italy-latest dosyasını 8 saniyede bir indiren kullanıcı değilim ama içinde bulunduğum İtalyan startup GeoFabrik’i yoğun kullanıyor; ekipten biri konteyner denemeleri yaparken fazla indirme yapmış olabilir<br>Daha önce geofabrik tarafından engellenmiştik (ban) ama nedenini hâlâ bilmiyorum; umarım bu ileride tekrar olmaz<br>geofabrik.de iletişim adresine telefon ve e-posta ile ulaşmaya çalıştım ama yanıt alamadım; bu sorunu nasıl çözebileceğini ya da nasıl iletişime geçileceğini bilen varsa söylemesini isterim
  • Böyle aşırı dosya indiren kişilerin zaten bu tür blog yazılarını okumayacağını düşünüyorum
  • Bu, bittorrent kullanmak için uygun bir kullanım senaryosu gibi görünüyor
    • Veri değiştiğinde torrent istemcisinin otomatik olarak yalnızca değişen kısımları nasıl alabileceğini merak ediyorum