Webmaster ve Yazılım Geliştiriciler
Server Klasörleme Mantığı (İleri Programlama)
Server Klasörleme Mantığı (İleri Programlama)
-
SharpShooter bunu yazdı
bildiğin yanlışlardan biri,
klasör içinde dosyaların çok olursa sıkıntı çıkar.
klasör içinde istediğin kadar klasör açarsın
boşuna debelenme diye diyorum :) gerçi hoş hem bilgisiz hem çok atarlısın
neyse senle uğraşmaya gerek kalmamış.
çözdüm arkadaşlar 10 derinlik olacak şekilde her folder da maksimum 10 folder. buda 10 üzeri 10 ihtimalle aynı id si olanların aynı klasörde olacağı anlamına geliyor.
rakamlara göre klasör oluşturuyorum çünkü örnek sonuçlar aşağıda
247439 > /1/6/8/8/1/7/9/3/1/6/247439/
247441 > /3/3/9/3/4/8/5/6/8/3/247441/
255093 > /1/8/2/5/1/3/7/3/3/8/255093/
255095 > /6/6/2/3/3/7/9/2/4/6/255095/
264005 > /1/8/2/4/1/0/9/7/5/9/264005/
264007 > /6/6/1/3/1/0/3/4/5/6/264007/
264009 > /1/4/5/2/5/8/7/0/9/1/264009/
264011 > /5/0/1/4/8/9/0/6/8/5/264011/
264031 > /5/0/1/4/8/9/0/6/6/5/264031/
264033 > /1/6/6/4/2/8/8/4/8/0/264033/
264059 > /1/4/5/2/5/8/7/1/2/1/264059/
264065 > /1/8/2/4/1/0/9/7/5/7/264065/
264077 > /6/6/1/3/1/0/3/4/4/6/264077/
268953 > /1/3/6/0/2/1/5/9/1/3/268953/
268955 > /5/5/3/6/4/6/8/5/9/5/268955/
268957 > /6/0/9/1/5/2/5/5/5/6/268957/
268959 > /2/1/2/8/1/8/2/3/2/9/268959/
268961 > /1/7/7/1/9/5/1/9/6/8/268961/
268963 > /1/3/6/0/2/1/5/9/1/4/268963/
268965 > /5/5/3/6/4/6/8/6/0/5/268965/
268969 > /2/1/2/8/1/8/2/3/2/8/268969/son subfolder adını da productid yapıyorum ki aynı hashi alan başka bir id olursa farklı klasörlere resimleri atılabilisin diye.
kodum şu şekilde:
private string ReturnPath(string id, string path = "") { if (path == "") path = @"/"; string hashcode = id.GetHashCode().ToString().Replace("-", ""); hashcode = hashcode + hashcode + hashcode + hashcode + hashcode + hashcode + hashcode; try {hashcode = hashcode.Substring(0, 10);} catch{} foreach (char c in hashcode) path += c.ToString() + "/"; path += id.ToString() + "/"; return path; }
açıklaması şu şekilde: aynı id nin hashcode sini ne zaman alırsam alayım aynı sayı dönüyor. random bir değer değil. bazen - sayı döndüğü için - leri replace ediyorum. 10 karakterden kısa olması ihtimaline karşı. neden böyle yapıyorum çünkü hepsinin roota olan uzaklığının eşit olması gerekiyor. şu anda hepsi 10.deeptte
daha sonra foreachla path'i oluşturuyorum.
eğer sizede lazım olursa substring(0,10) yazan yeri 5 yaparak 5 derinlikte de halledebilirsiniz.
pm den ulaşanlar. maille uğraşanlar. buraya fikir beyan edenler. hepiniz sağolun :)
-
neden böyle bir klasörleme ile uğraştığını anlayamadım hocam.
-
SharpShooter şu adamın banını sakın açmayın.
-
TeRRoR bunu yazdı
neden böyle bir klasörleme ile uğraştığını anlayamadım hocam.
çünkü hocam 1. mesajda da belirttiğim gibi
windowsta eğer alt klasör sayısı abarırsa hdd nin io değerleri aşırı düşüyor ve bütün sistem iis dahik aşırı yavaşlıyor.
ntfs nin dosya kabiliyeti yüksek olabilir bir bir klasörde maksimum 4,294,967,295 file olabilir kısmıda doğrudur ama bunların hepsi teorikte böyle. malesef pratikte böyle değil.
hiç içinde 600.000 dosya olan bir klasöre girdinmi bilmiyorum. yada 1.000.000 subfolder olan bir klasöre girdinmi bilmiyorum. ama ben ikisiylede karşılaştım explorer dondu defalarca. serveri restart ettik. üstelik burası türkiyenin en büyük haber ajanslarından birisiydi :)
velhasılı kelam böyle bir mantık gerekliydi ve şu anda halloldu :)
-
Senin sorununu tam olarak çözebilir mi bilemiyorum ama..
HADOOP a bir baksan ?
https://burakisikli.wordpress.com/tag/hadoop/
-
SerYolcu bunu yazdı
Senin sorununu tam olarak çözebilir mi bilemiyorum ama..
HADOOP a bir baksan ?
https://burakisikli.wordpress.com/tag/hadoop/
onlarda arama indexleme filan var. bende hiç text yok aynı id ile istediğim yere ulaşabiliyorum.
zaten hallettim hocam şu anda download kodunu yazıyorum :)
sağol yinede.
-
manglerman bunu yazdıTeRRoR bunu yazdı
neden böyle bir klasörleme ile uğraştığını anlayamadım hocam.
çünkü hocam 1. mesajda da belirttiğim gibi
windowsta eğer alt klasör sayısı abarırsa hdd nin io değerleri aşırı düşüyor ve bütün sistem iis dahik aşırı yavaşlıyor.
ntfs nin dosya kabiliyeti yüksek olabilir bir bir klasörde maksimum 4,294,967,295 file olabilir kısmıda doğrudur ama bunların hepsi teorikte böyle. malesef pratikte böyle değil.
hiç içinde 600.000 dosya olan bir klasöre girdinmi bilmiyorum. yada 1.000.000 subfolder olan bir klasöre girdinmi bilmiyorum. ama ben ikisiylede karşılaştım explorer dondu defalarca. serveri restart ettik. üstelik burası türkiyenin en büyük haber ajanslarından birisiydi :)
velhasılı kelam böyle bir mantık gerekliydi ve şu anda halloldu :)
Hocam bu durumda senin dosyalarını windows'da barındırman sorun zaten. Bence folder'lara takla attıracağına düzgün ve kalıcı bir çözüm baksan daha faydalı olur.
-
Elinin altında windows varsa win 2008 DFS'ine göz atabilirsin.
-
Db ne kullanıyonuz hocam?
-
TeRRoR bunu yazdı
Elinin altında windows varsa win 2008 DFS'ine göz atabilirsin.
hocam DFS ye baktım genelde farklı pc lerde paylaşılmış olan klasörleri tek çatı altında toplamak için kullanılıyormuş.
bizde şimdilik tek server var. 2X1 TB raid 1 ve 2X120 GB sas file serveri 1tb lik raidde tutucam. sas ların biri sistem. diğeri database server, mail server ve web server.
ilerde file serveri ayırmak istersek o zaman kullanılabilir.
database: sqlserver 2008 r2 dc edition.