Project

General

Profile

Feature #6772

increase usage of ASSIGN bracketing

Added by Greg Shah over 1 year ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
version:

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.

Also available in: Atom PDF