I already pointed out in a different question of yours why you must abstain from a kernel-level approach.
Before you engage in such an endeavor, few points should be clarified:
"High Performance" is not an one-size-fits-all property.
Optimization should be performed for specific cases and only when you have spotted the main bottleneck.
You should ask yourself the following questions:
- Have I assessed the current mainstream implementations of key-value storage systems? If not, why not?
- If I did, why they are not fit for my use case? Have I performed extensive benchmarking and testing? Have I traced the main bottleneck? Can I fix it in the current state-of-the-art implementations? If not, why do I think I can fix it in my own implementation?
- What are my exact performance requirements? Have I defined "performance" and have I found ways to measure it? High-performance during storage operations? High performance during retrieval operations? High-performance under high load due to the large number of client connections?
Once you have a clear picture of what exactly you want to achieve and once you rejected the current state-of-the-art software, only then you should start exploring potential implementation strategies.
Kernel is the last place you want to touch. Especially if you have no prior kernel development experience. Most of the kernel subsystems are highly optimized through processes that took years of testing and development by highly skilled engineers.
My advice would be to consider optimization through a combination of pre-forking, smart caching and delayed writes. It would be a good idea to familiarize yourself with popular caching algorithms, load balancing approaches and have a look into how things work under the hood of modern filesystems (like readahead, Write policies, LRU) -maybe these are not directly related to your problem, but it helps to know how people solved performance issues in similar domains. Of course, this is not meant as an advice to re-implement these features in your application since they are already implemented better by the filesystem itself -in most cases, this will harm the performance of your application instead of enhancing it.