Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web SQL Transaction Gridlock Bug in Chrome on Ubuntu #14

Open
awwx opened this issue Jun 14, 2013 · 0 comments
Open

Web SQL Transaction Gridlock Bug in Chrome on Ubuntu #14

awwx opened this issue Jun 14, 2013 · 0 comments
Labels

Comments

@awwx
Copy link
Owner

awwx commented Jun 14, 2013

I'm seeing horrible performance in Chrome on Ubuntu when multiple windows attempt to open a Web SQL database transaction at the same time.

What's supposed to happen is that one window at a time can open a read-write transaction on a database, or, if no read-write transaction is active, multiple windows can run a read-only transaction at the same time. If another window is currently running a transaction, the window trying to open a transaction waits until the other transaction finishes, and then gets its lock (read-write or read-only) on the database.

Contention (multiple windows trying to get a transaction at the same time) can thus cause a window to have to wait to enter a transaction. However, once a window is in a transaction, whether or not other windows are waiting shouldn't make a difference: the window can complete its database operations and commit its transaction.

However what I'm seeing is that when there's contention the database commit can be delayed for long periods of time... from a typical 15 milliseconds to 1 to 2 seconds (!) As soon as there's any contention at all, the database gets locked for such long periods that it turns into immediate gridlock.

Hopefully this won't be an issue for IndexedDB, or else offline-data probably won't be usable in Chrome on Ubuntu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant