Yiğit Güneli | yiit.org

And Now For Something Completely Different

battle of survival‘da database olarak xml kullanıyoruz. buna göre bir klasörün içinde her kullanıcının bi xml dosyası var, bilgileri bu xml’in içinde saklanıyor. bir kullanıcının verilerini okurken sql kullanmadığımız için performansı çok fazla arttırıyor. bu yapının tek kötü tarafı highscore listesini güncellemek istediğimiz zaman klasördeki bütün xml’leri açıp killpointlerini okuyan ve bunları arrayde saklayan bir kod ile bunu yapmak zorunda olmamız. uygulamayı eklemese de davet edilen her kullanıcı için bir xml oluşturmak zorundayız, bu yüzden bu klasörün içinde 30000 civarı kullanıcı bilgisi tutuluyor, ve bu rakam parabolik bi şekilde giderek artıyor.

hızı arttırmak için sponsorumuzun sağladığı türkiyedeki sunucudan ayrılıp amerikadaki bir sunucuya geçişimizle (dandik dreamhost bile çok fark ettirdi.) highscore listesi konusunda sıkıntı yaşamaya başladık, çünkü listeyi güncelleyen kod, sunucuda izin verilenden çok daha fazla hafıza yiyor.

dün gece geçici bir çözüm olarak oyuna çağırılmış ama daha önce hiç girmemiş kullanıcıları silmek için basit bir yol ararken bu kullanıcıların xml dosyasında değeri atanmamış değişkenlerin <node /> şeklinde, değeri atanmışların ise <node>15</node> olarak saklandığını hatırladım. bunun üzerine klasördeki 165 baytlık bütün dosyaları silmek için

find . -type f -print0 -size 165 | xargs rm

komutunu kullandım. nasıl, neden olduğunu konusunda hiç bi fikrim yok fakat bu komut klasördeki bütün dosyaları silmeye başlamış. komutu verdikten sonra ekrandan uzaklaştığım için hiç bi şey fark etmedim. döndüğümde ekranda cant delete . and .. gibi bir mesaj görünce durumu anladım, hemen iptal ettim ama kullanıcıların çoğu silinmişti.

30000 dosyanın yedeğinden fazlasıyla üşendiğim için almamıştım, yapacak bi şeyim yok diye yattım uyudum. sabah kalktığımda umutsuz bi şekilde müşteri hizmetlerine mail atacaktım ki dreamhost’un her iki saatte, her günde ve her haftada bir yedek aldığını ve bunları ayrı ayrı klasörlerde sakladığını öğrendim.

sonuç paragraflarını yazamıyorum.

Comments | Trackback | December 28th, 2007

< sırf gizemli gözükmek için şifre koyuyorum. || no, there’s no reason to hide >

4 yorum “30000 kullanıcı nasıl uçurulur?”

  1. Büyük Kötü Kurt yazmış. December 28th, 2007 20:37

    Ben yazayım sonucu;

    Verilmiş sadakan varmış :D

  2. refik yazmış. January 4th, 2008 20:56

    30.000 kullanıcımızın hepsi feykmiş abiyyyyyy

    :))

  3. jonathanson kennediovski yazmış. January 7th, 2008 15:26

    bence kendini önemli göstermek için böyle yapıyor.

  4. yiit yazmış. January 8th, 2008 05:17

    3. tekil şahıs olarak bahsedilen kişi ben isem, evet, kendimi önemli göstermek için böyle yapıyorum.

Yorum Yazın

  •  
  •  
  •  

Bu konuya gelen yeni yorumları rss ile takip edebilirsiniz: comments feed.