Again let me try to see if I can separate the issue:
1) we need a DB abstraction layer. This will allow to use local file, NAS MySQL, Cloud services as user likes. da-anda explained how to do it in his great post #26 (
http://forum.xbmc.org/showthread.php?tid...pid1753147). This will also make the XBMC code better as there will be a unified way of asking for data from libraries.
ODBC abstracts in the correct way all major data formats, they take care of the conversion between TEXT and VARCHAR of the different DBs.
For users this will not be more difficult, at basic level, than server/username/password. For advanced users they could do what they like.
2) is there is an issue with paths the solution is simply to store the UNC (\\servername\pathname\path\filename.ext ) instead of the filepath (v:\movies\movie1.ext) , especially on network shares. Otherwise there should be a path manipulation procedure that "alligns" the path stored on the db to the local machine... but I prefer the UNC
3) for the thumbnails cache it can be local (if is a real cache) build upon the central DB. If we use OOBE in the DB we can store the thumbnails on the central DB and copy them locally for performace considerations
4) network traffic will be IN ANY CASE lower than uPNP as only relevant data will go back and forth the content will go directly form the source to destination
As I wrorte before what I've read of the headless XBMC looks like a custom RDBMS server (this part) so I would not advise it as becomes a mess to manage in time.
Usually I try to tackle those big changes a step at the time.
The first one could be to replace the CDatabase, Video and Music libraries to use ODBC exactly like they are doing today.
Then pictures and other db can be added.
@da-anda: when you write "QOM I'm working with day by day:" means you're a super expert on this?
It has been quite some years since I worked on DB design and code in c++ and I can be a little rustied