You have 2 queries that are probably blocking everything. They are in
the "update" state.
| 30 | root | localhost | bsm  | Query   |  138 | update | insert into
upbcgww03
values("/var/tmp/zypp.067D9R/zypp-trusted-kr9rzhrO","trustdb.gpg",1200,"b18a1a

| 30 | root | localhost | bsm  | Query   |  138 | update | insert into
upbcgww03
values("/var/tmp/zypp.067D9R/zypp-trusted-kr9rzhrO","trustdb.gpg",1200,"b18a1a

But regardless, it doesn't matter which database you use or table
type, you are not going to get decent performance by doing many, many
single inserts. Even your selects are going to hurt things. To process
a file with only 100 lines, you're are going to do between 100 and 200
queries (100 selects+100 possible inserts).
You should try to batch your selects so you get a bunch of matches you
can filter on, rather than just one. Your inserts you should
absolutely use bulk inserts. Just build up a list of values that need
to be saved and when you hit 100 (or some other batch size), bulk
insert into the database and bulk write to the file.

Brent Baisley

On Wed, May 6, 2009 at 12:02 PM, Andrew Carlson <naclos...@gmail.com> wrote:
> Any ideas about this?  It's very aggravating and I have no idea how to debug
> this any further.  Thanks.
>
> Hi.
>
> I am having a problem with a program I am writing.  The program reads a
> file, checks an object file, and if the record doesn't exist, it inserts to
> a node table (one table per node) and the objects file.  I wrote a C program
> to do this, with multiple processes running at one time.  I have 15 odd
> nodes, with 40 files (one file per filesystem on the 15 nodes).  I kick of
> 40 processes at once.  It runs for some time, and hangs with the following
> process list (not at the same point every time):
>
> mysql> show processlist;
> +----+------+-----------+------+---------+------+--------+------------------------------------------------------------------------------------------------------+
> | Id | User | Host      | db   | Command | Time | State  |
> Info
> |
> +----+------+-----------+------+---------+------+--------+------------------------------------------------------------------------------------------------------+
> |  2 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("aztcd.ko",33246,"ed2c466b200d3fb38420f23c73b31da6")
> |
> |  3 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("ib_mad.ko",41540,"d1513ed2dafa6ea1ec53ca31f16a6ea6")
> |
> |  4 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("ib_ucm.ko",23704,"1df574fe480402cd1baa02bfe53dea25")
> |
> |  5 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("pam_make.so",4992,"9ecb181ecd67bd51f9d1c47381a02e8f")
> |
> |  6 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("istallion.ko",38828,"c0f89798d35eed8bb447465f1771c13c")
> |
> | 10 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("CIM_MemoryCheck.CIM_Check",11758,"1607681b1648d7ef2e105dffc59f7122")
> |
> | 12 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("i2c-amd756.ko",8120,"2106913cdc436edbfbd79f4638f0f266")
> |
> | 15 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("ice_not.hpp",777,"b3da4cef03bb7ede418858da3e74d29f")
> |
> | 16 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("hand-pub.html",4069,"e03dee2afd9ddb0460307f58e01599a9")
> |
> | 17 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("081107035101.dat",3969,"8aac4f8e16c8c450cfb14e3c573d62e6")
> |
> | 19 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("iptable_nat.o",29116,"a156a3cdb6a9bfc85bad4c6016a90d70")
> |
> | 20 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("SYS_LC_MESSAGES",63,"9e8cf9be98236c7327c479ea65447570")
> |
> | 18 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("proddon_backup.070512154501.log",2122,"917485542f6cf8afccf610905de809ba"
> |
> | 22 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("whfwdata6.htm",7283,"50337d6d9d0fa796aa7ebcc3edd26e0a")
> |
> | 23 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("xfrm6_mode_transport.ko",7748,"f484c1aef7174af8852113b2ced0aa9e")
> |
> | 24 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("stock_bluetooth.png",2490,"2c0325756b662464839152a62f78ab8a")
> |
> | 25 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("231.lst",163,"31a38641a00279721cbfc0eaacabd6d0")
> |
> | 26 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("DEPEND",289,"0049695fe84c6117e007623d9db38ea8")
> |
> | 27 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("kioslaverc",36,"fba9d778b2bd00fddd07d9ff4b7c8afd")
> |
> | 28 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("49c1e690.000",7516,"c23080a03025e577c5641d1631dbf8dd")
> |
> | 29 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("eurotechwdt.ko",25572,"3bba9a747bfa6179c8db168f8feaa626")
> |
> | 30 | root | localhost | bsm  | Query   |  138 | update | insert into
> upbcgww03
> values("/var/tmp/zypp.067D9R/zypp-trusted-kr9rzhrO","trustdb.gpg",1200,"b18a1a
> |
> | 33 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("ip6table_raw.ko",8360,"71f3981483a24326569d3ef654479a03")
> |
> | 34 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("libntcp9.a",48626,"bcff3480b92854469d7cfd34fb6bf525")
> |
> | 35 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("UpdatePOStatus.sh.log.03270855",578,"bd7e69c46efff7b77f68f4ad21102a4e")
> |
> | 36 | root | localhost | bsm  | Query   |  138 | update | insert into
> objects
> values("oldprinterids",15685,"d6ba317977521647fe19e93f0e4fba45")
> |
> | 37 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("3e10557d.000",33272,"d8bce12c08102840d2baf18539860152")
> |
> | 38 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("iso_2022_kr.py",994,"285db08e691745afd040d4f325c1329f")
> |
> | 39 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("adi.ko",30304,"6ec1b31cd87dc5650fc3036be973ad9e")
> |
> | 40 | root | localhost | bsm  | Query   |  138 | Locked | insert into
> objects
> values("get_prot_orderinfo_prc.sql",1813,"80c1b368e9be91d2ab6634190a7c47be")
> |
> | 42 | root | localhost | NULL | Query   |    0 | NULL   | show
> processlist
> |
> +----+------+-----------+------+---------+------+--------+------------------------------------------------------------------------------------------------------+
> 31 rows in set (0.00 sec)
>
> The objects table:
>
> CREATE TABLE `objects` (
>  `filename` varchar(256) COLLATE latin1_bin DEFAULT NULL,
>  `filesize` bigint(20) unsigned DEFAULT NULL,
>  `hash` varchar(32) COLLATE latin1_bin DEFAULT NULL,
>  UNIQUE KEY `nsh` (`filename`,`filesize`,`hash`)
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
>
> The files table (one per node):
>
> CREATE TABLE `tsweb` (
>  `path` varchar(4096) COLLATE latin1_bin DEFAULT NULL,
>  `filename` varchar(256) COLLATE latin1_bin DEFAULT NULL,
>  `filesize` bigint(20) unsigned DEFAULT NULL,
>  `hash` varchar(32) COLLATE latin1_bin DEFAULT NULL,
>  `backuptime` datetime DEFAULT NULL,
>  `status` enum('Active','Inactive','Deleted') COLLATE latin1_bin DEFAULT
> NULL,
>  `objectid` bigint(20) unsigned DEFAULT NULL
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
>
> I will post the program if needed, but the basic gist of it is:
>
> while(data)
>     select 1 where fields=data
>     if mysql_num_rows==0
>          insert data into objects
>          insert data into files
>     else
>          insert data into files
>  done
>
> I have tried 5.1.31. 5.1.32. 5.1.33. 6.0.9, 6.0.10, myisam and innodb.  I
> tried Maria and Falcon, but both were too slow at this point.
>
> Thanks for any suggestions on how to debug this.
>
> --
> Andy Carlson
> ---------------------------------------------------------------------------
> Gamecube:$150,PSO:$50,Broadband Adapter: $35, Hunters License: $8.95/month,
> The feeling of seeing the red box with the item you want in it:Priceless.
>

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to