Metadata support: duplicate entityID detection; resolver lazy eval vs. preprocessing

Cantor, Scott cantor.2 at osu.edu
Mon Aug 12 20:26:26 EDT 2013


On 8/12/13 8:19 PM, "Brent Putman" <putmanb at georgetown.edu> wrote:
>
>I suppose the entityID index time isn't that big a deal, and we do have
>filters that walk the tree.  I suppose I was thinking mostly about all
>the other potential pre-preprocessing which would be more expensive than
>a simple tree walk and building a Map<String, EntityDescriptor>.  Or I
>guess would be Map<String, List<EntityDescriptor>> if we want to support
>same-document duplicate detection.

I use multimaps, because I allow for duplicates that don't actually
overlap (e.g. different roles). That's another reason I overlapped the
role and entity search interface. I can do a search for a specific role
and protocol, and skip matching entityIDs that don't support the right
other criteria.

>For the record, what do the SP's metadata providers do?

Index up front, but reloads are in a background thread now, even for local
files.

>True, we would have to lock on the EntityDescriptors in some fashion.
>So I guess there's at least one tradeoff here between pre-processing
>cost upfront vs. locking at runtime.

It's not the locking cost so much but the complexity and risk that concern
me with any scheme like that.

>Btw, same locking issue with the MetadataCredentialResolver processing
>creds and storing them as XMLObject "annotations".  I can't see us doing
>that as pre-processing in any case, since it's external to the metadata
>providers; otherwise we're back to the issue of building key/cert/etc
>processing logic into layers where it probably doesn't belong.

Yes, true.

-- Scott




More information about the dev mailing list