Feature #6772
increase usage of ASSIGN bracketing
0%
History
#1 Updated by Greg Shah over 1 year ago
In #6726, we found that a CREATE <widget> ASSIGN ...
was being handled with decreased performance because we are not properly batching the assignments with the rest of the widget creation. This forced many client side round trips when the entire set could have been batched at one time.
Currently we only "bracket" (implement batching features) the ASSIGN
when it is embedded in a buffer-copy or in a regular ASSIGN
statement has more than one field of the same table is assigned in the same statement. See annotations/assign_bracketing.rules
. When the "bracket"
annotation is present, then we emit the entire ASSIGN
as a lambda and pass it to RecordBuffer.batch()
or RecordBuffer.silentBatch()
.
I wonder what other performance advantages we might gain by expanding the use of bracketing. If these advantages can be gained by generic code, then we probably should to move the batch()
/silentBatch()
into BlockManager
. If it is only an addition of using the CREATE
widget to process the lambda, then we don't need to do that.
#3 Updated by Constantin Asofiei over 1 year ago
Please see #6740 - we had an attempt to lock/unlock the frame for the duration of the widget ASSIGN, but this posed problems.