Wish list, multiple synchronous access
Posted 27 September 2019 - 02:58 PM
Posted 01 October 2019 - 04:31 PM
Confirming this is on the enhancement request list.
Posted 02 October 2019 - 05:34 AM
Posted 02 October 2019 - 06:15 AM
Don't anticipate fulfillment of your wish soon. But right now you could install RM on a remote Windows virtual machine service and the two of you could go at the same database. How that would work out is a voyage if discovery. SQLite allows multiple readers but restricts to one writer at a time. And RM7 is unreliable at refreshing some screens for single users, e.g., the sidebar Index.
Sounds a bit too technical for me at the moment. I’ll bear my soul on patience!
Posted 07 October 2019 - 09:16 AM
My assessment is that RM is currently a single user, single threaded software product meaning that a single user can access the data files and it does not support any concurrent use of the data files.
Also I am assuming that RM is using SQLite version 3 to manage its data files.
I wanted to see what SQLite had to say about locking data to prevent data corruption and you can read their description here: https://sqlite.org/lockingv3.html
My take on their explanation is that they are concerned with the data integrity of the data base files and provide a way to ensure that they do not get corrupted. If I read this correctly that you can have multiple simultaneous readers but as soon as someone wants to update a record they need the entire database to themselves.
With this mechanism I can see multiple people accessing the same RM database but at separate times. No concurrent access.
If the request is for concurrent access them I think RM would need to “upgrade” their database software and rework all the RM screens where data can be entered. Either of these things would not be a trivial task.
Any developer needs to estimate the cost of a modification, both in hours spent designing, coding and implementing a solution but also any additional cost to use the new multi user database.
They must then look at who benefits from the changes. If RM has requests for many changes and the serialization request will aid a small number of people but cost a lot and several other changes will take less time and effort but will benefit many users then the developers should be opting to benefitting the most users.
And this is just if all the users are using RM on their pcs. If you have multiple software solutions then the potential problem just got exponentially more difficult.
I don’t anticipate that RM will introduce a concurrent multi user environment soon. I believe there are many other changes that will take precedence.
Maybe Renee or TomH can shed more light on what might be a deliverable.
Posted 07 October 2019 - 11:24 AM
As to concurrent access to the database, that is feasible now for a single user on the same pc. You can open the same file in separate Windows in the same instance of RM or in multiple instances of RM. I have often had 2 or 3 SQLite managers connected to the same file as RM. As long as RM is only doing SQLite ops on the file, all's well. However, its file backup function behaves like DOS and wants an exclusive lock, tripping up on the other connections and ungracefully prevents further ops without a forced end-task and restart. That forced me to look for alternatives.https://sqlitetoolsf...-sqlite-and-rm/
Posted 07 October 2019 - 02:03 PM
It would be interesting to understand how RM uses the SQLite locking mechanism. SQLite is embedded in the RM application and according to the SQLite documentation there is a "pager module" that handles the locking of the database. If you are running all the applications on the same PC then maybe there is only one copy of the pager module running and that all requests are funneled through the single SQLite module.
I tried to open two instance of RM and was unable to do so. I did open several copies of the same database within the same instance of RM. RM would only allow one to open a screen where updating might take place thus enforcing the single threaded approach.
It will be interesting to see what RM does, if anything, on concurrent database access. I don't think I will have need for concurrent access, I have enough trouble just managing me.
Posted 07 October 2019 - 02:55 PM
I used to be able to open the same database file with both the resident install of RM and the portable install of RM that RM2GO puts on a flash drive. I haven't done this in a while so it's not definite. At one time you could install the portable version on the system drive but now only on a removable.
Posted 07 October 2019 - 08:01 PM
I asked the RootsMagician whether there would be any changes to the database that might make it pointless to migrate the SQLite Tools for RootsMagic site to a new site (a lot of work involved). He told me there would be few changes to the data structure. I infer from that statement (and the reasonable observation that there is no better database system for the purpose) that RM8 will continue with SQLite3.
Posted 08 October 2019 - 08:01 AM
Thanks, Tom. And thanks so much for writing so many useful routines for the use of RM users.