tag:blogger.com,1999:blog-3043493300793589377.post765226865821283814..comments2024-03-16T04:31:42.624-07:00Comments on Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity serverYoshinori Matsunobuhttp://www.blogger.com/profile/14180479977952026421noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-3043493300793589377.post-47374798712622938782010-10-21T15:15:06.796-07:002010-10-21T15:15:06.796-07:00Awesome analysis. Great to know how fast mysql can...Awesome analysis. Great to know how fast mysql can be!!Yusufnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-30052082898750709902010-10-21T11:39:46.458-07:002010-10-21T11:39:46.458-07:00You are all awesome people. I constantly miss NDBA...You are all awesome people. I constantly miss NDBAPI when doing anything database related and am forced to use SQL. Thanks for writing this!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-49043473334530915042010-10-21T04:39:39.538-07:002010-10-21T04:39:39.538-07:00krow,
the reason why I did not use the memcached p...krow,<br />the reason why I did not use the memcached protocol is that I wanted to make network transmission size small as far as possible. HandlerSocket supports more complex requests than simple KVS-like operations, and I thought it's not impotant to make HandlerSocket compatible to memcached.Akira Higuchihttp://github.com/ahigutinoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-36860500153207577502010-10-21T01:26:44.045-07:002010-10-21T01:26:44.045-07:00Considering that I added the daemon plugin so that...Considering that I added the daemon plugin so that I could do a quick UDP protocol for MySQL, I am pretty happy to see someone continue to use it :)<br /><br />So why invent a new protocol? Why not just use the memcached protocol?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-90583018174071406412010-10-20T23:26:05.270-07:002010-10-20T23:26:05.270-07:00@neha
I disabled query cache during tests. Query ...@neha<br /><br />I disabled query cache during tests. Query cache entries are invalidated if the same table is updated, so it is not so much helpful for large tables.Yoshinori Matsunobuhttps://www.blogger.com/profile/14180479977952026421noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-49726054288286732602010-10-20T23:23:49.113-07:002010-10-20T23:23:49.113-07:00@Eran
Like regular DML statements, row locks are ...@Eran<br /><br />Like regular DML statements, row locks are automatically taken by InnoDB, and released by commit. If a writer thread conflicts with DML, it blocks (or is blocked by) other DML that update the same rows. <br />Right now HandlerSocket writer is single threaded. So no conflict-by-multiple-writers situation happens. Single-threaded writer does not scale with CPU cores, but right now MySQL slave's SQL thread is also single threaded. Even if HandlerSocket supports multiple writer threads, it won't help so much because significant replication delay will happen. We hope that MySQL will support parallel replication threads in the near future.Yoshinori Matsunobuhttps://www.blogger.com/profile/14180479977952026421noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-19394874367523973302010-10-20T20:41:50.344-07:002010-10-20T20:41:50.344-07:00I was able to get my ex back after I followed the ...I was able to get my ex back after I followed the instructions at www.saveabreakup.com I totally recommend this site, saveabreakup.com helped me a lot, all I can say is big THANKS!!! I'm so happy now...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-80756817072567086912010-10-20T15:06:33.757-07:002010-10-20T15:06:33.757-07:00Suffering suchita, what a concept!Suffering suchita, what a concept!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-42150965681927440972010-10-20T13:45:18.834-07:002010-10-20T13:45:18.834-07:00You need to read this article carefully, all these...You need to read this article carefully, all these questions are addressed. As for writing, if a db is teamed up with a pair, great if not wonderful things can start happenning...fhttp://f.comnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-49653766389209261972010-10-20T13:36:37.026-07:002010-10-20T13:36:37.026-07:00Super interesting! I don't see any mention of...Super interesting! I don't see any mention of the query cache though. How big is it? If all your queries fit in the query cache, then can't it avoid sql parsing/creating access plans/locking tables?narulahttps://www.blogger.com/profile/04776143720908795307noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-44336901518138271272010-10-20T13:25:22.850-07:002010-10-20T13:25:22.850-07:00Great. Man, you are genius.Great. Man, you are genius.Lev Leontievhttp://perlfreelancer.comnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-34894776072265253672010-10-20T12:37:27.201-07:002010-10-20T12:37:27.201-07:00Very interesting concept and data! nicely done. I&...Very interesting concept and data! nicely done. I'm wondering though, since you forgo locks, how do you prevent data from becoming corrupt when multiple threads write to the same row at the same time? how do you prevent those writes from changing a row while it's being retrieved?Eranhttp://www.lionite.comnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-11746217960470108182010-10-20T09:34:48.748-07:002010-10-20T09:34:48.748-07:00Really interesting. Maybe one day we will have PHP...Really interesting. Maybe one day we will have PHP or Python client too :)Terohttp://alen.mobinoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-38535561328186947082010-10-20T09:00:30.792-07:002010-10-20T09:00:30.792-07:00@Anon - I am not aware of results confirming that ...@Anon - I am not aware of results confirming that stored procs would provide such throughput? I doubt they would come close to this but would be thrilled to learn more.<br /><br />@Anon - Are there similar results for DB2 on similar hardware? I don't always have enough time to keep up with the latest on DB2.Mark Callaghanhttps://www.blogger.com/profile/09590445221922043181noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-21833693471096474792010-10-20T07:35:45.330-07:002010-10-20T07:35:45.330-07:00Great way to keep MySQL alive ;)
Good workGreat way to keep MySQL alive ;)<br />Good workPedro Santoshttps://www.blogger.com/profile/16230841708639243807noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-10227973507769843772010-10-20T05:37:35.540-07:002010-10-20T05:37:35.540-07:0099% of your mysql load was preparing the adhoc sql...99% of your mysql load was preparing the adhoc sql. The lock management on a primary key lookup is not worth noting. You could have stuck with MySQL and just used some stored procs like everyone else. :/Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-44636383571652770232010-10-20T05:04:40.948-07:002010-10-20T05:04:40.948-07:00would like to see the results where you do userid=...would like to see the results where you do userid= and no filecache jumps in.. :)Jayme Rotsaerthttp://jayme.benoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-78359617097535515562010-10-20T04:53:09.809-07:002010-10-20T04:53:09.809-07:00Very interesting post. To say you are still using ...Very interesting post. To say you are still using MySQL for this is a bit of a misnomer since what you have is an ad-hoc "nosql" database using InnoDB as the storage backend. Much in the same way that other nosql databaser are using Tyrant as the storage format. But nonetheless very cool and interesting.Unknownhttps://www.blogger.com/profile/17582772772196651971noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-60738905055656610952010-10-20T01:45:25.016-07:002010-10-20T01:45:25.016-07:00Yoshinori-san, very interesting! We use a similar ...Yoshinori-san, very interesting! We use a similar technique for our site together Postgresql. We have our own Software ODBA that writes SQL, marshals the data and puts the marshaled Data into the PGsql-DB. All of our data is always in the memory if the Application is running. ODBA is written in Ruby. You can find it here: http://scm.ywesee.com/?p=odba/.git;a=summaryZeno Davatzhttp://just.donoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-61627401261273841092010-10-20T01:06:35.640-07:002010-10-20T01:06:35.640-07:00DB2 and Static SQL Packages get rid of most of thi...DB2 and Static SQL Packages get rid of most of this overhead. Security, accessplans are already inplace, The only thing that happens when a query get's executed is the execution of the accessplan and returning the result.<br /><br />So, no parsing, authority checking, creation of accessplans etc.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-55702996390709851442010-10-19T23:51:08.858-07:002010-10-19T23:51:08.858-07:00@Andy,
> "innodb-flush-log-at-trx-commit&...@Andy,<br /><br />> "innodb-flush-log-at-trx-commit" is set to "1"<br /><br />Sorry, I meant innodb-flush-log-at-trx-commit != 1. Fixed.Yoshinori Matsunobuhttps://www.blogger.com/profile/14180479977952026421noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-68096165807308631272010-10-19T23:44:04.009-07:002010-10-19T23:44:04.009-07:00"Even though you use innodb-flush-log-at-trx-..."Even though you use innodb-flush-log-at-trx-commit=1, you lose only < 1s of data on server crash."<br /><br />I thought when "innodb-flush-log-at-trx-commit" is set to "1", data is flushed to disk after every commit. So in that case there shouldn't be *any* data loss at all on server crash.<br /><br />Are you saying HandlerSocket modifies that behavior so that now it is possible to lose data even with innodb-flush-log-at-trx-commit=1?Andynoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-60360978162708226312010-10-19T23:40:10.992-07:002010-10-19T23:40:10.992-07:00Any chance you could release a Python client? I...Any chance you could release a Python client? I'd LOVE to try this out!Andynoreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-18187771777545272262010-10-19T22:00:22.818-07:002010-10-19T22:00:22.818-07:00Excellent work, it sounds interesting. Definitely,...Excellent work, it sounds interesting. Definitely, I would also like to try.<br /><br />Thanks.Anonymoushttps://www.blogger.com/profile/02962178101930768263noreply@blogger.comtag:blogger.com,1999:blog-3043493300793589377.post-43921507513887223952010-10-19T20:21:39.634-07:002010-10-19T20:21:39.634-07:00Kudos for such interesting work. I guess this arti...Kudos for such interesting work. I guess this article is helping tons of us to better understand the high cost of SQL processing in almost any SQL-based datastore. <br /><br />It seems to me few people will start exploring similar MySQL-based solutions with this NoSQL route, so I guess we should stay tuned for stuff like these in the following weeks/months for sure.Antonio Ogniohttp://antonio.ognio.comnoreply@blogger.com