![]() | |||||||||||||
Messages in this thread |
Hi all, I am starting to write some code to add a feature which I think would be very useful, and like to get comments and suggessions from LKML. Please ignore this mail if it sounds like nonsense ;-) Also, if this is already happenning somewhere, please enlighten me. Short version: This feature will add a "table" file type and SQL executioin premitives to the kernel, and also relevent userspace programs. Still reading? Ok, here are the glory details: Longer version -------------- Both the two popular open source database systems, Postgres and Mysql are going through the filesystem layer to manage databases, as opposed to some commercial counterparts that talk to the block IO layer directly. Also, most databases implement user management seperate from the UNIX user database. And the database is seperate from the rest of the filesystem. The feature I am planning to implenet will overcome these limitations by implementing a "table" filetype, and the primitive SQL operations in the kernel. Parsing SQL, optimizing etc. will happen at the user space. But here comes the interesting part. I am planning to do this without breaking VFS and traditional UNIX syscalls. To clarify, consider this table: Name Version ---- ------- David Weinehall 2.0 Alan Cox 2.2 Marcelo Tosatti 2.4 Using the userspace tools, one can create a "table" file (say maintainers), and insert the data to that file. Each file (or may be filesystem) has two characters (or strings) associated with them: field seperator and record seperator. Say, colon and newline. If I cat the file: % cat maintainers David Weinehall:2.0 Alan Cox:2.2 Marcelo Tosatti:2.4 % Now, if I want to add something to the table, either I can use the relevenet userspace tools, but the following also will work. % echo 'Linus Torvalds:2.6' > maintainers % Even if one uses vi to edit the file instead of a simple echo, it won't get that complicated. The nice thing about this is that now we don't need a seperate authentication mechanism. Also, the database no longer needs to be a seperate entity (it need not exist at first place!). As far as I can see, the best way to implement this is as a ReiserFS 4 module. Like to hear some comments and suggessions. Thanks for reading all the way here ;-) Anuradha -- http://www.linux.lk/~anuradha/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 13:00 [W:2.383 / U:0.010 seconds] ©2003-2008 Jasper Spaans | |||||||||||||