Lydia_Pintscher added a subscriber: Lydia_Pintscher.
Lydia_Pintscher added a comment.

Notes from story time:

Collecting options and wild ideas:

- Profile, find hotspots, try to improve the existing architecture in small but 
relevant steps.
- Have specialized deserializers generating specialized model objects.
- Deferred deserialization. At some level stop deserialization, remember the 
fragment of the array (typically: all statements, e.g. all aliases) and the 
relevant deserializers, continue when asked for the deserialized value.

Lua needs to be adapted to make use of this. Currently a lot of code assumes it 
has a fully deserialized entity *OR* code just works on a JSON blob.
Special case: Terms (labels, descriptions, aliases) are objects. Hundreds of 
thousands of them. Having a simpler interface that just returns arrays of 
strings will save a lot.

- Just do not deserialize. Pass the JSON blob (or intermediate array structure) 
around.

Most relevant point is where an entity is passed to Lua. Note: Lua is not CPU 
critical, but memory critical!
E.g. when editing a label, statements *NEVER* need to be deserialized!
The case where “Germany” needed super-protection (no Lua involved) will 
probably also become relevant again.

(NOTE) Team decision: Profiling. Then avoid unserialization where not needed.


TASK DETAIL
  https://phabricator.wikimedia.org/T90706

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Lydia_Pintscher
Cc: Lydia_Pintscher, Aklapper, daniel, Wikidata-bugs, aude, GWicke



_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to