You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently local segment compaction relies on a mix of early returns and throwing to indicate errors during compaction (e.g. segment was closed during compaction because of a race with prefix truncation). This makes it generally difficult to reason about error scenarios, and functionally makes such error scenarios high cost (e.g. because they may force the housekeeping loop to restart because of the thrown exception).
There are a few possible cleanup options:
continue to rely on exceptions, but be more graceful within the housekeeping loop (e.g. wrap compaction methods try/catch, swallow the exceptions, and move on)
switch over to using some kind of boost result type and std::error_outcome specific to either compaction or the local storage subsystem at large
Currently local segment compaction relies on a mix of early returns and throwing to indicate errors during compaction (e.g. segment was closed during compaction because of a race with prefix truncation). This makes it generally difficult to reason about error scenarios, and functionally makes such error scenarios high cost (e.g. because they may force the housekeeping loop to restart because of the thrown exception).
There are a few possible cleanup options:
JIRA Link: CORE-1575
The text was updated successfully, but these errors were encountered: