|
If the idea would be accepted, then the topic might be turned into umbrella, with sub-tickets for each issue.
But beforehand i think it's worth to discuss the topic in general. That means your applications are of "lots of data, needs very fast access" kind. Those that sometimes get noSQL approach like BigTable maybe, TeraData, etc. Those that definitely are not covered with SQLite. And the only reason to have database fully in memory would be for extra-fast access. Faster than caching can provide. But my topic is more about SQLite sweet spot - replacing variables/structures for relatively small amount of data, given comfort of declarative SQL assignments, declarative queries and built-in constraints checking. All that otherwise would be coded in language against arrays/lists/hashmaps/etc. Speed of execution is not the goal there obviously, since we go away from specific data structures with direct access. Comfort (declarative UPDATEs instead of loops) and reliability (COSTRAINTS and FKs) of development is. And ability to work without temporary files, that tends to be orphaned and clutter the disk ;-) Put your database in ramdisk, put your temp files in ramdisk.
I see no value in this feature request. Desktop application asking Average Joe to install RAM Disk and configure itself where to find it?
Do you think Firebird is only to be used on big irons with gigabytes of data ? Do you think Firebird should not fit where SQLite does ? Have you considered implement this yourself, in the right way, modularizying things and make, say, plugable disk storage? My +1 for it if it's your intention.
After all, this is opensource, like sqlite. Anyway, tracker is not the better place to discuss raw ideas. For that there is firebird-devel and firebird-architect lists. |
||||||||||||||||||||||||||||||||||||||||||||||
As for the general notion expressed in this feature request. Personally, support for in-memory databases will provide little value-add for my applications.
1 - All my database would have to have on-disk brothers, I can't have the database "disappear" if the server is restarted.
2 - The time to load the database into memory would minimize the benefit of having an in-memory database.
3 - Most of my databases are much larger than the RAM most servers can support today without expensive 16GB DIMMs.
There are more crucial performance features (which would benefit all platforms) which would be necessary in order for a true in-memory solution to be maximized:
1 - Smarter GROUP BY handling
2 - multi-threaded SORT
3 - multi-threaded NATURAL SCAN