<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: scale-out: notes on sharding, unique keys, foreign keys&#8230;</title>
	<atom:link href="http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/feed/" rel="self" type="application/rss+xml" />
	<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/</link>
	<description>yet another MySQL DBA blog</description>
	<lastBuildDate>Thu, 10 Sep 2009 22:56:30 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: jurriaanpersyn.com &#8212; Database Sharding at Netlog, with MySQL and PHP</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-275</link>
		<dc:creator>jurriaanpersyn.com &#8212; Database Sharding at Netlog, with MySQL and PHP</dc:creator>
		<pubDate>Thu, 12 Feb 2009 13:04:32 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-275</guid>
		<description>[...] oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys [...]</description>
		<content:encoded><![CDATA[<p>[...] oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karuna</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-271</link>
		<dc:creator>Karuna</dc:creator>
		<pubDate>Wed, 22 Oct 2008 10:00:32 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-271</guid>
		<description>Please suggest on any specific sharding algorithm to implement the database sharding in mysql.</description>
		<content:encoded><![CDATA[<p>Please suggest on any specific sharding algorithm to implement the database sharding in mysql.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sami</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-270</link>
		<dc:creator>Sami</dc:creator>
		<pubDate>Wed, 08 Oct 2008 20:47:55 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-270</guid>
		<description>Ben,

Could you please elaborate on how to make auto-incremented field globally unique? We are planning to implement sharding as a scaling solution for our database and having auto-incremented field globally unique is one of the requirements.

Based on my understanding of your approach, It seems like I need to know ahead of time how many shards I want to add and then skip the count by that number. Is this correct? Or I missed something?

Thanks,
Sami</description>
		<content:encoded><![CDATA[<p>Ben,</p>
<p>Could you please elaborate on how to make auto-incremented field globally unique? We are planning to implement sharding as a scaling solution for our database and having auto-incremented field globally unique is one of the requirements.</p>
<p>Based on my understanding of your approach, It seems like I need to know ahead of time how many shards I want to add and then skip the count by that number. Is this correct? Or I missed something?</p>
<p>Thanks,<br />
Sami</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Mangold</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-261</link>
		<dc:creator>Andrew Mangold</dc:creator>
		<pubDate>Thu, 31 Jan 2008 20:53:23 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-261</guid>
		<description>Ben,
I have the following configuration: Two co-master InnoDB databases (Local number portability LNP) 175M rows, 50GB data 300-400K updates/day V5.1.22 using statement level replication and slaved to each other, only one database taking updates at any given time. I have a MySQL Cluster 5.1.23 housing data for an SCP.  The SCP needs a subset of the LNP data (~10GB).  I had planned on slaving the MySQL Cluster to the co-master InnoDB databases and using a Stored Trigger to drop unneeded columns as LNP replication transactions are applied to the MySQL Cluster. But...the carrier customer has decided to use MS SQL Server 2005 to house the database of record and requires that LNP transactions be feed from the InnoDB database to the MS SQL Server 2005 database and for the MS SQL Server to send update transactions to the MySQL Cluster. All of which needs to happen in real time.  I was thinking about combining FreeTDS and the source for mysqlbinlog to build a utility to read the replication logs from InnoDB and apply them to MS SQL Server 2005.  Not sure how to get replication transactions from Ms SQL 2005 server and apply them to MySQL Cluster.  Thoughts???</description>
		<content:encoded><![CDATA[<p>Ben,<br />
I have the following configuration: Two co-master InnoDB databases (Local number portability LNP) 175M rows, 50GB data 300-400K updates/day V5.1.22 using statement level replication and slaved to each other, only one database taking updates at any given time. I have a MySQL Cluster 5.1.23 housing data for an SCP.  The SCP needs a subset of the LNP data (~10GB).  I had planned on slaving the MySQL Cluster to the co-master InnoDB databases and using a Stored Trigger to drop unneeded columns as LNP replication transactions are applied to the MySQL Cluster. But&#8230;the carrier customer has decided to use MS SQL Server 2005 to house the database of record and requires that LNP transactions be feed from the InnoDB database to the MS SQL Server 2005 database and for the MS SQL Server to send update transactions to the MySQL Cluster. All of which needs to happen in real time.  I was thinking about combining FreeTDS and the source for mysqlbinlog to build a utility to read the replication logs from InnoDB and apply them to MS SQL Server 2005.  Not sure how to get replication transactions from Ms SQL 2005 server and apply them to MySQL Cluster.  Thoughts???</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ben</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-239</link>
		<dc:creator>ben</dc:creator>
		<pubDate>Tue, 08 Jan 2008 05:43:06 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-239</guid>
		<description>dsheardown -

In our case, yes, we had a table in a small &quot;global&quot; database that contained accountid and shardids.  So you&#039;d look up an accountid and find out which shard that account was on.  Of course, it&#039;s important to have this table&#039;s database backed up and probably replicated.  If it is unavailable, that would make things difficult!

We were able to move accounts to new shards by adding their data to a new shard then simply changing that one entry in the accountid/shardid table to point to the new shard.

Thanks for reading!

Ben</description>
		<content:encoded><![CDATA[<p>dsheardown -</p>
<p>In our case, yes, we had a table in a small &#8220;global&#8221; database that contained accountid and shardids.  So you&#8217;d look up an accountid and find out which shard that account was on.  Of course, it&#8217;s important to have this table&#8217;s database backed up and probably replicated.  If it is unavailable, that would make things difficult!</p>
<p>We were able to move accounts to new shards by adding their data to a new shard then simply changing that one entry in the accountid/shardid table to point to the new shard.</p>
<p>Thanks for reading!</p>
<p>Ben</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dsheardown</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-237</link>
		<dc:creator>dsheardown</dc:creator>
		<pubDate>Mon, 07 Jan 2008 07:40:09 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-237</guid>
		<description>Hey, I am not really a DBA by any standard, although going through some design decisions about sharding with a new project.  I have read countless discussions on how to effectively &quot;scale out&quot; and not &quot;scale up&quot;.  

If I may ask a rather junior question:

In the global database, do you simply have say a table with the userid/accountid and then some identify to say which shard DB/server to look at?

Might sound rather rudimentary, but I guess you don&#039;t know if you don&#039;t ask!</description>
		<content:encoded><![CDATA[<p>Hey, I am not really a DBA by any standard, although going through some design decisions about sharding with a new project.  I have read countless discussions on how to effectively &#8220;scale out&#8221; and not &#8220;scale up&#8221;.  </p>
<p>If I may ask a rather junior question:</p>
<p>In the global database, do you simply have say a table with the userid/accountid and then some identify to say which shard DB/server to look at?</p>
<p>Might sound rather rudimentary, but I guess you don&#8217;t know if you don&#8217;t ask!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scalable web architectures &#187; Blog Archive &#187; Sharding: Different from Partitioning and Federation ?</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-45</link>
		<dc:creator>Scalable web architectures &#187; Blog Archive &#187; Sharding: Different from Partitioning and Federation ?</dc:creator>
		<pubDate>Sun, 09 Sep 2007 20:39:53 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-45</guid>
		<description>[...] Notes on sharding, unique keys, foreign keys [...]</description>
		<content:encoded><![CDATA[<p>[...] Notes on sharding, unique keys, foreign keys [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ben</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-17</link>
		<dc:creator>ben</dc:creator>
		<pubDate>Fri, 24 Aug 2007 18:36:19 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-17</guid>
		<description>Joel - We&#039;re doing what you described.  We have our lightweight database (we call it the global database) that associates users to shards.   We&#039;re working on scripts to move users from one shard to another if it becomes desirable.</description>
		<content:encoded><![CDATA[<p>Joel &#8211; We&#8217;re doing what you described.  We have our lightweight database (we call it the global database) that associates users to shards.   We&#8217;re working on scripts to move users from one shard to another if it becomes desirable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: joel</title>
		<link>http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-16</link>
		<dc:creator>joel</dc:creator>
		<pubDate>Fri, 24 Aug 2007 14:39:06 +0000</pubDate>
		<guid isPermaLink="false">http://oracle2mysql.wordpress.com/2007/08/23/scale-out-notes-on-sharding-unique-keys-foreign-keys/#comment-16</guid>
		<description>How are you partitioning your data? Just using a regular scheme to uniformly distribute the data? You might want to consider deciding how to partition stuff yourself. What happens if your ten busiest users are all on the same partition? You want a way to move users around from partition to partition to distribute the load. For that you&#039;d want to keep a lightweight database which associates users to shards and just do a quick look up each time so that you know which shard to go to or use mysql proxy to do that automatically for you.</description>
		<content:encoded><![CDATA[<p>How are you partitioning your data? Just using a regular scheme to uniformly distribute the data? You might want to consider deciding how to partition stuff yourself. What happens if your ten busiest users are all on the same partition? You want a way to move users around from partition to partition to distribute the load. For that you&#8217;d want to keep a lightweight database which associates users to shards and just do a quick look up each time so that you know which shard to go to or use mysql proxy to do that automatically for you.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
