Using JIT for VACUUM, COPY, ANALYZE

Started by Pavel Stehuleabout 8 years ago3 messageshackers
Jump to latest
#1Pavel Stehule
pavel.stehule@gmail.com

Hi

Today, these task can be CPU limited . Do you think, so JIT can be used
there too?

Regards

Pavel

#2Andres Freund
andres@anarazel.de
In reply to: Pavel Stehule (#1)
Re: Using JIT for VACUUM, COPY, ANALYZE

On March 11, 2018 12:31:33 PM PDT, Pavel Stehule <pavel.stehule@gmail.com> wrote:

Hi

Today, these task can be CPU limited . Do you think, so JIT can be used
there too?

Copy definitely, with the others I'm much more doubtful. Don't see anything around their bottlenecks that could be removed by JITing. Haven't looked at profiles of them recently however.

Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

#3Andres Freund
andres@anarazel.de
In reply to: Andres Freund (#2)
Re: Using JIT for VACUUM, COPY, ANALYZE

On 2018-03-11 12:38:54 -0700, Andres Freund wrote:

On March 11, 2018 12:31:33 PM PDT, Pavel Stehule <pavel.stehule@gmail.com> wrote:

Hi

Today, these task can be CPU limited . Do you think, so JIT can be used
there too?

Copy definitely, with the others I'm much more doubtful. Don't see anything around their bottlenecks that could be removed by JITing. Haven't looked at profiles of them recently however.

To expand a bit on that: JITing isn't magic - it needs to be able to
remove overhead to be beneficial. That can be removing very frequently
hit branches, indirect jumps and memory accesses. For e.g. expression
evaluation and tuple deforming it's not hard to see how that can be
done, yielding nice speedups. But for vacuuming where a lot of overhead
is in hot pruning and the like there's very little that can be removed.

Greetings,

Andres Freund