I think you have just volunteered to help refactor this code to make it more
composition friendly :)

On Wed, Jun 17, 2009 at 9:38 AM, Meredith Gregory
<lgreg.mered...@gmail.com>wrote:

> Derek,
>
> <soapbox>
> You have just demonstrated a process that i have been talking about for the
> last 15 years. People have a blind spot when it comes to thinking
> compositionally. They think -- almost to a person -- about "god's eye view"
> solutions where there's only one of some key solution component. They don't
> think about solutions that are composed of ... (wait for it)... solutions!
> It takes some serious training to think compositionally. Compositional
> solutions, however, are the only realistic way to scale. When solutions are
> compositional, you can *de*compose. The db example is a case in point. One
> of the most natural ways to scale data access is sharding and partitioning
> -- which requires upfront machinery to support decomposition of the store.
>
> Lest you feel bad, note that some of the best scientific minds of all time
> have fallen prey to this blind spot. Newtonian physics as well as Einstein's
> update to Newton's proposal is a non-compositional solution. Quantum
> mechanics also exhibits compositional failures. This is why physics is
> failing to find proposals that link theories of gravitation (essentially
> large scale) to quantum mechanical theories of the other forces (essentially
> very small scale) -- the physical theories are non-compositional -- they
> don't scale!
>
> One of the real things functional programming has going for it is that the
> basic model of computation underlying the means of structuring and
> manipulating programs is compositional. That's why it is important to have a
> technology like Scala resting atop the incumbent execution model (JVM) being
> deployed on web-scale problems. Compositionality is the only way to tackle
> applications at global scale.
> </soapbox>
>
> Thanks for getting the fix to this problem in so quickly.
>
> Best wishes,
>
> --greg
>
>
> On Tue, Jun 16, 2009 at 11:53 AM, Derek Chen-Becker <dchenbec...@gmail.com
> > wrote:
>
>> Using multiple EMs was not something I had considered when I wrote this. I
>> think that I can modify the code to provide a __nameSalt def to
>> differentiate instances. Let me work on it and I'll have something soon.
>>
>> Derek
>>
>>
>> On 6/16/09, Jean-Luc <jlcane...@gmail.com> wrote:
>>>
>>> For your information, here is an extract of source code of RequestVarEM :
>>>
>>> Trait RequestVarEM extends ScalaEntityManager with ScalaEMFactory {
>>>    object emVar extends RequestVar[EntityManager](openEM()) { ... }
>>> }
>>>
>>> EntityManager is stored in the singleton emVar; so, all db access of
>>> Model objects are made using the singleton emVar.
>>> => trait RequestVarEM allow only one connection to a database within the
>>> same HttpRequest context.
>>>
>>>
>>> Jean-Luc
>>>
>>> 2009/6/15 Jean-Luc <jlcane...@gmail.com>
>>>
>>>>  Hello,
>>>>
>>>> I have two databases, db1 (a.k.a. Motorbike) and db2 (a.k.a. Motorway)
>>>> defined with RequestVarEM :
>>>> - object ModelDb1 extends LocalEMF("db1") with RequestVarEM  //
>>>> Motorbike database
>>>> - object ModelDb2 extends LocalEMF("db2") with RequestVarEM  // Motorway
>>>> database
>>>>
>>>> I thought one could access to any databases independently from any
>>>> snippet as long as the correct Model object were used (ModelDb1 or ModelDb2
>>>> for exemple) ; but when I access both databases from the same page, the
>>>> second database access issues a "Named query not found" exception.
>>>>
>>>> I have two snippets, one to display a list of "motorbike", another to
>>>> display a list of "motorway" :
>>>> - page1 :
>>>> ModelDb1.createNamedQuery[Motorbike]("Motorbike.findAll).getResultList() =>
>>>> ok
>>>> - page2
>>>> : ModelDb2.createNamedQuery[Motorway]("Motorway.findAll).getResultList() =>
>>>> ok
>>>> - page3 : calling from page 3 motorbike & motorway snippets : Named
>>>> query not found: Motorway.findAll
>>>> - page4 : calling from page 4 motorway & motorbike snippets : Named
>>>> query not found: Motorbike.findAll
>>>> - page3 & changing the query of *Motorway* snippet :
>>>>   - 
>>>> ModelDb2.createNamedQuery[*Motorbike*]("*Motorbike*.findAll).getResultList()
>>>> => it's ok and I do NOT have an exception !
>>>>
>>>> I joined a sample application, ...
>>>>
>>>> any idea about this issue ?
>>>> (bad use of LocalEMF in the application code ? issue with LocalEMF or
>>>> RequestVarEM ?)
>>>>
>>>> Jean-Luc
>>>>
>>>> PS :
>>>> I don't know if it's related but I have this in the log :
>>>> [INFO] Checking for multiple versions of scala
>>>> [WARNING] Multiple versions of scala libraries detected!
>>>>
>>>>
>>>> --
>>>> Jean-Luc Canela
>>>> jlcane...@gmail.com
>>>>
>>>
>>>
>>>
>>> --
>>> Jean-Luc Canela
>>> jlcane...@gmail.com
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> L.G. Meredith
> Managing Partner
> Biosimilarity LLC
> 1219 NW 83rd St
> Seattle, WA 98117
>
> +1 206.650.3740
>
> http://biosimilarity.blogspot.com
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to