SQLite and Mac Vs. Windows

This discussion was created from comments split from: Shared vault sync via Dropbox from Mac to Windows.

Comments

  • RichardPayne
    RichardPayne
    Community Member

    Just to clarify, this is nothing to do technical differences between the Windows and Mac platforms. Windows is just as capable of running an SQLite database as OSX is. It is a design choice, nothing more.

    @MikeT if businesses dislike having linked vaults so much then can I assume that the Mac version will be losing the internal db at some point?

  • MikeT
    edited July 2015

    Hi @RichardPayne,

    Windows is just as capable of running an SQLite database as OSX is. It is a design choice, nothing more.

    You are correct that it is our design choice and that SQLite files can be reused between platforms. However, platform built-in versions of SQLite has platform-specific differences that does cause issues, not to mention the locking system is also a big factor. Multiple processes reading/writing to the same db file is problematic, which is we do on Windows, not on Mac. Switching our program to a multi-threaded model to ensure a single writer access to the database structure would resolve this issue, thus a technical design issue on Windows. This isn't limited to Windows, we had issues with Mac users storing their home directory (with 1Password sqlite file) on their OS X server which caused locking issues and the database couldn't be used, not to mention backups couldn't be run either for the same reason.

    From our developers told me, there are also consistency issues with the formatting Apple used for the blob files as well as internal data paths, which is why we can't easily restore nor copy over the same SQLite between different platforms. Granted, this isn't needed since we could just export into sync formats like AGK/OPV formats and statically linked SQLite libs might be the best way to go but we've tried something like it already and we were not happy with it in general.

    If we were to bring multiple vaults support onto Windows, it may be done entirely different from the Mac/iOS implementation of SQLite unless we figure out a solution to work around the issues we've found.

    if businesses dislike having linked vaults so much then can I assume that the Mac version will be losing the internal db at some point?

    We do not release anything about our future plans. However, this doesn't require the database structure to not be used, it just means we need to go at it differently and consider their needs first. 1Password as a whole wasn't designed to consider businesses, so we kept learning from this and will adjust in the future. Maybe restructure the database to not store the vault keys in the first place as an option.

  • RichardPayne
    RichardPayne
    Community Member

    @MikeT

    Multiple processes reading/writing to the same db file is problematic, which is we do on Windows, not on Mac.

    Which is one good reason to drop the multi-process structure. Losing the IPC to synchronise lock state would be another.

    but we've tried something like it already and we were not happy with it in general.

    What didn't you like?

    If we were to bring multiple vaults support onto Windows, it may be done entirely different from the Mac/iOS implementation of SQLite unless we figure out a solution to work around the issues we've found.

    From a technical pointvof view, sure, but from a user pointvof view there should ideally be no difference other than the window chrome.

    However, this doesn't require the database structure to not be used, it just means we need to go at it differently and consider their needs first. 1Password as a whole wasn't designed to consider businesses, so we kept learning from this and will adjust in the future.

    I agree but you appeared to be using the business use case to justify the windows strategy. I was merely pointing out that this seems odd unless you plan to change the Mac implentation.

  • MikeT
    edited July 2015

    Hi @RichardPayne,

    I've split our conversation from other thread as we're getting a bit off topic.

    Which is one good reason to drop the multi-process structure. Losing the IPC to synchronise lock state would be another.

    Yes, there are many good reasons for switching to multi-process structure. We never said we won't go there and it is likely in the future that's the path we'll go toward. I wish I can say more but we do not release details about future nor internal discussions about this.

    What didn't you like?

    The complexity it offers compared to the other solutions that's available for these benefits, there are simpler ones that is better for our simple needs at the moment. That's as far as I know based on what the engineering team said. Again, we go back and forth, so we'll see what comes in the future.

    From a technical pointvof view, sure, but from a user pointvof view there should ideally be no difference other than the window chrome.

    I didn't say otherwise, we were talking about the technical reasons why we chose not to adopt multiple vault yet on Windows.

    I agree but you appeared to be using the business use case to justify the windows strategy. I was merely pointing out that this seems odd unless you plan to change the Mac implentation.

    Like I said before, we don't release details about the future, or even internal discussions, which also makes it difficult for us to explain more specifically about this. What I can say is that you would guess correctly the things wouldn't change on Windows without the Mac changing as well, in other words, Mac does have a huge impact on how things may work on Windows and other platforms. After all, AgileBits was born out of the Mac platform.

This discussion has been closed.