Opened 12 years ago

Closed 5 years ago

#311 closed feature (duplicate)

Dynamic re-tiling of arrays — at Version 4

Reported by: Dimitar Misev Owned by: Dimitar Misev
Priority: major Milestone: Future
Component: rasserver Version: 8.3
Keywords: Cc: bbell
Complexity: Very Hard

Description (last modified by Dimitar Misev)

Multidimensional arrays in rasdaman are broken-down and stored as tiles (more info on tiling).

At the moment the tiling is static and can be only specified when the data is initially inserted into rasdaman. Furthermore, the tiling is global to the array, i.e. it is not possible to tile one part of the array using one strategy, and another with a different strategy.

The idea is to make tiling dynamic, so that an array or even parts of the array can be re-tiled at any time with a different tiling strategy. This could be part of the UPDATE statement in rasql:

update collName as c
set c[domainToBeTiled]
tiling ...

Once this is achieved, further enhancement would be to make the server self-aware of data access patterns. Rasdaman would keep statistics and learn what's the best tiling based on the queries that are typically run, and re-tile the data accordingly.

Change History (4)

comment:1 by Peter Baumann, 12 years ago

Complexity: Very Hard

the overall tiling choice affects the index used. Changing the tiling locally within an array object might compromise the indexing scheme. Hence, implementing such a feature might mean that the complete index has to be rebuilt, choosing an index which can accommodate all situations found after this update.

For example, we might always resort to an R+ Tree as the most common on - however, this may not be optimal. Another option could be to allow specifying an indexing scheme in the update statement, but this seems a little cumbersome, and we need to carefully ponder the effects.

comment:2 by Dimitar Misev, 11 years ago

Cc: sebrecht added

comment:3 by Dimitar Misev, 8 years ago

Cc: bbell added; sebrecht removed

comment:4 by Dimitar Misev, 5 years ago

Description: modified (diff)
Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.