[Neo4j] Release 1.2.3 - Multitenancy

Peter Neubauer peter.neubauer at neotechnology.com
Tue Oct 4 16:16:16 CEST 2011


Vivek, Andreas,
very interesting design! Let's see how this works out in the longer
run - if it proves useful in other scenarios, maybe this is a good
pattern to propagate to others, and to pull down into some Java
library in order to be usable from other stacks, too!

Cheers,

/peter neubauer

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org               - Your high performance graph database.
http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.



On Sun, Oct 2, 2011 at 9:12 AM, Vivek Prahlad <vivek.prahlad at gmail.com> wrote:
> Hi Peter,
>
> Yes, the multitenancy support only works via rails at the moment.
>
> It basically involves a few things:
>
> 1. The ability to change reference nodes for entities. If the reference node
> is set to a tenant (for example, a Customer or an Organization object
> instance), then two things happen:
>
> All traversals are scoped to happen under the tenant node. Thus Bill.all,
> for example, will always return the collection of bills attached to the
> current reference node.
> Lucene queries are scoped to an index that's created for a particular
> tenant. For this to work, the tenant node needs to have a unique 'name'
> property.
>
> The api to make this happen is Neo4j.threadlocal_ref_node = <your tenant
> node instance>. The framework automatically does traversals and lucene index
> lookups based on the current ref node. In the rails world, one place to set
> the threadlocal ref node would be in, say, a :before_filter in your
> ApplicationController
>
> 2. The ability to have entities that are shared across all tenants. This can
> be done like this:
>
>     class Currency
>       property :name
>       ref_node { Neo4j.default_ref_node }
>     end
> This ensures that all currency instances are attached to the default
> reference node. Currency.all / find etc. will always return the same results
> regardless of what the current threadlocal ref node is. This allows us to
> create shared reference data that is common across all tenants.
>
> Cheers,
> Vivek
>
> On Sun, Oct 2, 2011 at 12:16 PM, Peter Neubauer
> <peter.neubauer at neotechnology.com> wrote:
>>
>> Very cool Andres, Vivek and Deepak,
>> The multi tenancy does only work from Rails?
>>
>> /Peter
>>
>> On Saturday, October 1, 2011, Andreas Ronge <andreas.ronge at gmail.com>
>> wrote:
>> > Hi
>> >
>> > I just released 1.2.3.
>> > See the documentation for the new cool feature - multitenancy -
>> > http://neo4j.rubyforge.org/guides/configuration.html#multitenancy
>> >
>> > CHANGELOG
>> > * Multitenancy support by namespaced-indices & changeable reference
>> > node (Vivek Prahlad, pull 41)
>> > * Added a Neo4j::Rails::Model#columns which returns all defined
>> > properties [#186]
>> > * Fixed validation associated entities, parent model should be invalid
>> > if its nested model(s) is invalid (Vivek Prahlad)
>> > * Fixed property validation to read value before conversion as per
>> > active model conventions (Deepak N)
>> > * Fixed property_before_type_cast for loaded models (Deepak N)
>> > * Better support for nested models via ActionView field_for [#185]
>> > * BUG: fix for null pointer issue after delete_all on
>> > Neo4j::Rails::Model#has_n relationships (Vivek Prahlad)
>> > * BUG: init_on_create was not called when creating a new relationship
>> > via the << operator [#183]
>> >
>> > Thanks again Deepak and Vivek !
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "neo4jrb" group.
>> > To post to this group, send email to neo4jrb at googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > neo4jrb+unsubscribe at googlegroups.com.
>> > For more options, visit this group at
>> > http://groups.google.com/group/neo4jrb?hl=en.
>> >
>> >
>>
>> --
>>
>> Cheers,
>>
>> /peter neubauer
>>
>> GTalk:      neubauer.peter
>> Skype       peter.neubauer
>> Phone       +46 704 106975
>> LinkedIn   http://www.linkedin.com/in/neubauer
>> Twitter      http://twitter.com/peterneubauer
>>
>> http://www.neo4j.org               - Your high performance graph database.
>> http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
>> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "neo4jrb" group.
>> To post to this group, send email to neo4jrb at googlegroups.com.
>> To unsubscribe from this group, send email to
>> neo4jrb+unsubscribe at googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/neo4jrb?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "neo4jrb" group.
> To post to this group, send email to neo4jrb at googlegroups.com.
> To unsubscribe from this group, send email to
> neo4jrb+unsubscribe at googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/neo4jrb?hl=en.
>


More information about the User mailing list