[MonetDB-users] Array database for large matrix

Hi All, I just tried monetdb with large tables (600,000 rows by 50,000 columns). There are two issues: 1. performance was low, it took about 4 seconds to insert a row of record when the number of columns was large (50,000). However it was pretty fast (about 100 rows per second) when the column number was small (for example, 10). 2. serious errors occurred very often. For example, after inserting random number of records (50, for example), monetdb started to report errors, like: monetdbd: internal error while starting mserver, please refer to the logs So I opened the log file, and the error was: 2012-09-14 08:26:36 ERR merovingian[13730]: client error: unknown or impossible state: 4 The Makefile (it is also contained in the attachments) listed below will start database server, create a database farm, create a database, create a big table and then insert records to the big table. Here it is: #=====start of Makefile===================== ROW_NUM=600000 COLUMN_NUM=50000 COLUMN_NUM_MINUS_ONE=$(shell echo $(COLUMN_NUM)-1 | bc) all: clean monetdbd create ./mydbfarm monetdbd start ./mydbfarm monetdb create test_big_db monetdb release test_big_db make create_table_sql -s > create_big_table.sql make insert_data_sql -s > insert_data.sql mclient -d test_big_db create_big_table.sql for i in $$(seq 1 $(ROW_NUM)); do \ mclient -d test_big_db insert_data.sql ;\ echo 'done inserting ' $$i ' rows'; \ done; mclient -d test_big_db -s "select * from test_big_table" > test_big_table.txt create_table_sql: @echo 'START TRANSACTION;' @echo 'CREATE TABLE "test_big_table" (' @for i in $$(seq 1 $(COLUMN_NUM_MINUS_ONE)); do \ echo ' "gen'$$i'" DOUBLE,'; \ done @echo ' "gen$(COLUMN_NUM)" DOUBLE' @echo ');' @echo 'COMMIT;' insert_data_sql: @echo -n 'INSERT INTO "test_big_table" VALUES (' ; @for j in $$(seq 1 $(COLUMN_NUM_MINUS_ONE)) ; do \ echo -n '0.323, '; \ done; @echo '0.324);'; insert_all_data_sql: @echo 'START TRANSACTION;' @for i in $$(seq 1 $(ROW_NUM)); do\ echo -n 'INSERT INTO "test_big_table" VALUES (' ;\ for j in $$(seq 1 $(COLUMN_NUM_MINUS_ONE)) ; do \ echo -n '0.323, '; \ done; \ echo '0.324);'; \ done @echo 'COMMIT;' clean: -killall mserver5 -killall monetdbd rm -rf ./mydbfarm rm -rf create_big_table.sql test_big_table.txt insert_data.sql #=====end of Makefile====================== Thank you very much ! Best wishes, Joshua Shuai Yuan On Thu, Sep 13, 2012 at 12:43 PM, Joshua Shuai Yuan < shuaiyuan.emory@gmail.com> wrote:

On 18-09-2012 15:39:03 -0400, Joshua Shuai Yuan wrote:
Your log shows plenty of problems and errors. I think this is the most important one (it's the first): 2012-09-14 08:26:33 ERR test_big_db[13761]: !FATAL: BBPextend: trying to extend BAT pool beyond the limit (819200) _______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list

On 26-09-2012 14:24:45 +0200, Fabian Groffen wrote:
We've increased the limit for the upcoming Oct2012 release. _______________________________________________ users-list mailing list users-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/users-list
participants (2)
-
Fabian Groffen
-
Joshua Shuai Yuan