Web-Facing Change PSA: Set IndexedDB transaction durability to `relaxed` by default

22 views
Skip to first unread message

Evan Stade

unread,
Oct 27, 2023, 3:41:56 PM10/27/23
to blink-dev

Contact emails

est...@chromium.orgay...@chromium.org

Specification

https://www.w3.org/TR/IndexedDB

Summary

IndexedDB offers two durability modes for readwrite transactions: `relaxed` and `strict`. This may be specified via the optional `options` struct when creating a transaction. See https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/transaction for more details. If not specified, the current default in Chromium is `strict`. Due to performance considerations, we plan to change the default to `relaxed`, which also aligns Chromium with FireFox and Safari.



Blink component

Blink>Storage>IndexedDB

Search tags

IndexedDBfsyncdurabilityrelaxedstrict

TAG review

None

TAG review status

Not applicable

Risks



Interoperability and Compatibility

This change aligns Chromium with the behavior of other major browser vendors (behavior which is left up to the implementation in the standard), so it is improving interoperability. There is some historical context here: https://github.com/w3c/IndexedDB/issues/50



Gecko: N/A

WebKit: N/A

Web developers: No signals

Other signals:

Ergonomics

No new API surface.



Security

No known security implications. No extensions to behavior that wasn't already accessible to web apps without security or privacy controls.



WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

None



Debuggability

No new DevTools support (but DevTools support for IndexedDB is already good).



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests?

Yes

https://wpt.fyi/results/IndexedDB?label=master&label=experimental&aligned&q=indexeddb



Flag name on chrome://flags

indexed-db-default-durability-relaxed

Finch feature name

DefaultBucketUsesRelaxedDurability

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=965883

Estimated milestones

Shipping on desktop121
DevTrial on desktop120
Shipping on Android121
DevTrial on Android120
Shipping on WebView121


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5084460341264384

This intent message was generated by Chrome Platform Status.


-- Evan Stade
Reply all
Reply to author
Forward
0 new messages