Skip to content

Passthrough UpdateArray FD in SPARQL updates from DBus endpoint

Currently, the TrackerEndpointDBus converts an UpdateArray request into a TrackerBatch, by reading all contents and including SPARQL/RDF in it before execution, this branch:

  • Fixes some remaining bugs in TTL/Trig serialization wrt blank nodes
  • Decomposes TrackerResource inserts in the DBus peer into 1) small SPARQL delete operations for replaced properties and 2) Trig data for all insertions. Instead of forwarding as a full SPARQL operation with little caching possibilities.
  • Adds an internal tracker_batch_add_dbus_fd() method to plunge the operations FD into the update machinery
  • Moves the UpdateArray FD reading code inside the update machinery, so that only SPARQL/RDF operations are read individually before flushing into the transaction.

This avoids possible the memory usage pressure in allocating/populating a full TrackerBatch before execution, making memory usage more stable on the D-Bus endpoint side.

Merge request reports