Xpra: Ticket #486: better xpra info namespace

Despite many changes to the namespace code: r4752, r3914, r3883, r3825, r3739, r3689, r3684, r3680, r3674, etc..

This is still wrong and stoopid. The data should be structured in nested dictionaries and we should let the client flatten it when printing it out.

ie:

window[1].encoding.speed.90p=65
window[1].encoding.speed.cur=50
...

should be sent as:

windows : {
    1 : {
        "encoding" : {
             "speed" : {
                 "90p" : 65,
                 "cur" : 50,
             }
        }
    }
}

Which makes much more sense than building strings client-side for looking up the data we want!



Mon, 20 Jan 2014 11:15:25 GMT - Antoine Martin: owner, status changed


Mon, 03 Mar 2014 15:09:19 GMT - Antoine Martin: milestone changed

A good idea, but difficult to implement. Re-scheduling.


Fri, 22 Jan 2016 01:21:55 GMT - Antoine Martin: milestone changed

Let's expose the new info via the dbus interface (#904), so we can generate the data in a more structured format and flatten it for the old interface.

The new interface can also include a subsystem filter, and a regex filter so we can avoid sending too much stuff.


Wed, 02 Mar 2016 14:37:48 GMT - Antoine Martin:

This should be taken advantage of to reduce the cost of the info packets we send when the session statistics dialog is shown. The packet should also be compressed and then sent from the worker thread rather than UI and network threads. It could also be compressed much more from the worker - though this should be moot if we have filtered enough.


Sat, 19 Mar 2016 15:48:59 GMT - Antoine Martin: attachment set

work in progress patch


Sat, 19 Mar 2016 17:16:43 GMT - Antoine Martin: attachment set

updated patch


Sun, 20 Mar 2016 04:54:40 GMT - Antoine Martin: attachment set

updated patch - mostly complete


Sun, 20 Mar 2016 06:28:04 GMT - Antoine Martin:

Along the way, fixed two major bottlenecks in xpra info: r12178 + r12179. Which should be backported.

With those improvements, the info request takes mere milliseconds to process and the resulting packet is now much smaller. This means that the filtering becomes much less important.


Sun, 20 Mar 2016 08:00:13 GMT - Antoine Martin:

Mostly done in r12183. See commit message. (xpra info performance fixes backported in r12185 + r12186)

The xpra info client can now also be used to print the structured data without flattening it:

XPRA_FLATTEN_INFO=0 xpra info

The code is now much faster and cleaner. In terms of user visible changes, there should not be any (bar cosmetic ones in xpra info output).

Things left to verify / fix:


Sat, 26 Mar 2016 10:43:44 GMT - Antoine Martin:

More conversion and fixes: r12224 (gtk info), r12206 (net caps), r12189 (fix child reaper and test), r12261 (misc), r12262 (session info), r12265 + r12266 + r12267 (related refactoring)

As of r12264:


Tue, 29 Mar 2016 04:12:49 GMT - Antoine Martin: owner, status changed

I have verified everything except the proxy server.

@afarr: mostly a FYI, feel free to close. (will follow up in #1154)


Fri, 01 Apr 2016 12:07:07 GMT - Antoine Martin:

Fix for the dbus server (#904) in r12300.


Tue, 03 May 2016 23:00:09 GMT - J. Max Mena: status changed; resolution set

This notification is here to notify you that this has been noticed.

Closing.


The flatten info flag definitely produces a drastically different output.


Sat, 23 Jan 2021 04:57:03 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/486