<?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: JRuby, sharing objects across multiple runtimes. JMagLev?</title>
	<atom:link href="http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/feed/" rel="self" type="application/rss+xml" />
	<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/</link>
	<description>Deleting code. Better than writing good code.</description>
	<lastBuildDate>Tue, 27 Dec 2011 02:37:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Nels</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-435</link>
		<dc:creator><![CDATA[Nels]]></dc:creator>
		<pubDate>Mon, 18 Oct 2010 04:06:41 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-435</guid>
		<description><![CDATA[Well, I have two ideas, both just experiments.  For one, I&#039;d like to try to play around with a no-sql web-application using Apache Tomcat and JRuby with a small Terracotta cluster for persistence.  I work for a company that makes use of service-oriented web-applications, for just about everything.  One of the bottlenecks in the collection of systems has always been these domain-specific web-services being chained together.  It&#039;d be nice to have a one-stop shop for all the data necessary for all applications.  But scalability for such solutions is always an issue.  If a Big Memory Terracotta cluster could be leveraged by an unlimited number of load-balanced VMs, then we might have a shot at such a solution.  The only problem would then be transaction management against the database.  But if the database could be eliminated altogether, then maybe it could work.

The other is for a personal project, just a small game for some friends, that makes heavy use of an object tree for managing the game world.  I&#039;ve found that initial world loads from a database on system startup is tricky, because of the recursive nature of the hierarchical structure.  I had seen the original MagLev demo and realized that it could provide a reasonable mechanism for reading and writing large object graphs like the one in my game from a persistent store on disk, clustered using Terracotta.

I see two main obstacles so far, but this is only speculation because I haven&#039;t managed to get JRuby to work with Terracotta for anything other than POJOs and Java Strings (instantiated inside the JRuby Runtime).

First, JRuby objects should be persisted into Terracotta automatically while configuring Terracotta to ignore any references to the JRuby Runtime instance itself, or its class loader.

Second, &quot;transactions&quot; would have to be managed automatically for specific object operations or entire instances of classes.  This could be configured either by possibly annotations or maybe a DSL.  Or some convention could be arranged.  Such transactions would require that a write operations requiring immediate consistency be completed for every Terracotta instance in the cluster, or at least for a &quot;master&quot; node where an application could go to get guaranteed consistent data.  Unfortunately, that node&#039;s SLA would be limited.  Other nodes could be written to ASAP for eventual consistency in the system.

Certainly there are tons of issues that would need to be addressed for any system resembling a highly available and scalable application.  But these things would be a start, and would allow two things: The use of a highly scalable platform for ruby web-application programming, and also the reduction of a traditional relational database model, which doesn&#039;t lend itself to massively interconnected hierarchical trees of objects with highly variable typing.

Well, I didn&#039;t think I&#039;d wind up writing this much stuff in this comment.  Thanks again for the work that you&#039;ve been doing.  It&#039;s been inspiring and interesting.  I hope it can soon be used for something very special.]]></description>
		<content:encoded><![CDATA[<p>Well, I have two ideas, both just experiments.  For one, I&#8217;d like to try to play around with a no-sql web-application using Apache Tomcat and JRuby with a small Terracotta cluster for persistence.  I work for a company that makes use of service-oriented web-applications, for just about everything.  One of the bottlenecks in the collection of systems has always been these domain-specific web-services being chained together.  It&#8217;d be nice to have a one-stop shop for all the data necessary for all applications.  But scalability for such solutions is always an issue.  If a Big Memory Terracotta cluster could be leveraged by an unlimited number of load-balanced VMs, then we might have a shot at such a solution.  The only problem would then be transaction management against the database.  But if the database could be eliminated altogether, then maybe it could work.</p>
<p>The other is for a personal project, just a small game for some friends, that makes heavy use of an object tree for managing the game world.  I&#8217;ve found that initial world loads from a database on system startup is tricky, because of the recursive nature of the hierarchical structure.  I had seen the original MagLev demo and realized that it could provide a reasonable mechanism for reading and writing large object graphs like the one in my game from a persistent store on disk, clustered using Terracotta.</p>
<p>I see two main obstacles so far, but this is only speculation because I haven&#8217;t managed to get JRuby to work with Terracotta for anything other than POJOs and Java Strings (instantiated inside the JRuby Runtime).</p>
<p>First, JRuby objects should be persisted into Terracotta automatically while configuring Terracotta to ignore any references to the JRuby Runtime instance itself, or its class loader.</p>
<p>Second, &#8220;transactions&#8221; would have to be managed automatically for specific object operations or entire instances of classes.  This could be configured either by possibly annotations or maybe a DSL.  Or some convention could be arranged.  Such transactions would require that a write operations requiring immediate consistency be completed for every Terracotta instance in the cluster, or at least for a &#8220;master&#8221; node where an application could go to get guaranteed consistent data.  Unfortunately, that node&#8217;s SLA would be limited.  Other nodes could be written to ASAP for eventual consistency in the system.</p>
<p>Certainly there are tons of issues that would need to be addressed for any system resembling a highly available and scalable application.  But these things would be a start, and would allow two things: The use of a highly scalable platform for ruby web-application programming, and also the reduction of a traditional relational database model, which doesn&#8217;t lend itself to massively interconnected hierarchical trees of objects with highly variable typing.</p>
<p>Well, I didn&#8217;t think I&#8217;d wind up writing this much stuff in this comment.  Thanks again for the work that you&#8217;ve been doing.  It&#8217;s been inspiring and interesting.  I hope it can soon be used for something very special.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fabio Kung</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-434</link>
		<dc:creator><![CDATA[Fabio Kung]]></dc:creator>
		<pubDate>Sun, 17 Oct 2010 03:45:25 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-434</guid>
		<description><![CDATA[Hi Nels,

Thanks for your comments! Unfortunately I haven&#039;t had any time yet to play with this JRuby/Terracotta integration. Then, answering your questions, there isn&#039;t a new version. :-(

Regarding the TIM, I haven&#039;t heard anything from the Terracotta guys. Probably there isn&#039;t one yet.

I&#039;m curious about what you are going to do with this stuff. Can you tell something about it?]]></description>
		<content:encoded><![CDATA[<p>Hi Nels,</p>
<p>Thanks for your comments! Unfortunately I haven&#8217;t had any time yet to play with this JRuby/Terracotta integration. Then, answering your questions, there isn&#8217;t a new version. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Regarding the TIM, I haven&#8217;t heard anything from the Terracotta guys. Probably there isn&#8217;t one yet.</p>
<p>I&#8217;m curious about what you are going to do with this stuff. Can you tell something about it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nels</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-426</link>
		<dc:creator><![CDATA[Nels]]></dc:creator>
		<pubDate>Mon, 11 Oct 2010 16:46:30 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-426</guid>
		<description><![CDATA[Hi Fabio!  I&#039;m a Java/JRuby dev, it&#039;s been over a year since I first read about your JMagLev concept, and I was wondering if you had made any updates to your project recently?

I&#039;m interested in using it with the latest version of JRuby (1.5.3), and I have two questions:

Is there a version available (or method for achieving the same) that does not require a patch to the JRuby source (since it is often changing)?  That is, is there a way to simply programmatically specify particular ruby classes or - even better - individual ruby variables in the JVM for sharing across JVMs?

Is there a TIM yet?

Thanks in advance for your time, and well done with this project!]]></description>
		<content:encoded><![CDATA[<p>Hi Fabio!  I&#8217;m a Java/JRuby dev, it&#8217;s been over a year since I first read about your JMagLev concept, and I was wondering if you had made any updates to your project recently?</p>
<p>I&#8217;m interested in using it with the latest version of JRuby (1.5.3), and I have two questions:</p>
<p>Is there a version available (or method for achieving the same) that does not require a patch to the JRuby source (since it is often changing)?  That is, is there a way to simply programmatically specify particular ruby classes or &#8211; even better &#8211; individual ruby variables in the JVM for sharing across JVMs?</p>
<p>Is there a TIM yet?</p>
<p>Thanks in advance for your time, and well done with this project!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hubert Łępicki</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-150</link>
		<dc:creator><![CDATA[Hubert Łępicki]]></dc:creator>
		<pubDate>Thu, 29 Jan 2009 22:31:53 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-150</guid>
		<description><![CDATA[That&#039;s really interesting - however I doubt that your approach with making all global variables accessible from all instances will make big community around it. I think it&#039;s better to specify which variables you need to share, and rest (default) shouldn&#039;t be shared.]]></description>
		<content:encoded><![CDATA[<p>That&#8217;s really interesting &#8211; however I doubt that your approach with making all global variables accessible from all instances will make big community around it. I think it&#8217;s better to specify which variables you need to share, and rest (default) shouldn&#8217;t be shared.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Play with JMaglev yourself &#171; Fabio Kung</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-127</link>
		<dc:creator><![CDATA[Play with JMaglev yourself &#171; Fabio Kung]]></dc:creator>
		<pubDate>Sat, 22 Nov 2008 21:05:32 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-127</guid>
		<description><![CDATA[[...] releasing my experiments with JRuby and Terracotta, so you can play with JMaglev and contribute some code. The project is in [...]]]></description>
		<content:encoded><![CDATA[<p>[...] releasing my experiments with JRuby and Terracotta, so you can play with JMaglev and contribute some code. The project is in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danilo Sato &#187; Blog Archive &#187; [Rails Summit Latin America] Conference Report</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-121</link>
		<dc:creator><![CDATA[Danilo Sato &#187; Blog Archive &#187; [Rails Summit Latin America] Conference Report]]></dc:creator>
		<pubDate>Tue, 04 Nov 2008 18:04:27 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-121</guid>
		<description><![CDATA[[...] to watch my friend Fabio Kung present on JRuby and give a real-life demo of his experiments with JMagLev. After that, we all went to watch the closing keynote, by Obie Fernandez. It was a great talk about [...]]]></description>
		<content:encoded><![CDATA[<p>[...] to watch my friend Fabio Kung present on JRuby and give a real-life demo of his experiments with JMagLev. After that, we all went to watch the closing keynote, by Obie Fernandez. It was a great talk about [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: blog.caelum.com.br &#187; JRuby on Rails, no Rails Summit Latin America</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-113</link>
		<dc:creator><![CDATA[blog.caelum.com.br &#187; JRuby on Rails, no Rails Summit Latin America]]></dc:creator>
		<pubDate>Wed, 22 Oct 2008 03:23:40 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-113</guid>
		<description><![CDATA[[...] o Ribs do Ola Bini, que permitirá o uso do Hibernate em projetos JRuby. O segundo foi o demo do JMaglev, usando Nailgun, já que tinha bastante gente que achava que o vídeo que postei era [...]]]></description>
		<content:encoded><![CDATA[<p>[...] o Ribs do Ola Bini, que permitirá o uso do Hibernate em projetos JRuby. O segundo foi o demo do JMaglev, usando Nailgun, já que tinha bastante gente que achava que o vídeo que postei era [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fabio Kung</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-112</link>
		<dc:creator><![CDATA[Fabio Kung]]></dc:creator>
		<pubDate>Tue, 21 Oct 2008 16:03:24 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-112</guid>
		<description><![CDATA[@Mark

1) Unfortunately not in the next (1.1.5). There are things that must be tuned yet. I&#039;ve already discussed a bit with Charles Nutter. The main points are: a) global object identity, b) shared metaclasses. But it is already usable.

2) Not yet. That is my next step; or perhaps I will open the source in github first.]]></description>
		<content:encoded><![CDATA[<p>@Mark</p>
<p>1) Unfortunately not in the next (1.1.5). There are things that must be tuned yet. I&#8217;ve already discussed a bit with Charles Nutter. The main points are: a) global object identity, b) shared metaclasses. But it is already usable.</p>
<p>2) Not yet. That is my next step; or perhaps I will open the source in github first.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-109</link>
		<dc:creator><![CDATA[Mark]]></dc:creator>
		<pubDate>Tue, 21 Oct 2008 06:35:36 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-109</guid>
		<description><![CDATA[Very nice.  
1) Are the required JRuby changes likely to make it into a released JRuby?  
2) Was the Terracotta &#039;side-of-things&#039; written as a Terracotta Integration Module (TIM)?]]></description>
		<content:encoded><![CDATA[<p>Very nice.<br />
1) Are the required JRuby changes likely to make it into a released JRuby?<br />
2) Was the Terracotta &#8216;side-of-things&#8217; written as a Terracotta Integration Module (TIM)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guilherme Cirne</title>
		<link>http://fabiokung.com/2008/10/08/jruby-sharing-objects-across-multiple-runtimes-jmaglev/#comment-102</link>
		<dc:creator><![CDATA[Guilherme Cirne]]></dc:creator>
		<pubDate>Fri, 10 Oct 2008 03:45:59 +0000</pubDate>
		<guid isPermaLink="false">http://fabiokung.wordpress.com/?p=72#comment-102</guid>
		<description><![CDATA[Very impressive! Just as impressive as the original MagLev demo that I was lucky enough to see at RailsConf.]]></description>
		<content:encoded><![CDATA[<p>Very impressive! Just as impressive as the original MagLev demo that I was lucky enough to see at RailsConf.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

