intersystems-community / DeepSeeWeb

Renderer for DeepSee Dashboards in Browser with MDX2JSON as a Serverside and JS web-client
MIT License
18 stars 13 forks source link

Enable async of data load/async data delivery #397

Open Lena-Ev opened 1 year ago

Frisle commented 1 year ago

Asynchronous data transfer can be achieved by switching to DeepSeeRest, but this completely changes the mdx json structure

Lena-Ev commented 1 year ago

for now workaround like Anton proposed

Frisle commented 12 months ago

I have developed temporal solution by calling WriteJSONfromMDX after deepsee MDX execution and prepare methods

Frisle commented 11 months ago

@evshvarov, I did some development and research and this is what I found

The problem with long data calculation is related to the %KPI function in the FTServers cube. The data needs to be calculated every time it is called, hence the "Computing %" and the need to call ResultSet over and over again. Sometimes you need to call it three times in a row to get data.

We can get around this by using ##class(%DeepSee.REST.v1.DataServer) logic to check the state of the data computation and then display the results, but we will have to call the result set twice. We call it first with ##class(%DeepSee.REST.v1.DataServer) logic (waiting for %KPI calculation) and second time with our MDX2JSON logic to create widgets with the current json structure since the new structure (DeepSeeRest) is not implemented .

Using the above method is obviously a hack and it is very expensive for the system to handle. Decent widgets require significant time to calculate the result twice (3.68 seconds)

The most sensible solution here is to convert everything to a new structure

Lena-Ev commented 11 months ago

paused till the ISC introduce their solution