Skip to content

Warn users of impact when deleting a view via Fauxton #5125

@lyudmil

Description

@lyudmil

Summary

Fauxton allows one to easily delete a view. If they do, then all views will be rebuilt. That might be sensible behavior if one were to think about how design documents work, but it's not obvious behavior. If you have several large views and delete one to reduce your storage requirements, all the rest will become unavailable until they're rebuilt. For large databases, this might take days. In that sense, being able to easily delete views is a giant footgun.

My team and I found this the hard way out a couple of months ago and it cost us.

Desired Behaviour

To us it would make sense for some friction to be introduced in the UX when a change with potential catastrophic impact is made. Ideally, we would have liked to have been warned about views being rebuilt and the potential for downtime.

The above assumes that making it so that one could delete one view without rebuilding the others is too effortful to consider. It would otherwise be the ideal behavior.

Possible Solution

Something as simple as an alert, explaining that other views would have to be rebuilt, causing downtime, would suffice.

Activity

rnewson

rnewson commented on Jul 10, 2024

@rnewson
Member

You can get your desired behaviour by putting each view in a separate design document, the optimisations from putting multiple views in the same design document come at this (considerable) cost, but you don't have to do that.

We'll look at adding a warning in the dashboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @rnewson@lyudmil

        Issue actions

          Warn users of impact when deleting a view via Fauxton · Issue #5125 · apache/couchdb