Boosted performance in Client / Server mode with ORDA

Originally published at:

Since v17 R5, using ORDA to access large tables in Client/Server mode has been greatly improved.

In this breakout session, we will look under the hood of how that works internally in 4D…


Fascinating Presentation!
However: the thing that’s most interesting to me is how you displayed the ORDA communications log. This is of great interest to me. You mentioned in the last few seconds of the presentation that “special tools were developed in an internal debug version of 4D”. I would love to have access to the communications log of the REST server. (that would be a lot easier than using Wireshark!)

Sure. The network logs are very important to understand how ORDA works and to fine tune network transfer.
They are available and described here:

The internal debug version was created to debug and optimise the usage of the cache. To see which record is currently in cache and to force an unload all, as said, for testing and debugging.

1 Like

Where is this in the documentation?

The documentation for optimization contexts is here, chapter “Client/server optimization”

Thanks. But I’m looking for the specific syntax. Like what was shown in Thomas’s reply regarding the blog post (I tried to put it in as 4D code and it got messed up so my apologies for that…I’ll need to practice further in this new forum). I don’t see a specific reference to ‘ds.startrequestlog’. I notice this is available in v17 as well. Where in the documentation can I find all of the ‘dataclass’ options that go along with the ds command? I found this page but I don’t see ‘startrequestlog’ on this page.

The blog post tells startRequestLog has been introduced in v17R6 and has links to the documentation for each function.

Thank you for that. A lot of my confusion with trying to understand and use ORDA is trying to determine what is available and what is not and the differences between how the code editor shows it vs how the commands or other keywords are shown. My version shows it as valid but it does not appear in the docs that I’m referencing since I am not using an R version.