Considering the huge size of block database, maybe it is practical to allow users to use external DB engines for this.
Imho, RethinkDB, with it's GUI, is very easy to setup, including it's mirroring and clustering.
Because of size of blocks DB and of amount of time it is required to download and/or reindex existing backup, mirroring features of real DB engines may be more practical to use.
use case:
- user downloads Bitcoin Core
- user downloads and sets up RethinkDB (possibly with mirroring and/or clustering)
- user selects usage of RethinkDB in bitcoin-qt options window
- user restarts bitcoin-qt
- bitcoin-qt checks DB structure and tables and indexes and creates/changes them as needed
- bitcoin-qt does it's work on blocks DB using RethinkDB
- such db could be placed on external computer
- connection to db could be encrypted and secured
- less chances to destroy hdd/ssd on local PC and data on it (because of intensive use of drive by bitcoin software)
- less chances to lose blocks DB
- less load on network from those who lost their blocks DB and now re-downloading it
- easier for user to shutdown bitcoin-qt - less time to wait while bitcoin-qt syncs and closes DB
- easier to restart in case of power failures
