<?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>Open Query blog &#187; graphs</title>
	<atom:link href="http://openquery.com/blog/tag/graphs/feed" rel="self" type="application/rss+xml" />
	<link>http://openquery.com/blog</link>
	<description>About MySQL, Drizzle, MariaDB and more!</description>
	<lastBuildDate>Sun, 29 Apr 2012 23:48:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>OQGRAPH engine on MySQL University &#8211; 5 Nov 2009 10:00 UTC</title>
		<link>http://openquery.com/blog/oqgraph-engine-mysql-university-5-nov-2009-1000-utc</link>
		<comments>http://openquery.com/blog/oqgraph-engine-mysql-university-5-nov-2009-1000-utc#comments</comments>
		<pubDate>Tue, 03 Nov 2009 12:48:04 +0000</pubDate>
		<dc:creator>arjen</dc:creator>
				<category><![CDATA[GRAPH engine]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[graphengine]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[hierachies]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[MySQL University]]></category>
		<category><![CDATA[open query]]></category>
		<category><![CDATA[OQGRAPH]]></category>
		<category><![CDATA[trees]]></category>

		<guid isPermaLink="false">http://openquery.com/blog/?p=1107</guid>
		<description><![CDATA[Only a few weeks after Walter&#8217;s session on Multi-Master Replication with MMM and thanks to the great gang at MySQL Docs (my colleagues from long ago!) I&#8217;ll be doing a MySQL University session in a few days, about the GRAPH computation engine. From talks/demos I&#8217;ve done about it so far, I&#8217;ve learnt that people love [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://forge.mysql.com/w/images/7/7a/Mysql-university-128.png" alt="MySQL University logo" width="128" height="128" />Only a few weeks after Walter&#8217;s session on Multi-Master Replication with MMM and thanks to the great gang at MySQL Docs (my colleagues from long ago!) I&#8217;ll be doing a MySQL University session in a few days, about the <a href="http://openquery.com/graph" target="_blank">GRAPH computation engine</a>. From talks/demos I&#8217;ve done about it so far, I&#8217;ve learnt that people love it but there are lots of interesting questions. After all, it&#8217;s a pretty new and in a way exotic thing.</p>
<p>MySQL University uses DimDim, an online presentation service. You&#8217;ll see slides, and hear my voice. You can also type questions in a live chat room. We actually even got desktop sharing working so a live demo is possible, we&#8217;ll see how that goes on the day (I&#8217;ll make sure to have static slides for the same also <img src='http://openquery.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>For session details and the exact link to DimDim, see the <a href="http://forge.mysql.com/wiki/GRAPH_computation_engine_for_MySQL" target="_blank">MySQL uni page for the OQGRAPH session</a>.</p>
<p>To attend, please calculate the starting time for your local timezone! It&#8217;ll be very early in the morning for US people, however for Europe it will be late morning, and Asia/Pacific will be evening. If you miss the live session, there&#8217;ll be a recording online soon afterwards and of course you can contact me for questions anyway. Still, it would be be cool if lots of people attended live, that&#8217;s always extra useful. Hope to meet you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://openquery.com/blog/oqgraph-engine-mysql-university-5-nov-2009-1000-utc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GRAPH engine &#8211; Mk.II</title>
		<link>http://openquery.com/blog/graph-engine-mkii</link>
		<comments>http://openquery.com/blog/graph-engine-mkii#comments</comments>
		<pubDate>Fri, 16 Oct 2009 13:57:03 +0000</pubDate>
		<dc:creator>arjen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[friend of a friend]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[GRAPH engine]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[hierarchies]]></category>
		<category><![CDATA[hierarchy]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Open Query]]></category>
		<category><![CDATA[shortest path]]></category>
		<category><![CDATA[social graph]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[tree traversal]]></category>
		<category><![CDATA[trees]]></category>

		<guid isPermaLink="false">http://openquery.com/blog/?p=1023</guid>
		<description><![CDATA[The GRAPH engine allows you to deal with hierarchies and graphs in a purely relational way. So, we can find all children of an item, path from an item to a root node, shortest path between two items, and so on, each with a simple basic query structure using standard SQL grammar. The engine is [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://openquery.com/products/graph-engine">GRAPH engine</a> allows you to deal with hierarchies and graphs in a purely relational way. So, we can find all children of an item, path from an item to a root node, shortest path between two items, and so on, each with a simple basic query structure using standard SQL grammar.</p>
<p>The engine is implemented as a MySQL/MariaDB 5.1 plugin (we&#8217;re working on a 5.0 backport for some clients) and thus runs with an unmodified server.</p>
<p>Demo time! I&#8217;ll simplify/strip a little bit here for space reasons, but what&#8217;s here is plain cut/paste from a running server, no edits</p>
<pre>-- insert a few entries with connections (and multiple paths)
insert into foo (origid, destid) values (1,2), (2,3), (2,4), (4,5), (3,6), (5,6);
-- a regular table to join on to
insert into people values (1,"pearce"),(2,"hunnicut"),(3,"potter"),
                          (4,"hoolihan"),(5,"winchester"),(6,"mulcahy");</pre>
<pre>-- find us the shortest path from pearce (1) to mulcahy (6) please
select group_concat(people.name order by seq) as path
  from foo join people on (foo.linkid=people.id)
  where latch=1 and origid=1 and destid=6;
+--------+--------+--------------------------------+
| origid | destid | path                           |
+--------+--------+--------------------------------+
|      1 |      6 | pearce,hunnicut,potter,mulcahy |
+--------+--------+--------------------------------+</pre>
<pre>-- find us all people we can get to from potter (3)
select origid,group_concat(people.name order by seq) as destinations
  from foo join people on (foo.linkid=people.id)
  where latch=1 and origid=3;
+--------+----------------+
| origid | destinations   |
+--------+----------------+
|      3 | mulcahy,potter |
+--------+----------------+

-- find us all people from where we can get to hoolihan (4)
select origid,group_concat(people.name order by seq) as origins
  from foo join people on (foo.linkid=people.id)
  where latch=1 and destid=4;
+--------+--------------------------+
| origid | origins                  |
+--------+--------------------------+
|      4 | hoolihan,hunnicut,pearce |
+--------+--------------------------+</pre>
<p>So, there you have it. A graph (in this case a simple unidirectional tree, aka hierarchy) that looks like a table to us, as do the resultsets that have been computed.</p>
<p>This is still a early implementation, we&#8217;re still enhancing the storage efficiency (in memory) and speed, and adding persistence. We&#8217;re also looking for a suitable large dataset that would allow us to seriously test the system, find bugs and assess speed. If you happen to have a large hierarchical structure, but especially a social graph you could obfuscate and give to us, that would be great!</p>
<p>Also, if you&#8217;re interested in deploying the <a href="http://openquery.com/products/graph-engine">GRAPH engine</a> or have questions or additional needs, we&#8217;d be happy to <a href="http://openquery.com/contact">talk</a> with you.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 639px; width: 1px; height: 1px;">select origid,group_concat(people.name order by seq) as destinations from foo join people on (foo.linkid=people.id) where latch=1 and origid=4;<br />
+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
| origid | destinations                |<br />
+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br />
|      4 | mulcahy,winchester,hoolihan |<br />
+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+</div>
]]></content:encoded>
			<wfw:commentRss>http://openquery.com/blog/graph-engine-mkii/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
