geowave icon indicating copy to clipboard operation
geowave copied to clipboard

Integration of GWC & visibilities

Open chrisbennight opened this issue 11 years ago • 2 comments

The same query, made by users with different authorizations, and result in different sets of data. GWC has a concept of this with CQL filter strings (different query parameters can cause this as well).

We need to figure out how to create/extend this type of capability to visibilities. Other considerations would be storing the distinct sets of visiblities for a data set in the statistics table; this would put an upper cap on the number of distinct cache sets - not every possible one determined by user authorizations, but rather just each possible permutation in the data set.

chrisbennight avatar Feb 04 '15 23:02 chrisbennight

maybe the easy approach is to just translate the user's auths to a CQL filter up front in a servlet filter, or at the beginning of the request chain and then in our geotools data reader just translate that CQL back to auths...then anything geoserver does in between just sees it as an additional filter including gwc.

rfecher avatar Feb 05 '15 00:02 rfecher

So leverging the CQL parameter handling on GWC is a pretty reasonable idea. That said, I think we will probably need to put together an accumulo backed GWC store as well - since ultimately we want the tiles access controlled per whatever they correspond to.

Only downside is with a simple implementation we would end up duplicating tiles per visibility level. i.e. if I there were two sets of auths - ['A'], and ['A','B'] we would store those as two complete tile sites (if they were fully seeded). In reality, if we looked at each tiles, it's likely some of the ['A', 'B'] tiles would be equivalent to the ['A'] tiles. We could probably implement something similar to the stats rollup with per visibility permutation diff sets only - though it would be slightly different in that we would need to detect duplicates (hash?), and "roll down" to the intersected set of auths. I think this wold probably not be worthwile though - or something way way in the future. (since it's different enough from the stats implementation that it's not straightforward).

But I think we will need to do a basic naieve GWC -> Accumulo tile store (with per tile visibilities)

chrisbennight avatar Feb 13 '15 02:02 chrisbennight