Using row objects on the client side is great during prototyping, but when it’s time to look at the speed I never pass the row itself. Instead I create a dictionary on the server side, adding the row id if required, and return it to the client. So I am sure that the client will never contact the server.
That’s what we do too but have noticed the get_id requires the server to talk to the db (which introduces lag even on the serverside). (At least i think so)
@woodpav is right – get_id() still costs a few ms, even on the server.
We are definitely working on this one – there’s a lot of architectural preparation needed before we can make the shift, but once we’ve got it in place we’ll have a lot more elbow room to improve data table performance.
(Comparison: It’s like implementing hierarchical form packages on the client side. The actual UI switch was pretty straightforward, but preparing the Python interpreter, designer, form-navigation system etc to deal with it – and backwards-compatibly too – was the 90% of the iceberg that lay under the surface. Likewise, once we’ve done this internal re-architecture, making get_id() fast is going to be trivial – a two-line change – but we’re still working below the waterline right now, so all you’re seeing is the bubbles )