Changes between Version 7 and Version 8 of Tiling


Ignore:
Timestamp:
Aug 7, 2013, 3:21:43 PM (11 years ago)
Author:
Dimitar Misev
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tiling

    v7 v8  
    3939
    4040[[Image(tiling_regular_[0-99_0-49]_index_rc_index.png)]]
     41
     42=== Caveat ===
     43
     44Regular tiling always creates full tiles according to the tiling scheme, even when an insert or update statement affect only a single pixel. The rest of the pixels in the tile are filled with 0. For example the query below will create an object of size `[0:99,0:49]`, rather than `[0:1,0:1]`:
     45{{{
     46insert into test
     47values
     48  marray x in [0:1,0:1] values 1c
     49tiling regular [0:99,0:49]
     50index rc_index
     51}}}
     52
     53This has important consequences as number of dimensions increase. Consider this case for example:
     54{{{
     55insert into test
     56values
     57  marray x in [0:999,0:999,0:0] values 1c
     58tiling regular [0:99,0:99,0:999]
     59index rc_index
     60}}}
     61Even though it inserts just one slice of size 1000x1000, this slice will initiate creation of 100 tiles of size 100x100x1000, i.e. 1000x more data will be actually inserted. Running partial updates later on as below will require constantly reading and writing the whole cube of 1000x1000x1000, even though each partial update is one slice of 1000x1000x1:
     62{{{
     63update test as m set m[*:*,*:*,1] assign marray x in [0:999,0:999] values 1c
     64update test as m set m[*:*,*:*,2] assign marray x in [0:999,0:999] values 1c
     65update test as m set m[*:*,*:*,3] assign marray x in [0:999,0:999] values 1c
     66...
     67}}}
     68In such a case, using [wiki:Performance#Tilecache tile caching] is particularly important for maintaining reasonable data ingestion speed.
    4169
    4270=== Aligned tiling ===