Simon, * Simon Riggs (si...@2ndquadrant.com) wrote: > I'm proposing something that is like an index, not like a plan node. > > The reason that proposal is being made is that we need to consider > data structure, data location and processing details. > > * In the case of Mat Views, if there is no Mat View, then we can't use > it - we can't replace that with just any mat view instead
I agree with you about MatView's. There are clear trade-offs there, similar to those with indexes. > * GPUs and other special processing units have finite data transfer > rates, so other people have proposed that they retain data on the > GPU/SPU - so we want to do a lookaside only for situations where the > data is already prepared to handle a lookaside. I've heard this and I'm utterly unconvinced that it could be made to work at all- and it's certainly moving the bar of usefullness quite far away, making the whole thing much less practical. If we can't cost for this transfer rate and make use of GPUs for medium-to-large size queries which are only transient, then perhaps shoving all GPU work out across an FDW is actually the right solution, and make that like some kind of MatView as you're proposing- but I don't see how you're going to manage updates and invalidation of that data in a sane way for a multi-user PG system. > * The other cases I cited of in-memory data structures are all > pre-arranged items with structures suited to processing particular > types of query If it's transient in-memory work, I'd like to see our generalized optimizer consider them all instead of pushing that job on the user to decide when the optimizer should consider certain methods. > Given that I count 4-5 beneficial use cases for this index-like > lookaside, it seems worth investing time in. I'm all for making use of MatViews and GPUs, but there's more than one way to get there and look-asides feels like pushing the decision, unnecessarily, on to the user. Thanks, Stephen
signature.asc
Description: Digital signature