Cantella::Store::UUID - 0.002000

I've released a new version of Cantella::Store::UUID. (git) It features one incompatible change, but I figured it was OK since I'm pretty sure nobody is using it and it is reasonably new. I just couldn't live with having one lone method named so awkwardly. The POD was all updated and improved and two new methods were added, which allow the user to search for files in the storage directory and perform some action on these files. I don't really intend for these methods to be used a lot, since they will take minutes to run on most systems and be incredibly IO-intensive (depth-first search of the entire storage tree, which could be hundreds of thousands of nodes). I use them mainly for maintenance operations and you should probably too.

These methods existed in the internal version this library was based on, but due to a bug in Path::Class::Dir, I was unable to add these features until Path::Class 0.18 was released with the fix. As of now, this module can be considered stable. I promise to add no code without extensive tests and change no APIs unless it's really, really necessary. Even then, there will be a long deprecation cycle and a back-compat layer.

If you haven't already seen it, I recommend you take a look at Cantella::Store::UUID. I use it to store many, many files in the file system without concentrating too many files in any one directory. Accessing files is quick because their location is deterministic (based on their UUID) and you can split the hierarchy into different physical devices to improve performance or add capacity. It's not very high-tech, but it works surprisingly well if you have huge numbers of files to store. Another nice thing is that you can mirror it with r-sync or create incremental back-ups using rdiff-backup.

Leave a comment

About Guillermo Roditi

user-pic I blog about Perl.