Hi Michael,

I have created a prototype with the intent to evaluate this kind of solution. 
You can download the source code from GitHub [1]. It uses a very simple model 
and it is not feature complete, but you can easily verify the memory 
consumption problem.

You can create tenants after running the application. You can also fetch, 
create and edit data for each tenant. You can define the initial number of 
tenants changing the value of Application.MAX_ENTRIES property.

It is a good idea to run the application with a profiler attached.

[1]https://github.com/hprange/multi-tenant-prototype

Cheers,

Henrique

On 04/04/2011, at 12:49, Michael Gargano wrote:

> Sorry, I thought I replied all.  Thanks.  I'll start here.  With overhead I 
> just mean that the setup for a new EOF stack must not be very fast and my 
> guess is that it's going to use a fairly large amount of memory.
> 
> -Mike
> 
> On Apr 4, 2011, at 11:30 AM, Anjo Krank wrote:
> 
>> Please keep this on-list.
>> 
>> I haven't actually tried it and don't know what you mean by "overhead", but 
>> the core idea would be sth like:
>> 
>> public Session() {
>>  EOModelGroup modelGroup = new EOModelGroup();
>>  EOModel model = modelGroup.addModelWithPath("/some/where"); // model should 
>> be in a subfolder of "Resources" so it won't get loaded
>>  adjustConnectionDict(model);
>>  EOAdaptor adaptor = EOAdaptor.adaptorWithModel(model);
>>  EODatabaseContext dbc = new EODatabaseContext(adaptor);
>>  EOObjectStoreCoordinator osc = new EOObjectStoreCoordinator();
>>  osc.addCooperatingObjectStore(dbc);
>>  EOEditingContext ec = new EOEditingContext(osc);
>>  setDefaultEditingContext(ec);
>> }
>> 
>> This probably won't even compile, but should get you started. All other ECs 
>> must be created as 
>> 
>> new EOEditingContext(session().defaultEditingContext().parentObjectStore())
>> 
>> or from a thread-local.
>> 
>> Cheers, Anjo
>> 
>> 
>> Am 04.04.2011 um 17:17 schrieb Michael Gargano:
>> 
>>> This sounds good to me.  :-D  Two questions... how much overhead is this?  
>>> (as i'm sure this is not a light weight process)  where do i find out how 
>>> to dynamically create new eof stacks?
>>> 
>>> Thanks.
>>> -Mike
>>> 
>>> 
>>> On Apr 4, 2011, at 11:11 AM, Anjo Krank wrote:
>>> 
>>>> Actually, it's a yes. 
>>>> 
>>>> You can create one EOF stack per user and clone the model group so it's 
>>>> used in that stack. Then adjust the model dict for the connection and 
>>>> you're good to go. You need to take really good care you never use 
>>>> EOModelGroup.defaultGroup() anywhere, though.
>>>> 
>>>> Cheers, Anjo
>>>> 
>>>> Am 04.04.2011 um 17:04 schrieb Simon:
>>>> 
>>>>> i think it's a big no :-(
>>>>> 
>>>>> but you can definitely have multiple models - one for each db - and
>>>>> relationships between the models.
>>>>> 
>>>>> simon
>>>>> 
>>>>> On 4 April 2011 16:00, Michael Gargano <[email protected]> wrote:
>>>>>> Hi all,
>>>>>> 
>>>>>>    Is there a way to have a model connect to different databases 
>>>>>> simultaneously?  So, I have a schema that is rev. eng'ed but that same 
>>>>>> schema is on 10 different databases, I want to fetch data from different 
>>>>>> DB's for different users of the system simultaneously.  Is this 
>>>>>> possible?  omg.... please say YES.  :)
>>>>>> 
>>>>>> Thanks.
>>>>>> -Mike
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      ([email protected])
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/simon%40potwells.co.uk
>>>>>> 
>>>>>> This email sent to [email protected]
>>>>>> 
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      ([email protected])
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> http://lists.apple.com/mailman/options/webobjects-dev/anjo%40krank.net
>>>>> 
>>>>> This email sent to [email protected]
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      ([email protected])
>>>> Help/Unsubscribe/Update your Subscription:
>>>> http://lists.apple.com/mailman/options/webobjects-dev/mgargano%40escholar.com
>>>> 
>>>> This email sent to [email protected]
>>>> 
>>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/mgargano%40escholar.com
>> 
>> This email sent to [email protected]
>> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/hprange%40gmail.com
> 
> This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to