Some questions about SciDB debug, storage?


#1

Hi,
I have some questions about SciDB as follows:

  1. I have see the issue http://www.scidb.org/forum/viewtopic.php?f=13&t=1259 ,and I have a question about that if I execute like " select … where VA> 22 and VA < 9999" statement, what’s the SciDB storage do ? I know SciDB can quickly find the cell by block partitioning algorithm , but how does SciDB determine the position of VA’s value( =22 or 9999) ? sequential scans in the chunks ? I mean, how does SciDB storage find the value’s(such as 22 or 999) position ?

  2. I compiled the SciDB source (14.12) with SciDB_Build_Instructions_14.12, but I do not know how I will do to debug the SciDB source because I am new to debug. Could you please give me some advise? maybe examples that debug the SciDB?
    when I use gdb it display some informations:
    “no debugging symbol found…” so I do not know if there is something like “–enable-debug” parameter when compile the SciDB ?

Thanks. :smile:


#2

##############################

Debugging a single scidb instance

##############################

ps -ef | grep 000/0
Look for pid with parent value (this value is below)

darkdust.net/files/GDB%20Cheat%20Sheet.pdf

sudo gdb --pid=

(gdb) break /ssd/sciidb/scidbtrunk/src/query/QueryProcessor.cpp:350
(gdb) c

@breakpoint

(gdb) select-frame 5
(gdb) info locals
(gdb) info args

p state._data // to print the _data variable in the state object

##############################

Debugging a scidb core dump

##############################

sudo gdb /ssd/scidb/scidbtrunk/stage/install/bin/scidb /home/mcorbett/core.7023

##############################

iquery debug

##############################
sudo gdb /ssd/scidb/scidbtrunk/stage/install/bin/iquery
(gdb) r <<< run
Ctrl+C <<< when at the AFL% prompt
(gdb) break /ssd/scidb/scidbtrunk/src/network/BaseConnection.h:320

(gdb) r


#3
  1. I have see the issue scidb.org/forum/viewtopic.php?f=13&t=1259 ,and I have a question about that if I execute like " select … where VA> 22 and VA < 9999" statement, what’s the SciDB storage do ? I know SciDB can quickly find the cell by block partitioning algorithm , but how does SciDB determine the position of VA’s value( =22 or 9999) ? sequential scans in the chunks ? I mean, how does SciDB storage find the value’s(such as 22 or 999) position ?

The answer depends on weather VA is an attribute or a dimension.
VA=dimension: The chunk’s data is selected for only the values in the dimension that match the selection criteria.

VA=attribute: Each chunk is sequentially scanned to find the values for VA that match the selection criteria.

For further information please see: trac.scidb.net/wiki/public/QuickAFLTour


#4
  1. Note: If VA is a dimension, by default the query currently will use the filter operator which sequentially scans. The user must explicitly request the between operator in order to get the behavior previously described.