• 07-03-2013, 23:14:28
    #10
    NoSQL veritabanları olabilirmi? Kullanıp tecrübe eden varmı acaba?
  • 08-03-2013, 15:16:09
    #11
    oscoder adlı üyeden alıntı: mesajı görüntüle
    Aynı veritabanında tutulma konusunda ki yorumunuza kesinlikle katılıyorum. Veri tabanında sadece şunu tutacağım : Her satıra recdate, reciip, updatedate, updateip gibi alanlar ekleyip ilk kaydedenin bilgileri ile son güncelleme yapanın bilgilerini tutacağım, hani yönetim kısmında hızlı bir şekilde bir veri görünsün diye.

    Ama gelgelelim detaylı bir şekilde tutacağım kısımda dosya mevzusunu çok fazla tecrübe etmediğim için çekiniyorum. erginkeles' in de dediği gibi problemlerin olma ihtimali yüksek. Örneğin Dosya boyutu 20 MB oldu, bu dosya her açıldığında ram' den 20 mb yiyecek, hadi ram' e razı geldik, aynı anda iki kişi kayıt eklemek isterse dosya açıksa açamayacak, hadi açtı kesin kayıt kaybolacak gibi bir hissiyat var bende .

    İlginize teşekkür ediyorum arkadaşlar. Öneri ve fikirlerinizi bekliyorum...
    Dediğim gibi ram ve dosya boyutu konusunda verileri belli aralıklarla başka yere taşıma veya mail ile gönderme işlemini yapabilirsiniz. Hatta bunu saat aralığıyla değil de dosya boyutuna bakarak bile yaptırabilirsiniz.

    Bir php sayfası açıp logların tutulduğu dosyanın boyutuna bakarsınız atıyorum 5 MB veya üstüyse diğer sunucuya aktaracak kodu çalıştırırsınız değilse boş geçer (if else).
    Bu php sayfasını ise cronjob ile belirli aralıklarla çalıştırırsınız.
    Eğer dosya 5 mb veya daha büyük olduysa cron job ile çalışan sayfanız dosyanın içeriğini diğer sunucuya atacak ve dosyanızdaki bilgileri silecek ve dosyanız belirli saat aralıklarıyla 5 mb ı geçmişse başka bir sunucuya parça parça aktarılacak böylece sizin sunucunuzda dosya birikip aşırı derecede sunucunuzu yormayacak bilmem anlatabildim mi kolay gelsin.
  • 08-03-2013, 17:30:24
    #12
    Demek istediğinizi ilk mesajınızda da anlamıştım, fakat yoğun kullanılacak bir sistemde dosya işlemleri çok kullanışlı olmayacağı kanısına kesinlikle varmış durumdayım. Bir işlem için dosya açıldığında diğer işlem dosyanın kapanmasını beklemek zorunda. Farzedinki aynı anda 2 kullanıcı aynı anda açtı dosyayı, önce kayıt yapıp dosyayı kapatanın verisi ikinci kişi kaydettiğinde kaybolacak. Bu gibi durumlardan xml,json yada text dosyalardan vaz geçmişdurumdayım. Şuan NoSQL veritabanlarına yönelmiş durumdayım. Eğerki aradığımı bunda da bulamazsam bir webservis yazarak direk webe kapalı bir sunucuda web servis sayesinde tutacağım logları. Ama hala araştırmalarım devam etmekte.
    İlginize teşekkür ediyorum.

    Cümleten iyi çalışmalar.
  • 08-03-2013, 20:22:53
    #13
    oscoder adlı üyeden alıntı: mesajı görüntüle
    Demek istediğinizi ilk mesajınızda da anlamıştım, fakat yoğun kullanılacak bir sistemde dosya işlemleri çok kullanışlı olmayacağı kanısına kesinlikle varmış durumdayım. Bir işlem için dosya açıldığında diğer işlem dosyanın kapanmasını beklemek zorunda. Farzedinki aynı anda 2 kullanıcı aynı anda açtı dosyayı, önce kayıt yapıp dosyayı kapatanın verisi ikinci kişi kaydettiğinde kaybolacak. Bu gibi durumlardan xml,json yada text dosyalardan vaz geçmişdurumdayım. Şuan NoSQL veritabanlarına yönelmiş durumdayım. Eğerki aradığımı bunda da bulamazsam bir webservis yazarak direk webe kapalı bir sunucuda web servis sayesinde tutacağım logları. Ama hala araştırmalarım devam etmekte.
    İlginize teşekkür ediyorum.

    Cümleten iyi çalışmalar.
    O halde db'yi boşaltmak için yapılabilir bu sistem,
    Sistem bu sefer yine belli saat aralıklarıyla o dosyaya girer, loglar bir dosyada değil veritabanında tutulur.
    PHP çalışır veritabanında ki sorguları sorgular, dosyaya yazar ve db dekleri siler, daha sonra kaydettiiği dosyayı karşı sunucuya gönderir.
    Bu işlem tekrarlanarak db nin boş yere dolması ve yine sistemi kasması önlenmiş olur.

    Yada hepsi bir yana, sadece bu iş için optimize edilmiş bir veritabanı sunucusu alıp, verileri uzak veritabanı bağlantısıyla ona kaydedebilirsiniz.
  • 08-03-2013, 21:35:35
    #14
    wdr.leo adlı üyeden alıntı: mesajı görüntüle
    O halde db'yi boşaltmak için yapılabilir bu sistem,
    Sistem bu sefer yine belli saat aralıklarıyla o dosyaya girer, loglar bir dosyada değil veritabanında tutulur.
    PHP çalışır veritabanında ki sorguları sorgular, dosyaya yazar ve db dekleri siler, daha sonra kaydettiiği dosyayı karşı sunucuya gönderir.
    Bu işlem tekrarlanarak db nin boş yere dolması ve yine sistemi kasması önlenmiş olur.

    Yada hepsi bir yana, sadece bu iş için optimize edilmiş bir veritabanı sunucusu alıp, verileri uzak veritabanı bağlantısıyla ona kaydedebilirsiniz.

    İlk olarak düşünce ve ilginize teşekkür ediyorum. Şuan daha önceleri fantazi amaçlı baktığım, şimdi ise tamami ile bu sistem için uygun gördüğüm mongodb NoSQL veritabanını kullanacağım. Sanırım bu veritabanı beni ek sunucu masrafından, hem sql injectiondan (çünkü no sql) hemde kasılma probleminden kurtaracak gibi görünüyor. Bu konu hakkında yarın denemeler yapacağım ve ilerleyen zamanda da sonuca varıp geliştirdiğim özelliği burada paylaşacağım.

    Uzak sunucudaki veritabanı yorumunuza ek olarak ben yine sunucunun veritabanına direk ulaşmanın lokaldeki durum ile yakın sorunlara neden olabileceği kanısındayım. Bunun için aracı bir katman düşünmekteyim. Eğer ki mongodb de çözümü bulamazsam be ek katmanı tasarlayacağım. Atık düşüncelerim bu şekilde yoğunlaştı. Birde sürekli bir db yi boşaltıp verileri parçalamak da güzel bir olay değil kanısındayım. Çünki kullanıcılar geçmişe dönük bir şey bakmak istese sonuca ulaşmak için ya yedek yükleyecek kadar programlama bilecekler yada bana ulaşacaklarki buda benim işime gelmez. Yani verinin geri dönüşümünüde düşünmek durumundayız.

    Teşekkürler, iyi çalışmalar.