<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Ramblings</title>
	<atom:link href="http://www.flamingspork.com/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flamingspork.com/blog</link>
	<description>Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</description>
	<lastBuildDate>Tue, 16 Mar 2010 17:29:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Embedded InnoDB: InnoDB Status by Jobin Augustine</title>
		<link>http://www.flamingspork.com/blog/2010/03/16/embedded-innodb-innodb-status/comment-page-1/#comment-91110</link>
		<dc:creator>Jobin Augustine</dc:creator>
		<pubDate>Tue, 16 Mar 2010 17:29:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1853#comment-91110</guid>
		<description>trackback from Drizzle Wiki
http://drizzle.org/wiki/Drizzle_Features#Embedded_Innodb</description>
		<content:encoded><![CDATA[<p>trackback from Drizzle Wiki<br />
<a href="http://drizzle.org/wiki/Drizzle_Features#Embedded_Innodb">http://drizzle.org/wiki/Drizzle_Features#Embedded_Innodb</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Embedded InnoDB: querying the configuration by Jobin Augustine</title>
		<link>http://www.flamingspork.com/blog/2010/03/16/embedded-innodb-querying-the-configuration/comment-page-1/#comment-91109</link>
		<dc:creator>Jobin Augustine</dc:creator>
		<pubDate>Tue, 16 Mar 2010 16:48:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1849#comment-91109</guid>
		<description>Thanks You for the update.
I will keep updating in wiki.. but yet to catchup with all of you.</description>
		<content:encoded><![CDATA[<p>Thanks You for the update.<br />
I will keep updating in wiki.. but yet to catchup with all of you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Embedded InnoDB: InnoDB Status by anonymous</title>
		<link>http://www.flamingspork.com/blog/2010/03/16/embedded-innodb-innodb-status/comment-page-1/#comment-91108</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Tue, 16 Mar 2010 11:21:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1853#comment-91108</guid>
		<description>Whenever I visit your blog by way of Planet Drizzle, I get shown the australian internet blackout overlay from January.</description>
		<content:encoded><![CDATA[<p>Whenever I visit your blog by way of Planet Drizzle, I get shown the australian internet blackout overlay from January.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by wlad</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91104</link>
		<dc:creator>wlad</dc:creator>
		<pubDate>Tue, 16 Mar 2010 01:59:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91104</guid>
		<description>yeah , MySQL&#039;s use of autotools is no good, many people have already said so,  I completely agree.

Re how to write platform checks I do have a link to Kitware&#039;s Wiki  on from MySQL CMake wiki 
(wanted to avoid repeating what is already documented somewhere else) 
http://forge.mysql.com/wiki/CMake#For_Developers_:_how_to_write_platform_checks 

The presence of particilar function in library is detected with CHECK_FUNCTION_EXISTS() , one can use  CHECK_SYMBOL_EXIST()  when looking for a macro or #define and CHECK_C{XX}_SOURCE_COMPILES when doing unusual things, e.g when functon has different signatures dependend on the OS (gethostbyname_r comes to mind).

Conditional builds:
In MySQL/CMake, we do conditional  builds  too, for example the ibmdb2 storage engine is only built if a header qlgusr.h is found (must be some i5 specific thing, but not on every box, and I never succeded in finding this header  so far:)

The basic  usage would be
CHECK_LIBRARY_EXISTS(foo HAVE_LIBFOO)
CHECK_INCLUDE_FILE(foo.h HAVE_FOO_H)

IF(HAVE_LIBFOO AND HAVE_FOO_H)
  # do something
ENDIF()

Strict compiler flags
..on a variety of compilers is a great thing in drizzle, and  I have not done that yet.  This appears to be more political/organizational thing than it is technical. Checking compiler and adding a flag is easy, getting people to fix the warnings (we do have a lot of them shown in pushbuild)  is harder. It has to be be a concerted effort, otherwise adding strict flags to something that already does not build cleanly warnings adds nothing but frustration.



Silent builds ...
by default was always done CMake. The output is colorized, by default as well, looks nice. 

Also, make dependencies between targets are working , by default.</description>
		<content:encoded><![CDATA[<p>yeah , MySQL&#8217;s use of autotools is no good, many people have already said so,  I completely agree.</p>
<p>Re how to write platform checks I do have a link to Kitware&#8217;s Wiki  on from MySQL CMake wiki<br />
(wanted to avoid repeating what is already documented somewhere else)<br />
<a href="http://forge.mysql.com/wiki/CMake#For_Developers_:_how_to_write_platform_checks">http://forge.mysql.com/wiki/CMake#For_Developers_:_how_to_write_platform_checks</a> </p>
<p>The presence of particilar function in library is detected with CHECK_FUNCTION_EXISTS() , one can use  CHECK_SYMBOL_EXIST()  when looking for a macro or #define and CHECK_C{XX}_SOURCE_COMPILES when doing unusual things, e.g when functon has different signatures dependend on the OS (gethostbyname_r comes to mind).</p>
<p>Conditional builds:<br />
In MySQL/CMake, we do conditional  builds  too, for example the ibmdb2 storage engine is only built if a header qlgusr.h is found (must be some i5 specific thing, but not on every box, and I never succeded in finding this header  so far:)</p>
<p>The basic  usage would be<br />
CHECK_LIBRARY_EXISTS(foo HAVE_LIBFOO)<br />
CHECK_INCLUDE_FILE(foo.h HAVE_FOO_H)</p>
<p>IF(HAVE_LIBFOO AND HAVE_FOO_H)<br />
  # do something<br />
ENDIF()</p>
<p>Strict compiler flags<br />
..on a variety of compilers is a great thing in drizzle, and  I have not done that yet.  This appears to be more political/organizational thing than it is technical. Checking compiler and adding a flag is easy, getting people to fix the warnings (we do have a lot of them shown in pushbuild)  is harder. It has to be be a concerted effort, otherwise adding strict flags to something that already does not build cleanly warnings adds nothing but frustration.</p>
<p>Silent builds &#8230;<br />
by default was always done CMake. The output is colorized, by default as well, looks nice. </p>
<p>Also, make dependencies between targets are working , by default.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by Stewart Smith</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91101</link>
		<dc:creator>Stewart Smith</dc:creator>
		<pubDate>Mon, 15 Mar 2010 23:23:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91101</guid>
		<description>wlad: MySQL&#039;s use of autotools shouldn&#039;t be taken as a good one :)

I have no doubt that the CMake build system is probably better than MySQL&#039;s autotools usage.

... and it really does suit the cross-platform problem...

One thing that may be worth adding to the MySQL CMake docs is how to put in a detection for a specific version of a library (or the presence of a particular function in a library).

Also how to have a plugin that is only built if certain dependencies are met, otherwise it isn&#039;t.

e.g. for Drizzle we have some things (such as auth_pam) that are only built if you have PAM headers around. So, for example, if we were building on Win32, it would automagically not build the impossible.

In Drizzle, we also have (portable) code to put in strict compiler flags for a variety of compilers (and a way to disable it for specific files... e.g. generated ones that you can&#039;t really fix).

Does CMake yet have the nice non-noisy build like new automake does?</description>
		<content:encoded><![CDATA[<p>wlad: MySQL&#8217;s use of autotools shouldn&#8217;t be taken as a good one :)</p>
<p>I have no doubt that the CMake build system is probably better than MySQL&#8217;s autotools usage.</p>
<p>&#8230; and it really does suit the cross-platform problem&#8230;</p>
<p>One thing that may be worth adding to the MySQL CMake docs is how to put in a detection for a specific version of a library (or the presence of a particular function in a library).</p>
<p>Also how to have a plugin that is only built if certain dependencies are met, otherwise it isn&#8217;t.</p>
<p>e.g. for Drizzle we have some things (such as auth_pam) that are only built if you have PAM headers around. So, for example, if we were building on Win32, it would automagically not build the impossible.</p>
<p>In Drizzle, we also have (portable) code to put in strict compiler flags for a variety of compilers (and a way to disable it for specific files&#8230; e.g. generated ones that you can&#8217;t really fix).</p>
<p>Does CMake yet have the nice non-noisy build like new automake does?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by Stewart Smith</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91099</link>
		<dc:creator>Stewart Smith</dc:creator>
		<pubDate>Mon, 15 Mar 2010 22:14:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91099</guid>
		<description>ahh... so that&#039;s without modifying parts of the client API I guess.

The way I see it is that you can still get back all that information, you just have to say that you want the result and fetch it.</description>
		<content:encoded><![CDATA[<p>ahh&#8230; so that&#8217;s without modifying parts of the client API I guess.</p>
<p>The way I see it is that you can still get back all that information, you just have to say that you want the result and fetch it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by Mark Callaghan</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91098</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Mon, 15 Mar 2010 20:52:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91098</guid>
		<description>@Stewart - we are likely to try the pipelining trick -- send all statements at once, commit when there are no failures, rollback otherwise. But to make this work without problems we might close the connection on error. Some code depends on getting back the count of rows modified and I have figured out what to do there.</description>
		<content:encoded><![CDATA[<p>@Stewart &#8211; we are likely to try the pipelining trick &#8212; send all statements at once, commit when there are no failures, rollback otherwise. But to make this work without problems we might close the connection on error. Some code depends on getting back the count of rows modified and I have figured out what to do there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Smallest. Patch. Ever. by A Contributor&#8217;s Guide to Launchpad.net &#8211; Part 2 &#8211; Code Management &#171; join-fu!</title>
		<link>http://www.flamingspork.com/blog/2006/06/29/smallest-patch-ever/comment-page-1/#comment-91096</link>
		<dc:creator>A Contributor&#8217;s Guide to Launchpad.net &#8211; Part 2 &#8211; Code Management &#171; join-fu!</dc:creator>
		<pubDate>Mon, 15 Mar 2010 19:49:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/2006/06/29/smallest-patch-ever/#comment-91096</guid>
		<description>[...] The &#8220;fix&#8221; for this bug is simply adding your name to the sql/authors.h file of course. Go ahead and add your name to the list in that file and save and close the file. Now, that has to be the easiest bug fix ever. No wait, I take that back. [...]</description>
		<content:encoded><![CDATA[<p>[...] The &#8220;fix&#8221; for this bug is simply adding your name to the sql/authors.h file of course. Go ahead and add your name to the list in that file and save and close the file. Now, that has to be the easiest bug fix ever. No wait, I take that back. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by wlad</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91091</link>
		<dc:creator>wlad</dc:creator>
		<pubDate>Mon, 15 Mar 2010 16:00:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91091</guid>
		<description>Stewart, do not meant to start a flame war on this.

but I would be happy if someone unbiased can compare and contast MySQL&#039;s build with CMake described here 
http://forge.mysql.com/wiki/CMake to what you have with drizzle.

I expect the unbiased majority to prefer MySQL build then, I really do:)</description>
		<content:encoded><![CDATA[<p>Stewart, do not meant to start a flame war on this.</p>
<p>but I would be happy if someone unbiased can compare and contast MySQL&#8217;s build with CMake described here<br />
<a href="http://forge.mysql.com/wiki/CMake">http://forge.mysql.com/wiki/CMake</a> to what you have with drizzle.</p>
<p>I expect the unbiased majority to prefer MySQL build then, I really do:)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thoughts on Thoughts on Drizzle :) by Kristian Nielsen</title>
		<link>http://www.flamingspork.com/blog/2010/03/15/thoughts-on-thoughts-on-drizzle/comment-page-1/#comment-91088</link>
		<dc:creator>Kristian Nielsen</dc:creator>
		<pubDate>Mon, 15 Mar 2010 12:55:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=1847#comment-91088</guid>
		<description>Jobin,

Right, now that you mention it I see that the data in the table is presented in a really confusing way :-(

The numbers are time to process 2 billion elements in each thread. So with aligned words, two threads working on twice as many elements take twice the time, meaning no scalability (the reason for this is that memory bandwidth is the bottleneck, so adding threads gives no benefit).

The unaligned in contrast takes about the same time to process twice the amount of data in twice the number of threads, indicating linear scaling. The reason is that the data is smaller, so more elements can be processed with given memory bandwidth before hitting the limit.</description>
		<content:encoded><![CDATA[<p>Jobin,</p>
<p>Right, now that you mention it I see that the data in the table is presented in a really confusing way :-(</p>
<p>The numbers are time to process 2 billion elements in each thread. So with aligned words, two threads working on twice as many elements take twice the time, meaning no scalability (the reason for this is that memory bandwidth is the bottleneck, so adding threads gives no benefit).</p>
<p>The unaligned in contrast takes about the same time to process twice the amount of data in twice the number of threads, indicating linear scaling. The reason is that the data is smaller, so more elements can be processed with given memory bandwidth before hitting the limit.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
