Bug #11488
improve performance of the OpenClient protocol when the client is running in the same JVM as the FWD server
100%
History
#1 Updated by Constantin Asofiei 2 months ago
When the FWD OpenClient calls are made from the same JVM as the FWD server, there are lots of immutable objects being serialized and deserialized. This includes the table schema (options, fields, etc) and even rows (here we can use just the immutable Java types associated with the BDT type).
An example is PropertyDefinition which is immutable but is serialized in the same JVM.
The impact will be most likely on a high-load server.
Also, if I'm not mistaken, the REST/SOAP/etc APIs will benefit from this, also.
#3 Updated by Constantin Asofiei about 2 months ago
- Assignee set to Eduard Soltan
#4 Updated by Eduard Soltan about 2 months ago
It seems that the most cases were immutable objects are being serialized and deserialized are coming from AppServerHelper.preProcessParameters and AppServerHelper.postProcessResult. Here if the local flag (flag indicates that appserver is running in the same JVM as the requester) is set, there is some code that executes serialization and deseralization of such structures as TableWrapper, DatasetWrapper.
Serialization of this fields triggers serialization of its child immutable fields (PropertyDefinition, IndexDefinition, IndexComponentDefinition, etc).
I wrote some methods to handle the copy of the structures, and get rid of serialization from preProcessParameters and postProcessResult.
Committed on 11488a, rev. 16597.
#5 Updated by Eduard Soltan about 2 months ago
- Status changed from New to WIP
- % Done changed from 0 to 100
#6 Updated by Eduard Soltan about 2 months ago
- Status changed from WIP to Review
- reviewer Constantin Asofiei added
Please review.
#7 Updated by Constantin Asofiei about 2 months ago
- Status changed from Review to Internal Test
Eduard, the changes are good. Please go with testing the #10529 app, #10614 app, ETF and any other app which uses appservers.
#8 Updated by Eduard Soltan about 2 months ago
Constantin Asofiei wrote:
Eduard, the changes are good. Please go with testing the #10529 app, #10614 app, ETF and any other app which uses appservers.
Ok, should I post the update example projects?
#9 Updated by Eduard Soltan about 1 month ago
#10529 app, #10614 app, ETF have been tested.
GUI application smoke tests + SOAP tests, GUI application unit tests and CHUI regression tests passed.
#10 Updated by Constantin Asofiei about 1 month ago
Anything else remaining?
#11 Updated by Eduard Soltan about 1 month ago
Constantin Asofiei wrote:
Anything else remaining?
Waiting on response for Gui application smoke tests.
#12 Updated by Eduard Soltan about 1 month ago
Eduard Soltan wrote:
Waiting on response for Gui application smoke tests.
Smoke tests on large GUI application passed.
#13 Updated by Constantin Asofiei about 1 month ago
- Status changed from Internal Test to Merge Pending
Please merge 11488a now.
#14 Updated by Eduard Soltan about 1 month ago
- Status changed from Merge Pending to Test
11488a was merged into trunk rev. 16600 and archived.