Hi Aaron,

I appreciate your help. I am a newbie to Cassandra - just began to study the
code-base.

Do you suggest the following approach?

*1) No changes are in either keyspace names or column family names but the
row-key would be ‘the actual row key’ + 'tenant ID'. It is needed to keep
separate mappings for keyspace vs tenants and column family vs tenants (can
be a form of authorization).*

2) *keep a keyspace per tenant yet expose virtually as many keyspaces.*

3)* A single keyspace for all tenant *

What do you mean by 'use namespaces in the keys'?  Can a key be an QName?

Thanks,

Indika


On Tue, Jan 18, 2011 at 5:26 PM, indika kumara <indika.k...@gmail.com>wrote:

> Moving to user list
>
>
> On Tue, Jan 18, 2011 at 4:05 PM, Aaron Morton <aa...@thelastpickle.com>wrote:
>
>> Have a read about JVM heap sizing here
>> http://wiki.apache.org/cassandra/MemtableThresholds
>>
>> If you let people create keyspaces with a mouse click you will soon run
>> out of memory.
>>
>> I use Cassandra to provide a self service "storage service" at my
>> organization. All virtual databases operate in the same Cassandra keyspace
>> (which does not change), and I use namespaces in the keys to separate
>> things. Take a look at how amazon S3 works, it may give you some ideas.
>>
>> If you want to continue to discussion let's move this to the user list.
>>
>> A
>>
>>
>> On 17/01/2011, at 7:44 PM, indika kumara <indika.k...@gmail.com> wrote:
>>
>> > Hi Stu,
>> >
>> > In our app,  we would like to offer cassandra 'as-is' to tenants. It
>> that
>> > case, each tenant should be able to create Keyspaces as needed. Based on
>> the
>> > authorization, I expect to implement it. In my view, the implementation
>> > options are as follows.
>> >
>> > 1) The name of a keyspace would be 'the actual keyspace name' + 'tenant
>> ID'
>> >
>> > 2) The name of a keyspace would not be changed, but the name of a column
>> > family would be the 'the actual column family name' + 'tenant ID'.  It
>> is
>> > needed to keep a separate mapping for keyspace vs tenants.
>> >
>> > 3) The name of a keypace or a column family would not be changed, but
>> the
>> > name of a column would be 'the actual column name' + 'tenant ID'. It is
>> > needed to keep separate mappings for keyspace vs tenants and column
>> family
>> > vs tenants
>> >
>> > Could you please give your opinions on the above three options?  if
>> there
>> > are any issue regarding above approaches and if those issues can be
>> solved,
>> > I would love to contribute on that.
>> >
>> > Thanks,
>> >
>> > Indika
>> >
>> >
>> > On Fri, Jan 7, 2011 at 11:22 AM, Stu Hood <stuh...@gmail.com> wrote:
>> >
>> >>> (1) has the problem of multiple memtables (a large amount just isn't
>> >> viable
>> >> There are some very straightforward solutions to this particular
>> problem: I
>> >> wouldn't rule out running with a very large number of
>> >> keyspace/columnfamilies given some minor changes.
>> >>
>> >> As Brandon said, some of the folks that were working on multi-tenancy
>> for
>> >> Cassandra are no longer focused on it. But the code that was generated
>> >> during our efforts is very much available, and is unlikely to have gone
>> >> stale. Would love to talk about this with you.
>> >>
>> >> Thanks,
>> >> Stu
>> >>
>> >> On Thu, Jan 6, 2011 at 8:08 PM, indika kumara <indika.k...@gmail.com>
>> >> wrote:
>> >>
>> >>> Thank you very much Brandon!
>> >>>
>> >>> On Fri, Jan 7, 2011 at 12:40 AM, Brandon Williams <dri...@gmail.com>
>> >>> wrote:
>> >>>
>> >>>> On Thu, Jan 6, 2011 at 12:33 PM, indika kumara <
>> indika.k...@gmail.com
>> >>>>> wrote:
>> >>>>
>> >>>>> Hi Brandon,
>> >>>>>
>> >>>>> I would like you feedback on my two ideas for implementing mufti
>> >>> tenancy
>> >>>>> with the existing implementation.  Would those be possible to
>> >>> implement?
>> >>>>>
>> >>>>> Thanks,
>> >>>>>
>> >>>>> Indika
>> >>>>>
>> >>>>>>>>>> Two vague ideas: (1) qualified keyspaces (by the tenet domain)
>> >>> (2)
>> >>>>> multiple Cassandra storage configurations in a single node (one per
>> >>>>> tenant).
>> >>>>> For both options, the resource hierarchy would be /cassandra/
>> >>>>> <cluster_name>/<tenant name (domain)>/keyspaces/<ks_name>/
>> >>>>>
>> >>>>
>> >>>> (1) has the problem of multiple memtables (a large amount just isn't
>> >>> viable
>> >>>> right now.)  (2) more or less has the same problem, but in JVM
>> >> instances.
>> >>>>
>> >>>> I would suggest a) not trying to offer cassandra itself, and instead
>> >>> build
>> >>>> a
>> >>>> service that uses cassandra under the hood, and b) splitting up
>> tenants
>> >>> in
>> >>>> this layer.
>> >>>>
>> >>>> -Brandon
>> >>>>
>> >>>
>> >>
>>
>
>

Reply via email to