ext3の1ディレクトリに大量のファイルを配置すると、 ファイルアクセスが遅くなります。 一般的な回避策は、何らかのハッシュ値でディレクトリを階層的にする方法ですが、実際にやるとなると数行でできるとは言えちょっと面倒です。 そこで、これを手軽に実現できるようにライブラリに追加しました。
Pathnameと同じAPIですので、 最初はPathnameで使っておいて、 数が増えたらHashnameに変えるという使い方ができるので便利だと思います。 (マイグレーションも両者で一緒にloopするだけでOK)
1 import com.s21g.rubyist.{Pathname,Hashname} 2 3 val path = Pathname("data/users/910.xml") 4 val hash = Hashname("data/users /910.xml") 5 6 path.path // => "data/users /910.xml" 7 hash.path // => "data/users /e/2/0/e20 5ee2a5de47 1a70c1fd1b 46033a75f/ 910.xml" 8 9 hash.write("Love Scala!") 10 hash.read // => "Love Scala!"
また、com.s21g.r
参考
posted by
maiha
on Wed 19 May 2010
at 03:44