I was wondering around today and happened to run into this super-lightweight cms called le.cms. Intrigued I continued to read about the benefits of the application and I read this:
The content is stored in text files, one per page, which means that no matter how many pages there are, page load time remains virtually the same, unlike a CMS with content stored in a database that takes longer and longer to query as more content is added.
I was shocked, they cannot be serious right? It seems as if in their opinion databases have been a waste of researchers time. I don’t know where to begin at dismissing this, I pose these questions?
- If flat files are so much better and faster why does the majority of software use databases, and why were databases invented?
- What do databases use to store their information? You guessed it files! except a huge amount of effort has been placed in making sure that I/O is optimized, as well as caching in memory things that are commonly accessed.
On to my question about your architecture, that no matter how many files its virtually the same load time! How much do you know about file I/O? If you have say 1,000 articles that have been placed on the disk through the course of 5 or 6 years I dare say these are going to be spread out across the disk, now your site that has 1,000 articles should have multiple users at the same time on, maybe in the hundreds? What do you suppose happens? There is going to be overhead while the disk seeks to all these different positions, maybe you’ll be in luck and the memory wont be reused by another process and the file will still be there for the second request.
On to scaling, when all this I/O and even just load becomes to much for one server, what is to be done? clustering should be fun, you will need to move these files to some sort of NAS device, and manage them from there.
/rant
It’s not that I don’t see this small lightweight cms as being useful, there are plenty of people out there that this is extremely useful for, but don’t play up your software by playing down proven technology. When using statements like this as benefits to your software you may want to do some research to see how accurate you are.