Performance of is_null using different representations

49 views
Skip to first unread message

Zhichao Liang

unread,
May 14, 2013, 11:43:42 PM5/14/13
to supersonic-...@googlegroups.com
Hi,

  For the performace of is_null using different representations, I can see a comment in bit_pointer.h says that using simple booleans gets better
performance results than bit representation. I just wonder how much better of using simple booleans instead of bit representation. Any accurate
test result can prove that  claim? Considering the space efficiency, I'd like to use bit representation if it doesn't perform too bad.

Best Regards!

Zhichao

Piotr Tabor

unread,
May 17, 2013, 1:29:37 PM5/17/13
to Zhichao Liang, supersonic-...@googlegroups.com
Hi Zhichao

When we were doing this experiments, we were optimizing performance of functions like IF(IS_NULL(x), y, z). 
The problem here is that regular bool columns in views are not represented as bit-encoding (and this was found as a lot of effort requiring task). 
In this context IS_NULL call required conversion from bits to bytes (expansion) that seems to introduce slowness (we didn't implement that with SSE at that time). 

Piotr


--
You received this message because you are subscribed to the Google Groups "Supersonic Query Engine Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to supersonic-query-...@googlegroups.com.
To post to this group, send an email to supersonic-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Milosz Tanski

unread,
May 17, 2013, 2:43:03 PM5/17/13
to Piotr Tabor, Zhichao Liang, supersonic-...@googlegroups.com
Zhicaho,

We're not using any of the SuperSonic serialization facilities instead
we have our own DiskScan and IndexScan operations that use our own
serialization (columns stored in compressed extents, ala many
filesystems). However, for bools (and nulls) we store store as an
"index" ... eg, we're using the compressed bitmap encoding that we use
in indexing. If want to use bit-vectors you might want to start with
similar technique.

Best,
- Milosz
Reply all
Reply to author
Forward
0 new messages