Hi, Amihey,

I think that I have got rid of all the memory leaks I can spot now.
The updated code is in SVN Revision 642 (and tar ball marked 1.3.7).
Please given them a try and see if they fix the problem you are
experiencing.

Thanks for the test cases.

John


On 6/12/13 1:10 AM, amihay gonen wrote:
> Hi john , Thanks for your suggestion.
> 
> it is still failing , although i give this
> value fileManager.maxBytes=10240000000 in the configuration file.
> 
> I'm running the following command :
> c:\GitHub\fastbit\win\Release64\ibis  -b "shipdate:<binning
> precision=3/>" -c
> C:\GitHub\pythia\tests\fastbit\scripts\tpch_queries\ibis_config.txt -o c
> :\db\fastbit\q2.lst -v=5  -d C:\db\fastbit\xaa
> 
> 
> can it be a data problem ?
> 
> See output to screen :
> 
> FastBit ibis
> Log messages started on Wed Jun 12 11:06:47 2013
> 
> c:\GitHub\fastbit\win\Release64\ibis
> Options summary: batch mode, log level 5, building indexes
> 
> resource::read -- parsing configuration file
> "C:\GitHub\pythia\tests\fastbit\scripts\tpch_queries\ibis_config.txt"
> util::gatherParts -- examining C:\db\fastbit\xaa
> part::readMetaData -- opened C:\db\fastbit\xaa\-part.txt for reading
> part[xaa]::readRIDs -- the file manager failed to read file
> "C:\db\fastbit\xaa\-rids".  There is no RIDs.
> Constructed a part named xaa
> activeDir = "C:\db\fastbit\xaa"
> part: xaa (c:\GitHub\fastbit\win\Release\ardea -d c:\db\fastbit\xaa -b
> | -m
> orderkey:int,partkey:int,suppkey:int,linenumber:int,quantity:float,price:f
> loat,discount:float,tax:float,returnflag:text,linestatus:key,shipdate:int,commitdate:int,receipdate:int,shipinstuct:text,shipmode:key
> -t c:\db\row_dat
> a\xaa) with 5000000 rows, 15 columns
> Column list:
> commitdate:  (INT) [0, 0]
> discount:  (FLOAT) [0, 0.1]
> linenumber:  (INT) [1, 7]
> linestatus: linestatus = F, O, (KEY) []
> orderkey:  (INT) [1, 4.99882e+006]
> partkey:  (INT) [1, 2e+006]
> price:  (FLOAT) [901, 104949]
> quantity:  (FLOAT) [1, 50]
> receipdate:  (INT) [0, 0]
> returnflag: returnflag (STRING)
> shipdate:  (INT) [6.94303e+008, 9.12463e+008]
> shipinstuct: shipinstuct (STRING)
> shipmode:  (KEY) []
> suppkey:  (INT) [1, 100000]
> tax:  (FLOAT) [0, 0.08]
> 
> Partition[1]:
>   xaa
> 
> Warning -- column::actualMinMax can not handle column type TEXT, only
> support int, uint, float, double
> Warning -- column::actualMinMax can not handle column type TEXT, only
> support int, uint, float, double
> Warning -- column::actualMinMax can not handle column type CATEGORY,
> only support int, uint, float, double
> c:\GitHub\fastbit\win\Release64\ibis: start building indexes
> (nthreads=1, indexingOptions= {shipdate:<binning precision=3/>}) ...
> index::create -- attempt to read index type #21 from
> C:\db\fastbit\xaa\commitdate.idx for column xaa.commitdate
> direkte[commitdate]::read(0000000001FD18B0) finished reading index
> header with nrows=5000000 and bits.size()=1
> index::create -- the direct index for column xaa.commitdate was read
> from C:\db\fastbit\xaa in 0 sec(CPU), 0.000609086 sec(elapsed)
> The direct bitmap index for commitdate contains 1 bit vector
> 
> 0       5000000 44
> 
> 
> index::create -- attempt to read index type #0 from
> C:\db\fastbit\xaa\discount.idx for column xaa.discount
> bin[xaa.discount]::ctor -- initialization completed with 13 bins for
> 5000000 rows from a storage object @ 0000000001FD8E40 offset 8
> index::create -- the bin index for column xaa.discount was read from
> C:\db\fastbit\xaa in 0.003 sec(CPU), 0.00300951 sec(elapsed)
> index (equality encoded, binned) for xaa.discount contains 13
> bitvectors for 5000000 objects
> There are a total 0 set bits out of 5000000 bits -- there are probably
> NULL values in column discount
>  ...    (12 omitted)
> 
> index::create -- attempt to read index type #21 from
> C:\db\fastbit\xaa\linenumber.idx for column xaa.linenumber
> direkte[linenumber]::read(0000000001FD8EA0) finished reading index
> header with nrows=5000000 and bits.size()=8
> index::create -- the direct index for column xaa.linenumber was read
> from C:\db\fastbit\xaa in 0 sec(CPU), 0.000524216 sec(elapsed)
> The direct bitmap index for linenumber contains 8 bit vectors
> 
> 
> 
> dictionary::read(C:\db\fastbit\xaa\linestatus.dic) -- duration: 0
> sec(CPU), 0.000130265 sec(elapsed)
> direkte[linestatus]::read(C:\db\fastbit\xaa\linestatus.idx) finished
> reading index header with nrows=5000000 and bits.size()=3
> index::create -- attempt to read index type #0 from
> C:\db\fastbit\xaa\orderkey.idx for column xaa.orderkey
> bin[xaa.orderkey]::ctor -- initialization completed with 10002 bins
> for 5000000 rows from a storage object @ 0000000001FD8F00 offset 8
> index::create -- the bin index for column xaa.orderkey was read from
> C:\db\fastbit\xaa in 0.005 sec(CPU), 0.00417399 sec(elapsed)
> index (equality encoded, binned) for xaa.orderkey contains 10002
> bitvectors for 5000000 objects
> 0: 0    (..., 0)        [1.79769e+308, -1.79769e+308]
> 1: 501  [0, 512)        [1, 487]
> 2: 497  [512, 999)      [512, 998]
> 3: 500  [999, 1510)     [999, 1509]
> 4: 500  [1510, 1991)    [1510, 1990]
> 5: 502  [1991, 2471)    [1991, 2470]
> 6: 499  [2471, 2976)    [2471, 2951]
> 7: 501  [2976, 3461)    [2976, 3460]
> 8: 495  [3461, 3937)    [3461, 3936]
> 9: 501  [3937, 4455)    [3937, 4454]
> 10: 501 [4455, 4961)    [4455, 4960]
> 11: 497 [4961, 5446)    [4961, 5445]
> 12: 500 [5446, 5985)    [5446, 5984]
> 13: 504 [5985, 6466)    [5985, 6465]
> 14: 500 [6466, 6947)    [6466, 6946]
> 15: 500 [6947, 7491)    [6947, 7490]
> 16: 502 [7491, 8007)    [7491, 8006]
> 17: 500 [8007, 8513)    [8007, 8512]
> 18: 505 [8513, 8998)    [8513, 8997]
> 19: 499 [8998, 9536)    [8998, 9511]
> 20: 501 [9536, 10053)   [9536, 10052]
> 21: 502 [10053, 10561)  [10053, 10560]
> 22: 498 [10561, 11043)  [10561, 11042]
> 23: 502 [11043, 11557)  [11043, 11556]
> 24: 499 [11557, 12037)  [11557, 12036]
> 25: 500 [12037, 12513)  [12037, 12512]
> 26: 501 [12513, 12999)  [12513, 12998]
> 27: 498 [12999, 13474)  [12999, 13473]
> 28: 502 [13474, 13953)  [13474, 13952]
> 29: 496 [13953, 14435)  [13953, 14434]
> 30: 502 [14435, 14949)  [14435, 14948]
> 31: 498 [14949, 15491)  [14949, 15490]
>  ...    (9970 omitted)
> 
> Warning -- column::actualMinMax can not handle column type TEXT, only
> support int, uint, float, double
> index::create -- attempt to read index type #0 from
> C:\db\fastbit\xaa\shipdate.idx for column xaa.shipdate
> bin[xaa.shipdate]::ctor -- initialization completed with 2527 bins for
> 5000000 rows from a storage object @ 0000000001FD8F60 offset 8
> index::create -- the bin index for column xaa.shipdate was read from
> C:\db\fastbit\xaa in 0.002 sec(CPU), 0.000822641 sec(elapsed)
> index (equality encoded, binned) for xaa.shipdate contains 2527
> bitvectors for 5000000 objects
> There are a total 0 set bits out of 5000000 bits -- there are probably
> NULL values in column shipdate
>  ...    (2526 omitted)
> 
> Warning -- column::actualMinMax can not handle column type TEXT, only
> support int, uint, float, double
> Warning -- column::actualMinMax can not handle column type CATEGORY,
> only support int, uint, float, double
> dictionary::read(C:\db\fastbit\xaa\shipmode.dic) -- duration: 0
> sec(CPU), 0.000180002 sec(elapsed)
> direkte[shipmode]::read(C:\db\fastbit\xaa\shipmode.idx) finished
> reading index header with nrows=5000000 and bits.size()=2467
> index::create -- attempt to build a new index with spec `default' on
> data from directory C:\db\fastbit\xaa for column xaa.suppkey
> direket[xaa.suppkey]::construct0<int> -- starting to process
> C:\db\fastbit\xaa\suppkey
> Started at 11:06:47.90
> Ran for 4930 ms
> Press any key to continue . . .
> 
> 
> On Wed, Jun 12, 2013 at 9:23 AM, K. John Wu <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     Hi, Amihay,
> 
>     Looks like you have run out of memory while building the index for
>     shipping date and the cleanup function failed to do its job, which led
>     to the query evaluation procedure to fail.
> 
>     A way to work around this would be to build the index in shipping date
>     before doing the query.  You can try something like
> 
>      ibis -b "shipdate:<binning precision=3/>"
> 
>     John
> 
> 
>     On 6/10/13 6:09 AM, amihay gonen wrote:
>     > Hi , I'm trying to use fastbit ibis 64bit.
>     >
>     > I've allocate 5G to fastbit (use memory mapped file)
>     > should be enough , but it still failed ,
>     >
>     > What am i doing wrong ?
>     >
>     > see bellow for the output
>     >
>     >
>     > c:\GitHub\fastbit\win\Release64\ibis
>     > Options summary: batch mode, log level 3, skipping estimation
>     >
>     > resource::read -- parsing configuration file
>     >
>     "C:\GitHub\pythia\tests\fastbit\scripts\tpch_queries\ibis_config.txt"
>     > resource::read -- parsing configuration file
>     >
>     "C:\GitHub\pythia\tests\fastbit\scripts\tpch_queries\ibis_config.txt"
>     > fileManager initialization complete -- maxBytes=5242880000,
>     > maxOpenFiles=60
>     > util::gatherParts -- examining C:\db\fastbit\xaa
>     > Constructed a part named xaa
>     > activeDir = "C:\db\fastbit\xaa"
>     >   5000000 rows and 15 columns
>     > util::gatherParts -- examining C:\db\fastbit\xab
>     > Constructed a part named xab
>     > activeDir = "C:\db\fastbit\xab"
>     >   5000000 rows and 15 columns
>     > Partitions[2]:
>     >   xaa
>     >   xab
>     > Query[1]:
>     >   SELECT returnflag,linestatus,sum(quantity) as
>     > sum_qty,sum(price*(1-discount)) as
>     > sum_disc_price,sum(price*(1-discount)*(1+tax)) as sum_charge,avg
>     > antity) as avg_qty, avg(price) as avg_price, avg(discount) as
>     > avg_disc, count(*) as count_order  WHERE shipdate <= 904608000 ;
>     >
>     > liga -- constructed table T-xaa (a simple list of partitions:
>     xaa and
>     > xab) from a list of 2 data partitions, with 15 columns and
>     10000000 rows
>     > tableSelect -- processing "SELECT
>     returnflag,linestatus,sum(quantity)
>     > as sum_qty,sum(price*(1-discount)) as
>     > sum_disc_price,sum(price*(1-discount)*(
>     > ax)) as sum_charge,avg(quantity) as avg_qty, avg(price) as
>     avg_price,
>     > avg(discount) as avg_disc, count(*) as count_order  FROM T-xaa WHERE
>     > shipdate
>     >  904608000 ;"
>     > selectClause::fillNames -- select clause internal details:
>     >  low-level expressions (names_[8], aggr_[8], atms_[8]):
>     >   0:    returnflag,     returnflag
>     >   1:    linestatus,     linestatus
>     >   2:    __2,    SUM(quantity)
>     >   3:    __3,    SUM((price * (1 - discount)))
>     >   4:    __4,    SUM(((price * (1 - discount)) * (1 + tax)))
>     >   5:    __5,    COUNT(*)
>     >   6:    __6,    SUM(price)
>     >   7:    __7,    SUM(discount)
>     >  high-level expressions (xnames_[9], xtms_[9]):
>     >   0:    returnflag,     returnflag
>     >   1:    linestatus,     linestatus
>     >   2:    sum_qty,        SUM(quantity)
>     >   3:    sum_disc_price, SUM((price * (1 - discount)))
>     >   4:    sum_charge,     SUM(((price * (1 - discount)) * (1 + tax)))
>     >   5:    avg_qty,        (SUM(quantity) / COUNT(*))
>     >   6:    avg_price,      (SUM(price) / COUNT(*))
>     >   7:    avg_disc,       (SUM(discount) / COUNT(*))
>     >   8:    count_order,    COUNT(*)
>     > countQuery::setWhereClause accepted new query conditions
>     "shipdate <=
>     > 9.04608e+008"
>     > Constructed in-memory data partition hW04N1 -- filter::sift2S(SELECT
>     > returnflag,linestatu ... FROM 2 data partitions WHERE shipd ...) --
>     > with 8 col
>     > s
>     > filter::sift2S(SELECT returnflag,linestatu ... FROM 2 data
>     partitions
>     > WHERE shipd ...) -- processing data partition xaa
>     > countQuery assigned data partition xaa
>     > countQuery::evaluate -- start timer ...
>     > bin[xaa.shipdate]::ctor -- initialization completed with 2527
>     bins for
>     > 5000000 rows from a storage object @ 0000000001F2C5F0 offset 8
>     > index::create -- the bin index for column xaa.shipdate was read from
>     > C:\db\fastbit\xaa in 0.002 sec(CPU), 0.00239134 sec(elapsed)
>     > countQuery::evaluate -- Select count(*) From xaa Where shipdate <=
>     > 9.04608e+008 --> 4927856
>     > countQuery::evaluate -- duration: 0.009 sec(CPU), 0.00776298
>     sec(elapsed)
>     > part[xaa]::calculate - starting to evaluate "(price * (1 -
>     discount))"
>     > with mask (4927856 out of 5000000)
>     > part[xaa]::calculate -- evaluating (price * (1 - discount)) on
>     4927856
>     > records (total: 5000000) took 0.146679 sec elapsed time and produced
>     > 4927856
>     > lues
>     > bord[hW04N1]::append -- adding 4927856 elements to column __3 from
>     > (price * (1 - discount))
>     > part[xaa]::calculate - starting to evaluate "((price * (1 -
>     discount))
>     > * (1 + tax))" with mask (4927856 out of 5000000)
>     > part[xaa]::calculate -- evaluating ((price * (1 - discount)) * (1 +
>     > tax)) on 4927856 records (total: 5000000) took 0.222345 sec elapsed
>     > time and pr
>     > ced 4927856 values
>     > bord[hW04N1]::append -- adding 4927856 elements to column __4 from
>     > ((price * (1 - discount)) * (1 + tax))
>     > text[xaa.returnflag]::selectStrings -- duration: 0.597 sec(CPU),
>     > 0.597355 sec(elapsed)
>     > bundles::ctor created a colValues for "returnflag" as cols[1] with
>     > size 4927856
>     > bundles::ctor created a colValues for "linestatus" as cols[2] with
>     > size 4927856
>     > bundles::ctor created a colValues for "quantity" as cols[3] with
>     size
>     > 4927856
>     > bundles::ctor created a colValues for "(price * (1 - discount))" as
>     > cols[4] with size 4927856
>     > bundles::ctor created a colValues for "((price * (1 - discount))
>     * (1
>     > + tax))" as cols[5] with size 4927856
>     > bundles::ctor created a colValues for "price" as cols[6] with
>     size 4927856
>     > bundles::ctor created a colValues for "discount" as cols[7] with
>     size
>     > 4927856
>     > Constructed in-memory data partition ELH5k -- Select returnflag,
>     > linestatus, SUM(quantity), SUM((price * (1 - discount))),
>     SUM(((price
>     > * (1 - disco
>     > )) * (1 + tax))), COUNT(*), SUM(price), SUM(discount) From hW04N1 --
>     > with 4 rows and 8 columns
>     > filter::sift2S(SELECT returnflag,linestatu ... FROM 2 data
>     partitions
>     > WHERE shipd ...) -- processing data partition xab
>     > countQuery changing data partition from xaa to xab
>     > countQuery::evaluate -- start timer ...
>     > column[xab.shipdate](INT)::index::mapValues -- generated histogram
>     > (2526 distinct values)
>     > fileManager::storage::ctor failed malloc(112), will attempt to free
>     > some memory
>     > fileManager::storage::ctor failed malloc(28672), will attempt to
>     free
>     > some memory
>     > Warning -- column[shipdate]::bin::ctor encountered an exception,
>     > cleaning up ...
>     > Warning -- index::create(shipdate) received an std::exception -- bad
>     > allocation
>     > Warning -- index[xab.shipdate]::create failed to create an index of
>     > type default
>     > column[xab.shipdate]::evaluateRange(shipdate <= 9.04608e+008)
>     received
>     > a std::exception -- bad allocation
>     > part::doScan -- evaluating shipdate <= 9.04608e+008 on 5000000 int
>     > values (total: 5000000) took 0.0192468 sec elapsed time and produced
>     > 4928205 hit
>     > countQuery::evaluate -- Select count(*) From xab Where shipdate <=
>     > 9.04608e+008 --> 4928205
>     > countQuery::evaluate -- duration: 0.523 sec(CPU), 0.523351
>     sec(elapsed)
>     > part[xab]::calculate - starting to evaluate "(price * (1 -
>     discount))"
>     > with mask (4928205 out of 5000000)
>     > clearing data partition ELH5k
>     > clearing data partition hW04N1
>     > filter::sift2S(SELECT returnflag,linestatu ... FROM 2 data
>     partitions
>     > WHERE shipd ...) -- duration: 3.897 sec(CPU), 3.89773 sec(elapsed)
>     > Warning -- table::select absorbed a std::exception (bad allocation),
>     > will return a nil pointer
>     > tableSelect:: select(returnflag,linestatus,sum(quantity) as
>     > sum_qty,sum(price*(1-discount)) as
>     > sum_disc_price,sum(price*(1-discount)*(1+tax)) as su
>     > harge,avg(quantity) as avg_qty, avg(price) as avg_price,
>     avg(discount)
>     > as avg_disc, count(*) as count_order , shipdate <= 904608000 ;)
>     failed
>     > on ta
>     >  T-xaa
>     > c:\GitHub\fastbit\win\Release64\ibis -- total CPU time 3.913 s,
>     total
>     > elapsed time 3.9138 s
>     > clearing data partition xaa
>     > clearing data partition xab
>     > Cleaning up the file manager
>     > Total pages accessed through read(unistd.h) is estimated to be 29351
>     > fileManager::clear -- starting ...
>     > --- Mon Jun 10 16:04:29 2013
>     > The number of memory mapped files is 1. (max = 60)
>     > file name: C:\db\fastbit\xab\shipdate
>     > storage @ 0000000001F2C410, 00000000027E0000, 1st 32 bits =
>     33345660,
>     > 1st 64 bits = 3399cbd033345660
>     > file descriptor 00000000000005E0
>     > fmap handle     00000000000005E4
>     > base address    00000000027E0000
>     > mapped          y       opened at       Mon Jun 10 16:04:27 2013
>     >  last used at    Mon Jun 10 16:04:27 2013
>     > # of bytes      20000000        # of past acc   1       # of
>     active acc 0
>     > Size of all mapped files is 20,000,000
>     >
>     > The number of files read into memory is 0
>     >
>     > The total size of all files read into memory is 0
>     > Size of all named storages is 20,000,000
>     > Size of all unnamed storages is 0
>     > The total size of all named and unnamed storages is 20,000,000
>     > The prescribed maximum size is 5,242,880,000
>     > Number of pages accessed (recorded so far) is 29351 (page size =
>     8192)
>     >
>     >
>     >
>     > --- Mon Jun 10 16:04:29 2013
>     > The number of memory mapped files is 0. (max = 60)
>     > Size of all mapped files is 0
>     >
>     > The number of files read into memory is 0
>     >
>     > The total size of all files read into memory is 0
>     > Size of all named storages is 0
>     > Size of all unnamed storages is 0
>     > The total size of all named and unnamed storages is 0
>     > The prescribed maximum size is 5,242,880,000
>     > Number of pages accessed (recorded so far) is 29351 (page size =
>     8192)
>     >
>     >
>     > fileManager decommissioned
>     > Started at 16:04:25.25
>     > Ran for 4000 ms
>     > Press any key to continue . . .
>     >
>     >
>     > _______________________________________________
>     > FastBit-users mailing list
>     > [email protected] <mailto:[email protected]>
>     > https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
>     >
> 
> 
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users

Reply via email to