Last modified by Ravi Mendis on 2012/02/11 08:28

From version 131.1
edited by Ravi Mendis
on 2010/03/04 00:23
Change comment: There is no comment for this version
To version 133.1
edited by Ravi Mendis
on 2010/03/04 00:11
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,13 +1,9 @@
1 -Given that todays processors ship with dual or quad cores and server processors ship with between 8 to 32 cores, languages like Java, Ruby, Groovy and Python are struggling to keep up. Scala, as its name suggests is built from the ground-up for concurrent programming - a methodology that can take advantage of these modern multi-core processors.
1 +Given that todays processors ship with dual or quad cores and server processors ship with between 8 to 32 cores, languages like Java, Ruby, Groovy and Python are struggling to keep up.
2 2  
3 +Scala, as its name suggests is built from the ground-up for concurrent programming - a methodology that can take advantage of these modern multi-core processors.
4 +
3 3  If you use Scala for a concurrent programming, the chances are that you're using Scala Actor to do that.
4 4  
5 -{{info}}
6 -
7 -Concurrent programming in Scala is based on *Actors* and mailboxes - a common metaphor that is alternatively known as *Message Queues*.
8 -
9 -{{/info}}
10 -
11 11  == Using Scala Actors with EOF ==
12 12  
13 13  EOF being notoriously single-threaded, is incredibly unsuitable for use by Scala Actors.
... ... @@ -16,18 +16,3 @@
16 16  === Using EOAccess to execute SQL ===
17 17  
18 18  Use Wonder API: [[ERXEOAccessUtilities.evaluateSQLWithEntityNamed()>>http://webobjects.mdimension.com/hudson/job/Wonder53/javadoc/er/extensions/eof/ERXEOAccessUtilities.html#evaluateSQLWithEntity(com.webobjects.eocontrol.EOEditingContext,%20com.webobjects.eoaccess.EOEntity,%20java.lang.String)]]
19 -
20 -==== Caveats ====
21 -
22 -If you're updating the state of EOs directly using SQL from Scala Actors, you will subsequently need to refresh/refetch these EOs from the WebObjects application.
23 -
24 -== Alternatives ==
25 -
26 -You may also manipulate the database from outside of the EOF stack.
27 -
28 -=== Squeryl ===
29 -
30 -[[Squeryl>>http://max-l.github.com/Squeryl/index.html]] is a Scala [[Domain-specific language>>http://en.wikipedia.org/wiki/Domain-specific_language]] for SQL.
31 -You may update EOs from Scala Actors using Squeryl instead of using EOF. The advantage here is that you may access the database concurrently avoiding the single-threaded EOF bottleneck in your concurrent application.
32 -
33 -However the same caveat applies - you will need to refresh EOs in the EOF stack for the WebObjects application to reflect the changes made by Squeryl.