Hi dev@,

I’d like to propose that we retroactively classify materialized views as an 
experimental feature, disable them by default, and require users to enable them 
through a config setting before using.

Materialized views have several issues that make them (effectively) unusable in 
production. Some of the issues aren’t just implementation problems, but 
problems with the design that aren’t easily fixed. It’s unfair of us to make 
features available to users in this state without providing a clear warning 
that bad or unexpected things are likely to happen if they use it.

Obviously, this isn’t great news for users that have already adopted MVs, and I 
don’t have a great answer for that. I think that’s sort of a sunk cost at this 
point. If they have any MV related problems, they’ll have them whether they’re 
marked experimental or not. I would expect this to reduce the number of users 
adopting MVs in the future though, and if they do, it would be opt-in.

Once MVs reach a point where they’re usable in production, we can remove the 
flag. Specifics of how the experimental flag would work can be hammered out in 
a forthcoming JIRA, but I’d imagine it would just prevent users from creating 
new MVs, and maybe log warnings on startup for existing MVs if the flag isn’t 
enabled.

Let me know what you think.

Thanks,

Blake

Reply via email to