<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PlanetMysql.ru - информация о СУБД MySQL &#187; PostgreSQL</title>
	<atom:link href="http://planetmysql.ru/category/postgresql/feed/" rel="self" type="application/rss+xml" />
	<link>http://planetmysql.ru</link>
	<description>Блог о самой популярной СУБД MySQL</description>
	<lastBuildDate>Fri, 10 Feb 2012 22:53:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>On datatypes, domains and why I think it&#8217;s time we reconsidered</title>
		<link>http://karlssonondatabases.blogspot.com/2012/02/on-datatypes-domains-and-why-i-think.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=on-datatypes-domains-and-why-i-think-its-time-we-reconsidered</link>
		<comments>http://karlssonondatabases.blogspot.com/2012/02/on-datatypes-domains-and-why-i-think.html#comments</comments>
		<pubDate>Mon, 06 Feb 2012 10:34:00 +0000</pubDate>
		<dc:creator>Anders Karlsson</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[TYPE]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=2746bef5e989e57f54203282525f093d</guid>
		<description><![CDATA[What's in a datatype then? A MySQL SMALLINT? A C int? An Oracle BLOB? One thing is for sure, they are not very well standardized,  not even within the same environment, and much less so across them. And what does it means, really? When should I use a BLOB, when a BINARY VARCHAR and when to use a long long?A datatype defines many attributes:What data I can store in it: Only numbers? Printable alaphanumeric characters? Unicode? Binary data? An object?What I can do with a value of that particular type and how does it behave? Can I concatenate two values? Add them (that is NOT the same as concatenate! The same operator (+) may be used, but it's not the same thing!)? Save it to a file?How is it stored and represented in technical terms. And this can be argued, a C int doesn't define how it is stored on disk, but a MySQL INT does! And a BLOB is a type that is largely there just because it defines how to handle things on disk!To link this up with MySQL, let's look at the built-in MySQL datatypes. Some of them are rarely used, and for all intents and purposes, many of them are overlapping and in some cases they are there JUST BECAUSE they have different semantics and behaviour! I am, for example, not a big fan of all the different INT types that MySQL supports; tinyint, smallint mediuming, bigint all in signed and unsigned shape. Why is this useful? Yes, I know a smallint is smaller on disk so there is 2 bytes less to read from disk compared to an int. Yeah right, big deal: Look now, if that is a big deal for your application, then you have bigger problems. Which doesn't mean that using a smallint isn't a means of, in some cases, improve performance a small bit. And that this is sometimes useful. But really, this should be hidden somewhere, we just have too many datatypes. The same goes for all the different BLOB datatypes! The BLOB datatypes has another issue by the way, the names of them a a bit silly: "TINYBLOB" is a contradiction, as BLOB stands for Binary LARGE Object! A Large object that is Tiny? And a something that is at the most 255 bytes isn't really "Large" anymore, that was way back in the 1970's or so.No, I'm not a big fan of determining which datatype to use by considering storage requirements to optimize performance. That is something you might do as a performance enhancing measure after the job is done, possibly. In C, which is a language I have used longer than I care to remember, int seems to serve the role of being the default numeric integer datatype, which is not a bad thing, in particular not in C as C is a language used to write low-level stuff in, stuff that is performance sensitive, and a C int is linked to hardware specific integers.FLOAT is another issue altogether. In very few business applications is there a need for FLOAT or DOUBLE in terms of IEEE floating point values. Really!  This is a scientific number format, that is also supported by the Floating point unit in most computers of today, so operations on them are pretty fast these days. But I have seen too many business applications where the developer uses a FLOAT in the database for any kind of numeric value that is not an integer, which is a distinctly bad idea! It works as long as the numbers aren't too big, and when the operations on them are reasonably simple. This is not to say a FLOAT or DOUBLE isn’t useful, just that they are more targeted for scientific programming (Hey, they are after all defined by IEEE!). What most people really should use is DECIMAL (I'm using MySQL datatypes for reference, but you know what I mean). This is a datatype that accepts (hey, big surprise coming up here) decimal numbers, fixed point decimal numbers! Operations on DECIMAL are slower though, as they aren't really supported directly by either C (which is the language that MySQL is largely written in) or by the CPU / FPU. But they are better for business applications (for scientific applications, use FLOAT or DOUBLE. And continue to write your code in Fortran by all means!)But all these datatype are increasingly used also to define the domain of the data in them! The SQL DOMAIN feature is in the SQL Standard but is largely forgotten. It is there in PostgreSQL  for you to try. The advantage of this, in my mind, isn't just that you can define in more exact terms what data should go into a database column, without writing code to do that, and to make it apparent in the database schema what data is expected, it also means that we can get away from the wide array of different built-in datatypes in, say, MySQL. Instead we can stick with a few optimized ones, let them have a simple inherent domain and then we can define the application specific domains in application code. Anyone for a IP_ADDRESS datatype? A ZIPCODE datatype? An URL type. All those a reasonable requests from the application POV, but it really shouldn't (in my mind) be defined by the database server (As: What are the semantics of a ZIP-code? They are different in different countries, and the post-office can change their minds (although that is something that takes a long time I guess)). Why? As this is application specific domain! And application specifics should be in application code! Simple as that!So what datatypes are useful then, the way I look at it:RAW Data - This should be a basic type. As long as can be, or as short. Any data can be stored in it, and nearly as much as you would like.Integers - Although an integer can be considered to be a special case of a more generic number, the integer domain is so generic, and the integer is such a common and basic type that is deserves a place here.Decimal – Fixed point decimal numbers.Float - Now we are getting close to the application domain here, but these guys deserve a place here anyway, as they are so common and hooked up to the programming languages and hardware.DATETIME - Only one of them is really needed. One of DATETIME, DATE, YEAR, MONTH, TIMESTAMP, TIME etc etc. that is. Just one, very generic base type, where the specific domain is, you've heard it before, application specific!Text - Reluctantly I add this to the list. Although this is just a RAW with some limitations (usually only UTF8 or ISO8859-15 or something characters), there are some operations and attributes that are so tied up with text strings that a TEXT type is reasonable to include.And that's about it! Yes! We could add a few standard domains of top of all this, like FLOAT and DOUBLE, SMALLINT, TINYINT etc etc. But as for the basic types, this is what I would like to see. As for the weirdo TIMESTAMP semantics in MySQL, add them as triggers on your table, in application code or, best, as a specific domain (I do know that not all weirdiness of TIMESTAMP can be represented by a standard SQL DOMAIN, which is both a sign of just how weird TIMESTAMP is, and of some of the limitation of the SQL DOMAIN).I have now mentioned SQL DOMAINs a few times, so lets spend some quality time with them right now before closing up, here is a simple session using PostgreSQL 8.4:First we create a domain:CREATE DOMAIN yesno AS CHAR(1)DEFAULT 'N'NOT NULL CHECK (VALUE = 'Y' OR VALUE = 'N');Then we create a table that uses that domain:CREATE TABLE user_active(username CHAR(10), is_active YESNO);And then we check if it works using a few SQL statements:INSERT INTO user_active VALUES('foo', NULL);ERROR:  domain yesno does not allow null valuesINSERT INTO user_active VALUES('foo', 'Y');INSERT 0 1INSERT INTO user_active VALUES('foo', 'N');INSERT 0 1INSERT INTO user_active VALUES('foo', 'A');ERROR:  value for domain yesno violates check constraint "yesno_check"Before I wrap this up, I want to say one more thing on the issue of SQL Domains: There is an alternative n PostgreSQL, which is user defined datatypes using a CREATE TYPE SQL command. To begin with, I like domains much better as they are declarative, which means I don’t have to read a whole bunch of (usually uncommented and undocumented) code to understand what they type does. Secondly, this little warning in the PostgreSQL 9.1 manual isn’t too encouraging (page 1289): “To create a new base type, you must be a superuser. (This restriction is made because an erroneous type definition could confuse or even crash the server.)”I have more to say on types, and I will follow up with a new post on this subject eventually, but this is enough for now./Karlsson]]></description>
			<content:encoded><![CDATA[What's in a datatype then? A MySQL SMALLINT? A C <span>int</span>? An Oracle <span>BLOB</span>? One thing is for sure, they are not very well standardized,  not even within the same environment, and much less so across them. And what does it means, really? When should I use a BLOB, when a BINARY VARCHAR and when to use a long long?<br /><br />A datatype defines many attributes:<br /><ul><li>What data I can store in it: Only numbers? Printable alaphanumeric characters? Unicode? Binary data? An object?</li><li>What I can do with a value of that particular type and how does it behave? Can I concatenate two values? Add them (that is NOT the same as concatenate! The same operator (+) may be used, but it's not the same thing!)? Save it to a file?</li><li>How is it stored and represented in technical terms. And this can be argued, a C <span>int </span>doesn't define how it is stored on disk, but a MySQL INT does! And a BLOB is a type that is largely there just because it defines how to handle things on disk!</li></ul>To link this up with MySQL, let's look at the built-in MySQL datatypes. Some of them are rarely used, and for all intents and purposes, many of them are overlapping and in some cases they are there <span>JUST BECAUSE</span> they have different semantics and behaviour! I am, for example, not a big fan of all the different INT types that MySQL supports; tinyint, smallint mediuming, bigint all in signed and unsigned shape. Why is this useful? Yes, I know a smallint is smaller on disk so there is 2 bytes less to read from disk compared to an int. Yeah right, big deal: Look now, if that is a big deal for your application, then you have bigger problems. Which doesn't mean that using a smallint isn't a means of, in some cases, improve performance a small bit. And that this is sometimes useful. But really, this should be hidden somewhere, we just have too many datatypes. The same goes for all the different BLOB datatypes! The BLOB datatypes has another issue by the way, the names of them a a bit silly: "TINYBLOB" is a contradiction, as BLOB stands for Binary LARGE Object! A Large object that is Tiny? And a something that is at the most 255 bytes isn't really "Large" anymore, that was way back in the 1970's or so.<br /><br />No, I'm not a big fan of determining which datatype to use by considering storage requirements to optimize performance. That is something you might do as a performance enhancing measure after the job is done, possibly. In C, which is a language I have used longer than I care to remember, int seems to serve the role of being the default numeric integer datatype, which is not a bad thing, in particular not in C as C is a language used to write low-level stuff in, stuff that is performance sensitive, and a C int is linked to hardware specific integers.<br /><br />FLOAT is another issue altogether. In very few business applications is there a need for FLOAT or DOUBLE in terms of IEEE floating point values. Really!  This is a scientific number format, that is also supported by the Floating point unit in most computers of today, so operations on them are pretty fast these days. But I have seen too many business applications where the developer uses a FLOAT in the database for any kind of numeric value that is not an integer, which is a distinctly bad idea! It works as long as the numbers aren't too big, and when the operations on them are reasonably simple. This is not to say a FLOAT or DOUBLE isn’t useful, just that they are more targeted for scientific programming (Hey, they are after all defined by IEEE!). What most people really should use is DECIMAL (I'm using MySQL datatypes for reference, but you know what I mean). This is a datatype that accepts (<span>hey, big surprise coming up here</span>) decimal numbers, fixed point decimal numbers! Operations on DECIMAL are slower though, as they aren't really supported directly by either C (which is the language that MySQL is largely written in) or by the CPU / FPU. But they are better for business applications (for scientific applications, use FLOAT or DOUBLE. And continue to write your code in <span>Fortran </span>by all means!)<br /><br />But all these datatype are increasingly used also to define the domain of the data in them! The SQL DOMAIN feature is in the SQL Standard but is largely forgotten. It is there in PostgreSQL  for you to try. The advantage of this, in my mind, isn't just that you can define in more exact terms what data should go into a database column, without writing code to do that, and to make it apparent in the database schema what data is expected, it also means that we can get away from the wide array of different built-in datatypes in, say, MySQL. Instead we can stick with a few optimized ones, let them have a simple inherent domain and then we can define the application specific domains in application code. Anyone for a IP_ADDRESS datatype? A ZIPCODE datatype? An URL type. All those a reasonable requests from the application POV, but it really shouldn't (in my mind) be defined by the database server (As: What are the semantics of a ZIP-code? They are different in different countries, and the post-office can change their minds (although that is something that takes a long time I guess)). Why? As this is application specific domain! And application specifics should be in application code! Simple as that!<br /><br />So what datatypes are useful then, the way I look at it:<br /><ul><li><span>RAW</span> Data - This should be a basic type. As long as can be, or as short. Any data can be stored in it, and nearly as much as you would like.</li><li><span>Integers</span> - Although an integer can be considered to be a special case of a more generic number, the integer domain is so generic, and the integer is such a common and basic type that is deserves a place here.</li><li><span>Decimal </span>– Fixed point decimal numbers.</li><li><span>Float</span> - Now we are getting close to the application domain here, but these guys deserve a place here anyway, as they are so common and hooked up to the programming languages and hardware.</li><li><span>DATETIME </span>- Only one of them is really needed. One of DATETIME, DATE, YEAR, MONTH, TIMESTAMP, TIME etc etc. that is. Just one, very generic base type, where the specific domain is, you've heard it before, application specific!</li><li><span>Text</span> - Reluctantly I add this to the list. Although this is just a RAW with some limitations (usually only UTF8 or ISO8859-15 or something characters), there are some operations and attributes that are so tied up with text strings that a TEXT type is reasonable to include.</li></ul>And that's about it! Yes! We could add a few standard domains of top of all this, like FLOAT and DOUBLE, SMALLINT, TINYINT etc etc. But as for the basic types, this is what I would like to see. As for the weirdo TIMESTAMP semantics in MySQL, add them as triggers on your table, in application code or, best, as a specific domain (I do know that not all weirdiness of TIMESTAMP can be represented by a standard SQL DOMAIN, which is both a sign of just how weird TIMESTAMP is, and of some of the limitation of the SQL DOMAIN).<br /><br />I have now mentioned SQL DOMAINs a few times, so lets spend some quality time with them right now before closing up, here is a simple session using PostgreSQL 8.4:<br /><ul><li>First we create a domain:<br /><span>CREATE DOMAIN yesno AS CHAR(1)</span><br><span>DEFAULT 'N'</span><br><span>NOT NULL CHECK (VALUE = 'Y' OR VALUE = 'N');</span></li><li>Then we create a table that uses that domain:<br /><span>CREATE TABLE user_active(username CHAR(10), is_active YESNO);</span></li><li>And then we check if it works using a few SQL statements:<br /><span>INSERT INTO user_active VALUES('foo', NULL);</span><br /><span>ERROR:  domain yesno does not allow null values</span><br /><span>INSERT INTO user_active VALUES('foo', 'Y');</span><br /><span>INSERT 0 1</span><br /><span>INSERT INTO user_active VALUES('foo', 'N');</span><br /><span>INSERT 0 1</span><br /><span>INSERT INTO user_active VALUES('foo', 'A');</span><br /><span>ERROR:  value for domain yesno violates check constraint "yesno_check"</span></li></ul>Before I wrap this up, I want to say one more thing on the issue of SQL Domains: There is an alternative n PostgreSQL, which is user defined datatypes using a CREATE TYPE SQL command. To begin with, I like domains much better as they are declarative, which means I don’t have to read a whole bunch of (usually uncommented and undocumented) code to understand what they type does. Secondly, this little warning in the PostgreSQL 9.1 manual isn’t too encouraging (page 1289): “<span>To create a new base type, you must be a superuser. (This restriction is made because an erroneous type definition could confuse or even crash the server.)</span>”<br /><br />I have more to say on types, and I will follow up with a new post on this subject eventually, but this is enough for now.<br /><br />/Karlsson<div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/9144505959002328789-1645100099897170997?l=karlssonondatabases.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31911&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31911&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2012/02/06/on-datatypes-domains-and-why-i-think-its-time-we-reconsidered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuent Partners With VNC To Collaborate in DACH</title>
		<link>http://continuent-tungsten.blogspot.com/2012/02/continuent-partners-with-vnc-to.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=continuent-partners-with-vnc-to-collaborate-in-dach</link>
		<comments>http://continuent-tungsten.blogspot.com/2012/02/continuent-partners-with-vnc-to.html#comments</comments>
		<pubDate>Wed, 01 Feb 2012 16:22:00 +0000</pubDate>
		<dc:creator>Petri Virsunen</dc:creator>
				<category><![CDATA[Continuent Tungsten]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[VNC]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=db05cd65620fbe86eb825d1146207551</guid>
		<description><![CDATA[Continuent is increasing its presence in Europe to offer our solutions and services for the open source database business sector in the region. VNC is Continuent's new partner in Germany, Austria and Switzerland (DACH). Read the entire press release here.Continuent and VNC are hosting a live webcast demonstrating advanced MySQL and PostgreSQL replication and clustering with Continuent Tungsten]]></description>
			<content:encoded><![CDATA[Continuent is increasing its presence in Europe to offer our solutions and services for the open source database business sector in the region. VNC is Continuent's new partner in Germany, Austria and Switzerland (DACH). Read the entire press release here.Continuent and VNC are hosting a live webcast demonstrating advanced MySQL and PostgreSQL replication and clustering with Continuent Tungsten<br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31865&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31865&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2012/02/01/continuent-partners-with-vnc-to-collaborate-in-dach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL and PostgreSQL Cloud Offerings – linux.conf.au 2012 miniconf talk by myself and Selena</title>
		<link>http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena</link>
		<comments>http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 02:52:06 +0000</pubDate>
		<dc:creator>Stewart Smith</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[Drizzle]]></category>
		<category><![CDATA[LCA]]></category>
		<category><![CDATA[lca2012]]></category>
		<category><![CDATA[linux.conf.au]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.flamingspork.com/blog/?p=2447</guid>
		<description><![CDATA[Selena and I gave a talk on the various issues of running databases &#8220;in the cloud&#8221; at the recent linux.conf.au in Ballarat. Video is up, embedded below:]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Selena and I gave a talk on the various issues of running databases &#8220;in the cloud&#8221; at the recent <a href="http://linux.conf.au">linux.conf.au</a> in Ballarat. Video is up, embedded below:</p>
<p></p>
<div></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div></div><div><a data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/http%3A//www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/' data-shr_title='MySQL+and+PostgreSQL+Cloud+Offerings+-+linux.conf.au+2012+miniconf+talk+by+myself+and+Selena'></a><a data-shr_href='http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/http%3A//www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/'></a><a data-shr_size='medium' data-shr_count='true' data-shr_href='http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/http%3A//www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/' data-shr_title='MySQL+and+PostgreSQL+Cloud+Offerings+-+linux.conf.au+2012+miniconf+talk+by+myself+and+Selena'></a><a data-shr_count='none' data-shr_href='http://www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/http%3A//www.flamingspork.com/blog/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/' data-shr_title='MySQL+and+PostgreSQL+Cloud+Offerings+-+linux.conf.au+2012+miniconf+talk+by+myself+and+Selena'></a></div><div></div><!-- End Shareaholic LikeButtonSetBottom Automatic --><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31768&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31768&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2012/01/23/mysql-and-postgresql-cloud-offerings-linux-conf-au-2012-miniconf-talk-by-myself-and-selena/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>German webinar Feb 7th at 15:00 CET: Hochverfügbarkeit und Performance von MySQL und PostgreSQL</title>
		<link>http://continuent-tungsten.blogspot.com/2012/01/german-webinar-feb-7th-at-1500-cet.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=german-webinar-feb-7th-at-1500-cet-hochverfugbarkeit-und-performance-von-mysql-und-postgresql</link>
		<comments>http://continuent-tungsten.blogspot.com/2012/01/german-webinar-feb-7th-at-1500-cet.html#comments</comments>
		<pubDate>Tue, 17 Jan 2012 22:14:00 +0000</pubDate>
		<dc:creator>Petri Virsunen</dc:creator>
				<category><![CDATA[Continuent Tungsten]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[VNC]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=163dbb203dfa1cbff733619ca9506887</guid>
		<description><![CDATA[Zahlreiche Unternehmen verlassen sich auf MySQL und PostgreSQL für die Datenverwaltung. Aber was passiert, wenn die Datenbank abstürzt oder eine Wartung benötigt? Wie können Sie sicherstellen, dass Ihre Datenbank Höchstleistung bringt mit minimalem Arbeitsaufwand für den Administrator und maximaler Auslastung der vorhandenen Hardware? Erfahren Sie, wie VNC und Continuent Tungsten Enterprise]]></description>
			<content:encoded><![CDATA[Zahlreiche Unternehmen verlassen sich auf MySQL und PostgreSQL für die Datenverwaltung. Aber was passiert, wenn die Datenbank abstürzt oder eine Wartung benötigt? Wie können Sie sicherstellen, dass Ihre Datenbank Höchstleistung bringt mit minimalem Arbeitsaufwand für den Administrator und maximaler Auslastung der vorhandenen Hardware? Erfahren Sie, wie VNC und Continuent Tungsten Enterprise<br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31635&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=31635&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2012/01/18/german-webinar-feb-7th-at-1500-cet-hochverfugbarkeit-und-performance-von-mysql-und-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Really Dislike Anonymous Attacks</title>
		<link>http://scale-out-blog.blogspot.com/2011/11/i-really-dislike-anonymous-attacks.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-really-dislike-anonymous-attacks</link>
		<comments>http://scale-out-blog.blogspot.com/2011/11/i-really-dislike-anonymous-attacks.html#comments</comments>
		<pubDate>Mon, 14 Nov 2011 04:33:00 +0000</pubDate>
		<dc:creator>Robert Hodges</dc:creator>
				<category><![CDATA[IT Industry]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=ef1b57e476ebc75966b3baabd7d1a362</guid>
		<description><![CDATA[If you are interested in NoSQL databases (or maybe not) perhaps you have seen the anonymous "warning" about using MongoDB. &#160; It concludes with the following pious request: &#160;&#160;Please take this warning seriously.Now there are a lot of great resources about data management on the web but the aforementioned rant is not one of them. &#160;If you plan to write technical articles and have people take them seriously, here are a few tips. Sign your name. &#160;Readers are more impressed when they see you are not afraid to stand behind your words.&#160;Explain what problem you were trying to solve. &#160;Otherwise uncharitable readers might think you just started pumping information into a new database without thinking about possible consequences and now want to blame somebody else for your bad decision. &#160;Explain how you could do better. &#160;Not all designs work out, so propose alternatives. &#160;Readers love to see authors demonstrate that they are not discouraged by adversity. &#160;As for most of the points made by the anonymous author, all I can say is:&#160;well,&#160;duh!&#160;MongoDB behavior with respect to&#160;global write locking and transaction durability&#160;is obvious from the official documentation. &#160;These features are not my cup of tea, but it's also not as if 10gen is hiding them either. &#160;Moreover, most people&#160;understand that new DBMS implementations have problems, not least of all losing data now and then. &#160;You usually pick them because they have features that make it worth putting up with the immaturity. &#160;I am not an expert on MongoDB, but I can say from experience it is amazingly easy to load JSON objects into it. &#160;The up-front usability alone demonstrates excellent engineering. &#160;I am sure for this reason that there are many other good features. &#160;p.s., Here is a point-by-point response from 10gen, helpfully pointed out by Alex Popescu.]]></description>
			<content:encoded><![CDATA[If you are interested in NoSQL databases (or maybe not) perhaps you have seen the <a href="http://pastebin.com/raw.php?i=FD3xe6Jt">anonymous "warning" about using MongoDB</a>. &nbsp; It concludes with the following pious request: <br /><div><br /></div><div>&nbsp;&nbsp;<span>Please take this warning seriously.</span><br /><div><br /></div><div>Now there are a lot of great resources about data management on the web but the aforementioned rant is not one of them. &nbsp;If you plan to write technical articles and have people take them seriously, here are a few tips. <br /><div><ol><li><b>Sign your name</b>. &nbsp;Readers are more impressed when they see you are not afraid to stand behind your words.&nbsp;</li><li><b>Explain what problem you were trying to solve</b>. &nbsp;Otherwise uncharitable readers might think you just started pumping information into a new database without thinking about possible consequences and now want to blame somebody else for your bad decision. &nbsp;</li><li><b>Explain how you could do better</b>. &nbsp;Not all designs work out, so propose alternatives. &nbsp;Readers love to see authors demonstrate that they are not discouraged by adversity. &nbsp;</li></ol><div>As for most of the points made by the anonymous author, all I can say is:&nbsp;<b>well,&nbsp;</b><b><u><i>duh</i></u>!</b>&nbsp;</div><div><br /></div><div>MongoDB behavior with respect to&nbsp;<a href="http://www.mongodb.org/display/DOCS/How+does+concurrency+work">global write locking</a> and <a href="http://www.mongodb.org/display/DOCS/Durability+and+Repair">transaction durability</a>&nbsp;is obvious from the official documentation. &nbsp;These features are not my cup of tea, but it's also not as if 10gen is hiding them either. &nbsp;Moreover, most people&nbsp;understand that new DBMS implementations have problems, not least of all losing data now and then. &nbsp;You usually pick them because they have features that make it worth putting up with the immaturity. &nbsp;I am not an expert on MongoDB, but I can say from experience it is amazingly easy to load JSON objects into it. &nbsp;The up-front usability alone demonstrates excellent engineering. &nbsp;I am sure for this reason that there are many other good features. &nbsp;</div><div><br /></div><div>p.s., Here is a <a href="http://news.ycombinator.com/item?id=3202081">point-by-point response from 10gen</a>, helpfully <a href="http://nosql.mypopescu.com/post/12466059249/anonymous-post-dont-use-mongodb">pointed out by Alex Popescu</a>.</div></div></div></div><div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/768233104244702633-4712321214305007205?l=scale-out-blog.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30935&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30935&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/11/14/i-really-dislike-anonymous-attacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MariaDB Statistics and Surveys</title>
		<link>http://askmonty.org/blog/mariadb-statistics-and-surveys/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mariadb-statistics-and-surveys</link>
		<comments>http://askmonty.org/blog/mariadb-statistics-and-surveys/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 19:06:17 +0000</pubDate>
		<dc:creator>Monty Program Group Blog</dc:creator>
				<category><![CDATA[AskMonty Knowledgebase]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Jelastic]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[OpenSUSE]]></category>
		<category><![CDATA[percona]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://askmonty.org/blog/?p=499</guid>
		<description><![CDATA[I just finished reading a couple of interesting, and somewhat related, blog posts which I think are worth sharing (apologies to anyone who has already seen them). One is from Jelastic and the other is from Michal Hrušecký.
I&#8217;ve written about MariaDB and the Jelastic cloud before (see MariaDB now available as a hosted database via Jelastic cloud platform). Now Jelastic has published statistics on the relative popularity of the various databases they offer. The good news is MariaDB is currently the database of choice for 14% of their customers. The bad news is that we&#8217;re in fourth place behind their other three database choices (MySQL, PostgreSQL, and MongoDB). However, MariaDB has only been available on their platform for a little over two months and we&#8217;re very happy that so many users of Jelastic&#8217;s state-of-the-art Java cloud are choosing to use MariaDB. Thanks! 
In the second blog post, Michal Hrušecký shares the results of what he terms his &#8220;little MySQL survey&#8221;. This time MariaDB comes in second behind MySQL Community Server (and ahead of MySQL Cluster and Percona Server). In case you didn&#8217;t know, Michal packages MySQL and MariaDB for openSUSE, so this survey was a good way for him to judge the relative popularity of some of the more popular variants and give him ideas on how to improve things.
BTW: If you know of other interesting/informative/etc&#8230; blog posts related to MariaDB, let us know so we can add them to the Blog Posts Relevant to MariaDB page of the AskMonty Knowledgebase!]]></description>
			<content:encoded><![CDATA[<p>I just finished reading a couple of interesting, and somewhat related, blog posts which I think are worth sharing (apologies to anyone who has already seen them). One is from <a href="http://jelastic.com/">Jelastic</a> and the other is from <a href="http://michal.hrusecky.net/">Michal Hrušecký</a>.</p>
<p>I&#8217;ve written about MariaDB and the Jelastic cloud before (see <a href="http://askmonty.org/blog/mariadb-and-jelastic/" title="MariaDB now available as a hosted database via Jelastic cloud platform">MariaDB now available as a hosted database via Jelastic cloud platform</a>). Now Jelastic has <a href="http://blog.jelastic.com/2011/10/19/database-marketshare-mysql-postgresql-mariadb-mongodb/" title="Database marketshare: MySQL, PostgreSQL, MariaDB, MongoDB">published statistics</a> on the relative popularity of the various databases they offer. The good news is MariaDB is currently the database of choice for 14% of their customers. The bad news is that we&#8217;re in fourth place behind their other three database choices (MySQL, PostgreSQL, and MongoDB). However, MariaDB has only been available on their platform for a little over two months and we&#8217;re very happy that so many users of Jelastic&#8217;s state-of-the-art Java cloud are choosing to use MariaDB. Thanks! </p>
<p>In the second blog post, Michal Hrušecký <a href="http://michal.hrusecky.net/2011/10/mysql-survey-results/" title="MySQL Survey Results">shares the results</a> of what he terms his &#8220;little MySQL survey&#8221;. This time MariaDB comes in second behind MySQL Community Server (and ahead of MySQL Cluster and Percona Server). In case you didn&#8217;t know, Michal packages MySQL and MariaDB for openSUSE, so this survey was a good way for him to judge the relative popularity of some of the more popular variants and give him ideas on how to improve things.</p>
<p>BTW: If you know of other interesting/informative/etc&#8230; blog posts related to MariaDB, let us know so we can add them to the <a href="http://kb.askmonty.org/en/blog-posts-relevant-to-mariadb" title="Blog Posts Relevant to MariaDB">Blog Posts Relevant to MariaDB</a> page of the AskMonty Knowledgebase!</p><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30427&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30427&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/10/19/mariadb-statistics-and-surveys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Same query, 3 databases, 3 different results</title>
		<link>http://databaseblog.myname.nl/2011/10/same-query-3-databases-3-different.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=same-query-3-databases-3-different-results</link>
		<comments>http://databaseblog.myname.nl/2011/10/same-query-3-databases-3-different.html#comments</comments>
		<pubDate>Wed, 12 Oct 2011 06:35:24 +0000</pubDate>
		<dc:creator>Daniel van Eeden</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[sqlite]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=6b10cd5fbe195bb706d5a3f512ee1b37</guid>
		<description><![CDATA[The SQL standard leaves a lot of room for different implementations. This is a little demonstration of one of such differences. SQLite&#160; 3.7.4sqlite&#62; create table t1 (id serial, t time);sqlite&#62; insert into t1(t) values ('00:05:10');sqlite&#62; select t,t*1.5 from t1;00:05:10&#124;0.0MySQL 5.6.4-m5mysql&#62; create table t1 (id serial, t time);Query OK, 0 rows affected (0.01 sec)mysql&#62; insert into t1(t) values ('00:05:10');Query OK, 1 row affected (0.00 sec)mysql&#62; select t,t*1.5 from t1;+----------+-------+&#124; t&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; t*1.5 &#124;+----------+-------+&#124; 00:05:10 &#124;&#160;&#160; 765 &#124;+----------+-------+1 row in set (0.00 sec)PostgreSQL 9.0.3test=# create table t1 (id serial, t time);NOTICE:&#160; CREATE TABLE will create implicit sequence "t1_id_seq" for serial column "t1.id"CREATE TABLEtest=# insert into t1(t) values ('00:05:10');INSERT 0 1test=# select t,t*1.5 from t1;&#160;&#160;&#160; t&#160;&#160;&#160;&#160; &#124; ?column? ----------+----------&#160;00:05:10 &#124; 00:07:45(1 row)I think that the behaviour from PostgreSQL is the correct one. MySQL will just remove the :'s to get the string 000510 and then multiplies that value. The behaviour from SQLite is even more strange.Of course for MySQL you could use the time_to_sec and sec_to_time functions.mysql&#62; select t,sec_to_time(time_to_sec(t)*1.5) from t1;+----------+-------------------------------+&#124; t&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; sec_to_time(time_to_sec(t)*2) &#124;+----------+-------------------------------+&#124; 00:05:10 &#124; 00:07:45 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124;+----------+-------------------------------+1 row in set (0.00 sec)But those functions are not available on SQLite.sqlite&#62; select t,sec_to_time(time_to_sec(t)*1.5) from t1;Error: no such function: sec_to_time]]></description>
			<content:encoded><![CDATA[The SQL standard leaves a lot of room for different implementations. This is a little demonstration of one of such differences. <br /><br />SQLite&nbsp; 3.7.4<br /><div>sqlite&gt; create table t1 (id serial, t time);<br />sqlite&gt; insert into t1(t) values ('00:05:10');<br />sqlite&gt; select t,t*1.5 from t1;<br />00:05:10|0.0</div><br />MySQL 5.6.4-m5<br /><span>mysql&gt; create table t1 (id serial, t time);</span><br /><span>Query OK, 0 rows affected (0.01 sec)</span><br /><br /><span>mysql&gt; insert into t1(t) values ('00:05:10');</span><br /><span>Query OK, 1 row affected (0.00 sec)</span><br /><br /><span>mysql&gt; select t,t*1.5 from t1;</span><br /><span>+----------+-------+</span><br /><span>| t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | t*1.5 |</span><br /><span>+----------+-------+</span><br /><span>| 00:05:10 |&nbsp;&nbsp; 765 |</span><br /><span>+----------+-------+</span><br /><span>1 row in set (0.00 sec)</span><br /><br />PostgreSQL 9.0.3<br /><span>test=# create table t1 (id serial, t time);</span><br /><span>NOTICE:&nbsp; CREATE TABLE will create implicit sequence "t1_id_seq" for serial column "t1.id"</span><br /><span>CREATE TABLE</span><br /><span>test=# insert into t1(t) values ('00:05:10');</span><br /><span>INSERT 0 1</span><br /><span>test=# select t,t*1.5 from t1;</span><br /><span>&nbsp;&nbsp;&nbsp; t&nbsp;&nbsp;&nbsp;&nbsp; | ?column? </span><br /><span>----------+----------</span><br /><span>&nbsp;00:05:10 | 00:07:45</span><br /><span>(1 row)</span><br /><br />I think that the behaviour from PostgreSQL is the correct one. MySQL will just remove the :'s to get the string 000510 and then multiplies that value. The behaviour from SQLite is even more strange.<br /><br />Of course for MySQL you could use the time_to_sec and sec_to_time functions.<br /><br /><span>mysql&gt; select t,sec_to_time(time_to_sec(t)*1.5) from t1;</span><br /><span>+----------+-------------------------------+</span><br /><span>| t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | sec_to_time(time_to_sec(t)*2) |</span><br /><span>+----------+-------------------------------+</span><br /><span>| 00:05:10 | 00:07:45 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span><br /><span>+----------+-------------------------------+</span><br /><span>1 row in set (0.00 sec)</span><br /><br />But those functions are not available on SQLite.<br /><div><br /></div><span>sqlite&gt; select t,sec_to_time(time_to_sec(t)*1.5) from t1;</span><br /><span>Error: no such function: sec_to_time</span><div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/1135944569112521190-6145188417378447042?l=databaseblog.myname.nl" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30276&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30276&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/10/12/same-query-3-databases-3-different-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When systems scale better than linearly</title>
		<link>http://www.xaprb.com/blog/2011/10/06/when-systems-scale-better-than-linearly/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=when-systems-scale-better-than-linearly</link>
		<comments>http://www.xaprb.com/blog/2011/10/06/when-systems-scale-better-than-linearly/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 02:33:37 +0000</pubDate>
		<dc:creator>Baron Schwartz (xaprb)</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2493</guid>
		<description><![CDATA[I&#8217;ve been seeing a few occasions where Neil J. Gunther&#8217;s Universal Scalability Law doesn&#8217;t seem to model all of the important factors in a system as it scales.  Models are only models, and they&#8217;re not the whole truth, so they never match reality perfectly. But there appear to be a small number of cases where systems can actually scale a bit better than linearly over a portion of the domain, due to what I&#8217;ve been calling an &#8220;economy of scale.&#8221; I believe that the Universal Scalability Law might need a third factor (seriality, coherency, and the new factor, economy of scale).  I don&#8217;t think that the results I&#8217;m seeing can be modeled adequately with only two parameters.

Here are two publicly available cases that appear to demonstrate this phenomenon: Robert Haas&#8217;s recent blog post on PostgreSQL, titled Scalability, in Graphical Form, Analyzed and Mikael Ronstrom&#8217;s post from May on MySQL (NDB) Cluster, titled Better than Linear Scaling is Possible.

Dr. Ronstrom&#8217;s post discusses the mechanics of the phenomenon, and speculates (I&#8217;m not sure it&#8217;s conclusive) that it is from a combination of partitioning and better use of CPU caches. Now someone needs to do the math to figure out how to include this factor into the equation.

The good thing about the Universal Scalability Law is how simple and applicable it is for many systems. It&#8217;s nice that this economy-of-scale factor seems to be unusual and the simpler model remains easy to apply for a large variety of tasks.

Further Reading:Products that scale linearly to hundreds of servers
Response-time optimization in systems that are queued
How to scale writes with master-master replication in MySQL
Subtleties in the Universal Scalability Law
A review of Guerrilla Capacity Planning by Neil Gunther]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been seeing a few occasions where <a href="http://www.perfdynamics.com/">Neil J. Gunther&#8217;s</a> Universal Scalability Law doesn&#8217;t seem to model all of the important factors in a system as it scales.  Models are only models, and they&#8217;re not the whole truth, so they never match reality perfectly. But there appear to be a small number of cases where systems can actually scale a bit better than linearly over a portion of the domain, due to what I&#8217;ve been calling an &#8220;economy of scale.&#8221; I believe that the Universal Scalability Law might need a third factor (seriality, coherency, and the new factor, economy of scale).  I don&#8217;t think that the results I&#8217;m seeing can be modeled adequately with only two parameters.</p>

<p>Here are two publicly available cases that appear to demonstrate this phenomenon: Robert Haas&#8217;s recent blog post on PostgreSQL, titled <a href="http://rhaas.blogspot.com/2011/09/scalability-in-graphical-form-analyzed.html">Scalability, in Graphical Form, Analyzed</a> and Mikael Ronstrom&#8217;s post from May on MySQL (NDB) Cluster, titled <a href="http://mikaelronstrom.blogspot.com/2011/05/better-than-linear-scaling-is-possible.html">Better than Linear Scaling is Possible</a>.</p>

<p>Dr. Ronstrom&#8217;s post discusses the mechanics of the phenomenon, and speculates (I&#8217;m not sure it&#8217;s conclusive) that it is from a combination of partitioning and better use of CPU caches. Now someone needs to do the math to figure out how to include this factor into the equation.</p>

<p>The good thing about the Universal Scalability Law is how simple and applicable it is for many systems. It&#8217;s nice that this economy-of-scale factor seems to be unusual and the simpler model remains easy to apply for a large variety of tasks.</p>

<p><strong>Further Reading:</strong><ul><li><a href="http://www.xaprb.com/blog/2010/11/02/products-that-scale-linearly-to-hundreds-of-servers/" rel="bookmark" title="Permanent Link: Products that scale linearly to hundreds of servers">Products that scale linearly to hundreds of servers</a></li>
<li><a href="http://www.xaprb.com/blog/2009/12/09/response-time-optimization-in-systems-that-are-queued/" rel="bookmark" title="Permanent Link: Response-time optimization in systems that are queued">Response-time optimization in systems that are queued</a></li>
<li><a href="http://www.xaprb.com/blog/2008/08/06/how-to-scale-writes-with-master-master-replication-in-mysql/" rel="bookmark" title="Permanent Link: How to scale writes with master-master replication in MySQL">How to scale writes with master-master replication in MySQL</a></li>
<li><a href="http://www.xaprb.com/blog/2011/04/16/subtleties-in-the-universal-scalability-law/" rel="bookmark" title="Permanent Link: Subtleties in the Universal Scalability Law">Subtleties in the Universal Scalability Law</a></li>
<li><a href="http://www.xaprb.com/blog/2010/07/06/a-review-of-guerrilla-capacity-planning-by-neil-gunther/" rel="bookmark" title="Permanent Link: A review of Guerrilla Capacity Planning by Neil Gunther">A review of Guerrilla Capacity Planning by Neil Gunther</a></li>
</ul><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30232&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30232&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/10/07/when-systems-scale-better-than-linearly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Hardware</title>
		<link>http://scale-out-blog.blogspot.com/2011/10/open-source-hardware.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=open-source-hardware</link>
		<comments>http://scale-out-blog.blogspot.com/2011/10/open-source-hardware.html#comments</comments>
		<pubDate>Sat, 01 Oct 2011 19:06:24 +0000</pubDate>
		<dc:creator>Robert Hodges</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[IT Industry]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://planetmysql.ru/?guid=e89c0dfdbc2156f7911dec4364550d30</guid>
		<description><![CDATA[Back in 2010 I stopped buying test servers from Dell and began building them from components using Intel i7 processors, X58-based mother boards, and modular power supplies from Ultra. &#160;It was a good way to learn about hardware. &#160;Besides, it was getting old to pay for Dell desktop systems with Windows, which I would then wipe off when installing Linux. &#160;Between the educational value of understanding the systems better, selecting the exact components I wanted, and being able to fix problems quickly, it has been one of the best investments I have ever made. &#160;And it didn't cost any more than equivalent Dell servers.For this reason, a couple of recent articles about computer hardware caught my attention. &#160;First, Dell is losing business as companies like Facebook build their own customized servers. &#160;Open source database performance experts like Peter Zaitsev have been talking about full-stack optimization including hardware for years. &#160;Google built their original servers using off-the-shelf parts. &#160;Vertical integration of applications and hardware has since gone mainstream. &#160;If you deploy the same application(s) on many machines, balancing characteristics like cost, performance, and power utilization is no longer a specialist activity but a necessity of business. &#160;It's not just cutting out the Microsoft tax but many other optimizations as well. Second, developments in hardware itself are making custom systems more attractive to a wide range of users. &#160;A recent blog post by Bunnie Huang describes how decreases in the slope of CPU clock speed increase over time mean you can get better cost/performance by building optimized, application-specific systems now than waiting for across-the-board improvements. &#160;Stable standards also drive down the difficulty of rolling your own. &#160;Components on mid-range servers are sufficiently standardized it is easier to build basic systems from components than to put together a bicycle from scratch. &#160;Try building your own wheels sometime if you don't believe this. Easily customizable hardware has important consequences. &#160;At a business level, Dell and other mainline hardware vendors will adapt to lower margins, but the market for generic, mid-range appliances has evaporated. &#160;Starting around 2005 there was a wave of companies trying to sell open source databases, memcached, and datamarts on custom hardware. &#160; Most seem to have moved away from hardware, like Schooner, &#160;or folded entirely (like Gear6&#160;and Kickfire). &#160;The long-term market for such appliances, to the extent it exists, is in the cloud. The other consequence is potentially far more significant. &#160;The traditional walls that encapsulated hardware and software design are breaking down. &#160;Big web properties or large ISPs like Rackspace run lean design teams that integrate hardware with open source software deployment. &#160;This not just a matter of software engineers learning about hardware or vice-versa. &#160;It is the tip of a much bigger iceberg. &#160;Facebook recently started the Open Compute Project, which is a community-based effort to design server infrastructure. &#160; In their own words:By releasing Open Compute Project technologies as open hardware, our goal is to develop servers and data centers following the model traditionally associated with open source software projects. That’s where you come in.Facebook and others are opening up data center design. &#160;Gamers have been building their own systems for years. &#160;Assuming Bunnie's logic is correct, open hardware will apply to wide range of devices from phones up to massive clusters. &#160;Community-based, customized system designs are no longer an oddity but part of a broad movement that will change the way all of us think about building and deploying applications on any kind of physical hardware. &#160;It will upset current companies but also create opportunities for new kinds of businesses. &#160;The "cloud" is not the only revolution in computing. &#160;Open source hardware has arrived. &#160;]]></description>
			<content:encoded><![CDATA[Back in 2010 I stopped buying test servers from Dell and began building them from components using Intel i7 processors, X58-based mother boards, and modular power supplies from Ultra. &nbsp;It was a good way to learn about hardware. &nbsp;Besides, it was getting old to pay for Dell desktop systems with Windows, which I would then wipe off when installing Linux. &nbsp;Between the educational value of understanding the systems better, selecting the exact components I wanted, and being able to fix problems quickly, it has been one of the best investments I have ever made. &nbsp;And it didn't cost any more than equivalent Dell servers.<br /><br />For this reason, a couple of recent articles about computer hardware caught my attention. &nbsp;First, <a href="http://www.bloomberg.com/news/2011-09-12/dell-loses-orders-as-facebook-do-it-yourself-servers-gain-tech.html">Dell is losing business as companies like Facebook build their own customized servers</a>. &nbsp;Open source database performance experts like <a href="http://www.mysqlperformanceblog.com/about/">Peter Zaitsev</a> have been talking about full-stack optimization including hardware for years. &nbsp;Google built their original servers using off-the-shelf parts. &nbsp;Vertical integration of applications and hardware has since gone mainstream. &nbsp;If you deploy the same application(s) on many machines, balancing characteristics like cost, performance, and power utilization is no longer a specialist activity but a necessity of business. &nbsp;It's not just cutting out the Microsoft tax but many other optimizations as well. <br /><br />Second, developments in hardware itself are making custom systems more attractive to a wide range of users. &nbsp;A <a href="http://www.bunniestudios.com/blog/?p=1863">recent blog post by Bunnie Huang</a> describes how decreases in the slope of CPU clock speed increase over time mean you can get better cost/performance by building optimized, application-specific systems now than waiting for across-the-board improvements. &nbsp;Stable standards also drive down the difficulty of rolling your own. &nbsp;Components on mid-range servers are sufficiently standardized it is easier to build basic systems from components than to put together a bicycle from scratch. &nbsp;Try building your own wheels sometime if you don't believe this. <br /><div><br />Easily customizable hardware has important consequences. &nbsp;At a business level, Dell and other mainline hardware vendors will adapt to lower margins, but the market for generic, mid-range appliances has evaporated. &nbsp;Starting around 2005 there was a wave of companies trying to sell open source databases, memcached, and datamarts on custom hardware. &nbsp; Most seem to have moved away from hardware, <a href="http://www.dbms2.com/2011/01/28/schooner-software-onl/">like Schooner</a>, &nbsp;or folded entirely (like <a href="http://gigaom.com/2010/04/26/gear6-rip/">Gear6</a>&nbsp;and <a href="http://www.infoworld.com/d/the-industry-standard/teradata-buys-analytics-vendor-kickfire-496">Kickfire</a>). &nbsp;The long-term market for such appliances, to the extent it exists, is in the cloud. <br /><br />The other consequence is potentially far more significant. &nbsp;The traditional walls that encapsulated hardware and software design are breaking down. &nbsp;Big web properties or large ISPs like Rackspace run lean design teams that integrate hardware with open source software deployment. &nbsp;This not just a matter of software engineers learning about hardware or vice-versa. &nbsp;It is the tip of a much bigger iceberg. &nbsp;Facebook recently started the <a href="http://opencompute.org/">Open Compute Project</a>, which is a community-based effort to design server infrastructure. &nbsp; In their own words:<br /><blockquote><i>By releasing Open Compute Project technologies as open hardware, our goal is to develop servers and data centers following the model traditionally associated with open source software projects. That’s where you come in.</i></blockquote>Facebook and others are opening up data center design. &nbsp;Gamers have been building their own systems for years. &nbsp;Assuming Bunnie's logic is correct, open hardware will apply to wide range of devices from phones up to massive clusters. &nbsp;Community-based, customized system designs are no longer an oddity but part of a broad movement that will change the way all of us think about building and deploying applications on any kind of physical hardware. &nbsp;It will upset current companies but also create opportunities for new kinds of businesses. &nbsp;The "cloud" is not the only revolution in computing. &nbsp;Open source hardware has arrived. &nbsp;</div><div><img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/768233104244702633-183325842346489353?l=scale-out-blog.blogspot.com" alt="" /></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30148&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=30148&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/10/01/open-source-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Summary for Week of September 5</title>
		<link>http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blog-summary-for-week-of-september-5</link>
		<comments>http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 23:55:40 +0000</pubDate>
		<dc:creator>Hovhannes Avoyan</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[m3]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Sysadmin Tools]]></category>
		<category><![CDATA[syslog-ng]]></category>
		<category><![CDATA[system management]]></category>

		<guid isPermaLink="false">http://blog.monitis.com/?p=3841</guid>
		<description><![CDATA[1. Apache and MySQL Logging with Syslog-ng
This article shows how to use the popular system logging tool Syslog-ng to log Apache and MySQL events. Apache does not log via syslog-ng by default so we go over two methods of easily remedying this. We also show how to use SQL queries to view syslog-ng data.
2. Using M3 to take System Monitors to the Next Level
Monitis provides built in functionality to monitor a wide variety of system statistics as well as the ability to create custom system monitors.  Monitis Monitor Manager, or M3 for short, allows you to take these custom monitors even further by providing you with a simple framework to use the incredible power of regular expressions to pull and format literally any kind of data and automatically send it over the wire to your Monitis dashboard.
3. How to Log to PostgreSQL with Syslog-ng
Here we show how to use syslog-ng to log and view PostgreSQL log data. We also include some tips on troubleshooting and avoiding annoyances.
4. 30 VMware vSphere Performance Tips
There’s a multitude of optimizations that can be made to make your vSphere setup perform at optimal levels .  This article covers 30 tips and tricks that will ensure the best performance from VMware’s vSphere and some even apply to other virtualization products. Some of the highlights are to Use only VMware-compatible hardware and Run your system through a burn-in/stress test.
Share Now:]]></description>
			<content:encoded><![CDATA[<p>1. <a href="http://blog.monitis.com/index.php/2011/09/05/apache-and-mysql-logging-with-syslog-ng/">Apache and MySQL Logging with Syslog-ng</a><br />
This article shows how to use the popular system logging tool Syslog-ng to log Apache and MySQL events. Apache does not log via syslog-ng by default so we go over two methods of easily remedying this. We also show how to use SQL queries to view syslog-ng data.</p>
<p>2. <a href="http://blog.monitis.com/index.php/2011/09/06/using-m3-to-take-custom-system-monitors-to-the-next-level/">Using M3 to take System Monitors to the Next Level</a><br />
Monitis provides built in functionality to monitor a wide variety of system statistics as well as the ability to create custom system monitors.  <a href="http://blog.monitis.com/index.php/2011/07/21/m3-monitis-monitor-manager/">Monitis Monitor Manager, or M3</a> for short, allows you to take these custom monitors even further by providing you with a simple framework to use the incredible power of regular expressions to pull and format literally any kind of data and automatically send it over the wire to your Monitis dashboard.</p>
<p>3. <a href="http://blog.monitis.com/index.php/2011/09/08/how-to-log-to-postgresql-with-syslog-ng/">How to Log to PostgreSQL with Syslog-ng</a><br />
Here we show how to use syslog-ng to log and view PostgreSQL log data. We also include some tips on troubleshooting and avoiding annoyances.</p>
<p>4. <a href="http://blog.monitis.com/index.php/2011/09/09/30-vmware-vsphere-performance-tips/">30 VMware vSphere Performance Tips</a><br />
There’s a multitude of optimizations that can be made to make your vSphere setup perform at optimal levels .  This article covers 30 tips and tricks that will ensure the best performance from VMware’s vSphere and some even apply to other virtualization products. Some of the highlights are to Use only VMware-compatible hardware and Run your system through a burn-in/stress test.</p>
<div><div><span>Share Now:</span></div><ul><li><a rel="nofollow" href="http://delicious.com/post?url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205&amp;notes=1.%20Apache%20and%20MySQL%20Logging%20with%20Syslog-ng%0D%0AThis%20article%20shows%20how%20to%20use%20the%20popular%20system%20logging%20tool%20Syslog-ng%20to%20log%20Apache%20and%20MySQL%20events.%20Apache%20does%20not%20log%20via%20syslog-ng%20by%20default%20so%20we%20go%20over%20two%20methods%20of%20easily%20remedying%20this.%20We%20al"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/delicious.png" class="sociable-img sociable-hovers" title="del.icio.us" alt="del.icio.us" /></a></li><li><a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205&amp;bodytext=1.%20Apache%20and%20MySQL%20Logging%20with%20Syslog-ng%0D%0AThis%20article%20shows%20how%20to%20use%20the%20popular%20system%20logging%20tool%20Syslog-ng%20to%20log%20Apache%20and%20MySQL%20events.%20Apache%20does%20not%20log%20via%20syslog-ng%20by%20default%20so%20we%20go%20over%20two%20methods%20of%20easily%20remedying%20this.%20We%20al"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow" href="http://www.facebook.com/share.php?u=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;t=Blog%20Summary%20for%20Week%20of%20September%205"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205&amp;source=Uptime+&amp;amp;+Performance+Tips+Tips+for+SysAdmin,+Webmaster,+Network+Admin&amp;summary=1.%20Apache%20and%20MySQL%20Logging%20with%20Syslog-ng%0D%0AThis%20article%20shows%20how%20to%20use%20the%20popular%20system%20logging%20tool%20Syslog-ng%20to%20log%20Apache%20and%20MySQL%20events.%20Apache%20does%20not%20log%20via%20syslog-ng%20by%20default%20so%20we%20go%20over%20two%20methods%20of%20easily%20remedying%20this.%20We%20al"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/linkedin.png" class="sociable-img sociable-hovers" title="LinkedIn" alt="LinkedIn" /></a></li><li><a rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;Title=Blog%20Summary%20for%20Week%20of%20September%205"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/blinklist.png" class="sociable-img sociable-hovers" title="BlinkList" alt="BlinkList" /></a></li><li><a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/dzone.png" class="sociable-img sociable-hovers" title="DZone" alt="DZone" /></a></li><li><a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205&amp;annotation=1.%20Apache%20and%20MySQL%20Logging%20with%20Syslog-ng%0D%0AThis%20article%20shows%20how%20to%20use%20the%20popular%20system%20logging%20tool%20Syslog-ng%20to%20log%20Apache%20and%20MySQL%20events.%20Apache%20does%20not%20log%20via%20syslog-ng%20by%20default%20so%20we%20go%20over%20two%20methods%20of%20easily%20remedying%20this.%20We%20al"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/googlebookmark.png" class="sociable-img sociable-hovers" title="Google Bookmarks" alt="Google Bookmarks" /></a></li><li><a rel="nofollow" href="http://reddit.com/submit?url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/reddit.png" class="sociable-img sociable-hovers" title="Reddit" alt="Reddit" /></a></li><li><a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/&amp;title=Blog%20Summary%20for%20Week%20of%20September%205"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li><li><a rel="nofollow" href="http://twitter.com/home?status=Blog%20Summary%20for%20Week%20of%20September%205%20-%20http://blog.monitis.com/index.php/2011/09/10/blog-summary-for-week-of-september-5/"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow" href="http://blog.monitis.com/index.php/feed/"><img src="http://blog.monitis.com/wp-content/plugins/sociable-30/pro/images/handycons/32/rss.png" class="sociable-img sociable-hovers" title="RSS" alt="RSS" /></a></li></ul></div><br/>PlanetMySQL Voting:
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=29960&vote=1&apivote=1">Vote UP</a> /
	 <a href="http://planet.mysql.com/entry/vote/?entry_id=29960&vote=-1&apivote=1">Vote DOWN</a>]]></content:encoded>
			<wfw:commentRss>http://planetmysql.ru/2011/09/11/blog-summary-for-week-of-september-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

