Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-427

Consider Providing More Information For Changed Links In a Delta Response

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: V4.0_CSD01
    • Fix Version/s: V4.0_CSD02
    • Component/s: Protocol
    • Labels:
      None
    • Environment:

      [Applied]

      Description

      Currently when a link changes, a delta response will contain only the entity-IDs of the entities and the name of the relationship. The entity-IDs alone do not provide sufficient information for the client to build the relationship locally between the two entities because no assumptions about the entity-IDs format can be made. For the client to make the relationship it either has to request the entities matching those IDs from the server or keep a local mapping of entity IDs to entities (a hash map of sorts). Since no assumptions can be made about the amount of data, this mapping must be persisted, which means updating links (even with in-memory caching) in a worst case scenario requires an extra read from the persisted local store.

      To be able to locally hash the mapping for delta responses also enforces an order of operations on the server. Links must be updated AFTER entities are changed to make sure the client gets the entities for hashing purposes before link changes. Although this seems like a natural order, technically it is not necessary if the data store is a database that checks referential integrity on commit.

      If we can provide additional information about the entities, in particular their key values and fully qualified entity set, the above issues can be avoided.

        Attachments

          Activity

            People

            • Assignee:
              handl Ralf Handl
              Reporter:
              matthew.borges Matthew Borges (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: