I discovered a wild thought and that i desired to share it along with you and request about its feasibility, especially performance smart:
The concept would be to manage object database procedures by:
- developing a folder for every class named after class title
- developing a sub-folder for every sub-class named after sub-class title
- developing a apply for each object named after its ID
- developing a sub-folder for every index named after names of indexed fields
- developing a shortcut apply for each index entry mentioning towards the original object file
- reading through/writing binary objects by extremely fast serializer/deserializer
- placing/upgrading/removing objects and index records by renaming object and shortcut files
- caching/paging by utilizing memory-planned files
- querying would utilize binary explore sorted file names
Any ideas, comments or experts are welcomed :)
UPDATE: Thanks all for the replies. I believed this is often even enhanced by utilizing some compression/file encryption library for example 7z, rather than coping with the OS file system. Otherwise, all your mentioned concerns to date are valid. I am wondering what type of underlying file system does, for instance, oracle uses :)
- Of all filesystems, a 1 byte file requires a full block of 4kb. Could be a huge problem depending from the type of object you wanna store inside your database.
- Most filesystems are not shipped to scale with sites that contains countless files.
- Complex queries will need the outletOrreading through/deserializing/closing of million of files, and therefore can be really slow.
Its a fascinating concept, a couple of ideas on immediate issues you'll have to resolve.
- Home windows file performance requires a hit following a couple of hundred 1000's files, you have to alter certain aspects (switch off 8.3 and last update timestamps) to have it not to cause delays when reading through the file system.
- Securing - the securing mechanism is going to be a fascinating challenge, you have to have the ability to lock things for update, but permit reads concurrently.
- Acidity - although carrying out procedures from this 'database' how does one enforce the Acidity concepts - all of them is really a non-trivial problem.
Like a practice to explore databases sure, however for a real life projekt which should do anyting, no.
There's a lot underneath the hood of databases that unless of course you really know precisely your work, and for the reason that situation you wouldn't be asking here ), you'll most probable never match existing solutions.
Go fo a current object database rather and focus on the more knowledge about you application/site/...