[pdal] PDAL Oracle small benchmark

Oscar Martinez Rubi o.martinezrubi at tudelft.nl
Fri Apr 17 09:33:12 PDT 2015


Hi,

After the latest fixs (thanks Howard, Connor, Andrew and the rest of 
PDAL guys!) in OCI writer and reader and the fact that I found out about 
laz-perf I have done this new small test with PDAL and Oracle to see how 
the two systems behave with different configurations. I tried 
with/without laz-perf, with point/dimension major, with all columns or 
only xyz, with/without BLOB compression and with/without offsets and 
scales (i.e. 64 or 32 bit per coord).

There are 32 combinations, but since lazperf requires dimension major, 
there 24 valid "only" combinations. For each one I have loaded a single 
LAS file with 20M points (size 380 MB, 38MB in LAZ) with the PDAL OCI 
writer and I have queried a small rectangle (80000 points) with PDAL OCI 
reader. I have done the query twice.

 From the attached table is clear that using lazperf is very good in 
size terms (almost factor 2 compared to LAZ), loading time and query 
time!. The best approach is to use lazperf, scales and offsets and 
without BLOB compression.

Regarding the loading times:
  - Adding BLOB compression generally makes the loading slower.
  - Using all columns instead of only xyz also makes it slower.
  - Adding offsets makes it faster.
  - Using lazperf does not seem to have a visible effect in loading time.
  - The point/dimension major doe snot have any visible effect

Regarding the queries the only difference seems to be if using all 
columns or only xyz. In general by having only xyz instead of all 
columns the queries are faster.

Regarding the size/storage the are some strange issues in the numbers of 
the table:

  - When lazperf is used and offsets are used it does not matter in 
storage terms whether I specify BLOB compression or not (I guess that 
BLOB compression just can not squeeze the data anymore, right? or maybe 
it is somehow ignored?)

  - When lazperf is used and offsets are not used the BLOB compression 
actually increases the size (Seems like the BLOB compression messes up 
what lazperf did, strange though...)

  - When lazperf is used it does not matter in storage terms whether I 
specify only x,y,z or all columns. Why is this?

  - When lazperf is not used, the difference in size between point and 
dimension orientation is only visible when using all the columns, BLOB 
compression and offsets

  - When lazperf is not used and only xyz are used the BLOB compression 
offsers same compression factor that using offsets but in twice the 
time, both 278MB. Combining both gives 212MB.

  - When lazperf is not used and all columns are used the BLOB 
compression gives better compression factor that using offsets (343MB vs 
538MB).

  - If BLOB compression is used and offset are not used the lazperf 
compression adds nothing. In fact in this case and having only xyz using 
lazperf is actually worse than not using it (which makes me thing that 
in lazperf all the columns are stored even if you do not want it)

I am aware that the estimation of the size in oracle can be tricky. I 
sum the size of the user segments related to my "blocks" table, i.e.:

SELECT sum(bytes/1024/1024) size_in_MB
FROM user_segments
WHERE (segment_name LIKE : 'blocks%'
    OR segment_name in (
       SELECT segment_name
       FROM user_lobs
       WHERE table_name LIKE : 'blocks%'
       UNION
       SELECT index_name
       FROM user_lobs
       WHERE table_name LIKE : 'blocks%'
       )
);

Kind Regards,

O.
-------------- next part --------------
lazperf dimOri  Cols    BlobCom Offsets LTime   Size    QTime1  Qtime2
True	False	xyz	False	True	30.45	82	0.4	0.37
True	False	all	False	True	41.47	82	0.74	0.67

True	False	xyz	True	True	37.05	82	0.84	0.38
True	False	all	True	True	41.16	82	0.7	0.66

True	False	xyz	False	False	34.45	277	0.44	0.41
True	False	all	False	False	46.26	277	0.72	0.69

True	False	xyz	True	False	45.83	343	0.45	0.41
True	False	all	True	False	50.88	343	1.76	0.72


False	True	xyz	True	True	46.09	212	0.39	0.36
False	False	xyz	True	True	48.36	212	0.38	0.36

False	True	xyz	False	True	28.53	278	0.38	0.42
False	False	xyz	False	True	27.24	278	0.37	0.34

False	True	xyz	True	False	57.39	278	0.39	0.35
False	False	xyz	True	False	76.13	278	0.38	0.42

False	True	all	True	True	57.24	306	0.63	1.44
False	False	all	True	True	58.61	278	0.62	0.59

False	True	all	True	False	68.81	343	0.63	0.6
False	False	all	True	False	68.49	343	0.68	0.6

False	True	all	False	True	37.45	538	0.71	0.6
False	False	all	False	True	43.09	538	0.62	0.79

False	True	xyz	False	False	37.66	538	0.38	0.35
False	False	xyz	False	False	27.7	538	0.41	0.35

False	True	all	False	False	49.74	733	0.63	0.64
False	False	all	False	False	34.31	733	0.68	1.46



More information about the pdal mailing list