Promote SQLite implementation to stable #16768
Replies: 17 comments 53 replies
-
I have been using it since day one without a single problem but i wouldn't consider myself a "heavy" user. 👍 |
Beta Was this translation helpful? Give feedback.
-
To be honest, I wasn't aware that anyone was using it in a productive environment. Well, if that's the case and you have positive feedback, then we can move on with it. We can start by removing the "experimental" label. |
Beta Was this translation helpful? Give feedback.
-
FYI, I have resumed my work on improving the "session restore" stage, namely, I want to implement asynchronous handling that does not prevent the use of the application UI during this time (with some restrictions, of course). But at the same time, SQLite based way will become even more optimal, since I will replace the current method of reading resume data, which requires lookup for each row by id, with a more optimal method of sequential traverse all the rows. |
Beta Was this translation helpful? Give feedback.
-
Unfortunately there is a bug in SQLite based resume data storage. Ref.: #16810. |
Beta Was this translation helpful? Give feedback.
-
Can the sqlite db file be backed up in the middle of qbittorrent running? I know that the fast resume file you can just copy. Does that would work for the database? |
Beta Was this translation helpful? Give feedback.
-
@glassez It would be nice to be able to switch storage type in WebUI. Session\ResumeDataStorageType=SQLite It takes ≈5 min to convert all data from
So far so good. P.S. Found #16822, fixed DB manually
|
Beta Was this translation helpful? Give feedback.
-
I just did an upgrade from qBittorrent 4.3.0 to 4.4.3.1. I edited my qBittorrent.conf file under the
When I started up qBittorrent again, the web UI wouldn't load. From the logfiles - it seemed to be in some kind of boot-loop, where qBitorrent would keep restarting every few seconds. I didn't see any Has anybody seen this? Any suggestions to fix? |
Beta Was this translation helpful? Give feedback.
-
Another issue on the way. There a need to convert saved paths while migrating to new directory/storage/OS. There is already pretty many variants (half is ugly and does not work but anyway): #9912 With a binary database file a simple conversion of value in the database without a tool would be a problem. The bencodes is simple enough to edit it directly. |
Beta Was this translation helpful? Give feedback.
-
Could https://github.com/qbittorrent/qBittorrent/wiki/Explanation-of-Options-in-qBittorrent#Advanced explain the differences between fastresume and SQL? There is no explanation whatsoever. |
Beta Was this translation helpful? Give feedback.
-
Does it only store the data from the .resume.dat files, or also the .torrent file data? |
Beta Was this translation helpful? Give feedback.
-
I've been using it for a little while w/o issues. I'm looking a bit at the code but haven't gone thru it much yet. Do you think there should be any column indices? In the sqlite3 shell, one can enter at the prompt |
Beta Was this translation helpful? Give feedback.
-
So, the migration on this is brutal. If the process is interrupted, the existing session torrents are ignored, and you're left with whatever was imported in the single swing. I'd highly recommend adding a column bit in a table saying the migration was successful, and the old session directory can be ignored. |
Beta Was this translation helpful? Give feedback.
-
Is anyone else seeing torrents not coming back when the client crashes? Seems like a ton of session state is lost when this happens. |
Beta Was this translation helpful? Give feedback.
-
just curious, looking forward in expectation that one day this becomes the default. I currently backup in several ways. 1 being a daily macrium image of my system drive which obviously includes %localappdata% and as such the fastresume files. I also run a robocopy script on sundays that ships some choice critical data to the cloud. one of those items is the %localappdata%\qBittorrent folder. Several times ive had hiccups which resulted in qbittorrent trying to recheck 15000 or so torrents amounting to ~50TB of data. Pretty much a non starter had i not had a backup of the BT_backup folder to pull from. Now purely as a user who doesnt know much about anything, i have heard during my travels about sqlite databases and their fickleness when being written to/read from while open in regard to data loss and/or corruption. I believe i was advised to get my calibre library out of my dropbox folder for example, lest I risk the aforementioned. in an extremely long winded way, what im getting at is; would my current backup methodology present an issue with the live database or the validity of the backed up data (considering both macrium and the robocopy script are ran while qbittorrent is active/open/running) were i to switch to the sql database? i'd be lying if i said the speed improvement wouldnt be very welcome and is enticing considering the volume of torrents i deal with. Not at the expense of introducing more risk as far as data issues go though. |
Beta Was this translation helpful? Give feedback.
-
I really like the sqlite implementation but another issue I'd like to raise is that there's no way to combine qbit databases from multiple instances together. For some context I normally run qbit on my home server but also have an instance on my laptop that I take while travelling. More often than not I sync my laptop back to my main server when I get back. I just tried to do the same with qbit by just incrementing the torrent ids and sqlite inserting the records but that failed :/. Any tips for how this is supposed to be done? With torrents and resume files it's generally as easy as copying them across 🤔. |
Beta Was this translation helpful? Give feedback.
-
Any details? |
Beta Was this translation helpful? Give feedback.
-
What's the reason for this still being in experimental mode? |
Beta Was this translation helpful? Give feedback.
-
Topic:
From version 4.4, SQlite has been added as an experimental to resume data capabilities. I can confirm multiple things:
Suggestions:
Remove the experimental status so that more people are encouraged to use it. By doing this, it can be gradually promoted to the default status.
Thanks a lot, @glassez. This is a brilliant feature.
Beta Was this translation helpful? Give feedback.
All reactions