janelia-flyem / dvid

Distributed, Versioned, Image-oriented Dataservice
http://dvid.io
Other
197 stars 33 forks source link

Mapping updates in response to certain mutations #361

Closed stuarteberg closed 2 years ago

stuarteberg commented 2 years ago

Obviates #323 Related: #289, #297

While you're at it, if you could handle #267 (task 3), that would be great:

  1. split-supervoxel messages could include the body ID
DocSavage commented 2 years ago

Fully fixed by commits d7ae3c9 and db19cbe. Because this slightly modifies what a "mapping" constitutes, i.e., the id-to-be-mapped is not always a supervoxel, the documentation for the /mapping endpoint has been changed to emphasize it:

GET <api URL>/node/<UUID>/<data name>/mapping[?queryopts]

    Returns JSON for mapped uint64 identifiers (labels). The mapping holds not only the
    unique IDs of supervoxels but also newly created IDs for renumbered & cleaved bodies
    that will never overlap with supervoxel IDs. 

    Expects JSON in GET body:

    [ label1, label2, label3, ...]

    Returns for each POSTed label the corresponding mapped label:

    [ 23, 0, 911, ...]

    The mapped label can be 0 in the following circumstances:
    * The label was a supervoxel ID that was split into two different unique IDs.
    * The label is used for a newly generated ID that will be a new renumbered label.
    * The label is used for a newly generated ID that will represent a cleaved body ID.
stuarteberg commented 2 years ago

@DocSavage Just to be clear: These changes affect not only the /mapping endpoint, but also the complete /mappings endpoint, yes?

DocSavage commented 2 years ago

@stuarteberg Yes. I'm pushing a change to the documentation for GET and POST /mappings as well to make clear the mapping keys aren't just supervoxel ids any more.