Details
-
New Feature
-
Resolution: Unresolved
-
Major
-
None
-
None
Description
Background: A customer reported an issue in CBSE-16247 where data was not being persisted to disk upon saving a document using the collection.save(doc) function. The customer provided code samples and additional information demonstrating this failure, indicating that data was lost upon running the function. A VF was produced, however, the feature has not been productised and we have had escalation from the accounts teams on this issue.
Objective: Ensure that data is reliably persisted to disk even in the event of a power outage when using the collection.save(doc) function.
Requirements:
- Configurable Synchronization Mode:
- Introduce a configurable option to enable full synchronization.
- This option should not be enabled by default to avoid performance impacts for users who do not require this level of persistence.
- API Changes:
- Example API from VF discussion. To be fleshed out by Dev in a one pager.
public enum Options { FULL_SYNC, ... }public DatabaseConfiguration setOptions(Option... options);public EnumSet getOptions();
{{}}
- Example API from VF discussion. To be fleshed out by Dev in a one pager.
- Synchronous Level Configuration:
- Internally, adjust the SQLite synchronous level when FULL_SYNC is enabled to ensure data is flushed to disk immediately{}
- Docs Impact:
-
- Document the new synchronization option to users, highlighting the trade-offs between data safety and performance.
- Inform customers about the potential performance impact of enabling full synchronization.
- QE Impact:
- Conduct testing to verify that data is persisted to disk reliably when FULL_SYNC is enabled.
- Simulate power outage scenarios to ensure data integrity is maintained.