You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Zirpins. Christian" <c....@seeburger.de> on 2013/07/15 15:30:25 UTC

Gora Cassandra module design rationale

Hi all,



in the course of evaluating Gora, I'm looking for information on the design rationale behind the Gora Cassandra module.



In particular, I'm trying to find information on the following (debatable?) points:



- Gora keys are mapped to C* partition keys only

- Gora requires the C* ByteOrderedPartitioner

- Comparators are always BYTESTYPE

- Gora makes extensive use of super column families

- The implementation has a hard-coded replication factor of 1



- Gora doesn't  seem to take advantage of native column ordering in C*

- Gora doesn't seem to utilize C* compound primary keys

- Gora doesn't seem to allow the use of per-operation consistency levels



Any pointers or upcoming discussions are appreciated.



Cheers,

Christian






...




SEEBURGER AG            Vorstand/Seeburger Executive Board:
Sitz der Gesellschaft/Registered Office:                Bernd Seeburger, Axel Haas, Michael Kleeberg
Edisonstr. 1
D-75015 Bretten         Vorsitzender des Aufsichtsrats/Chairperson of the Seeburger Supervisory Board:
Tel.: 07252 / 96 - 0            Dr. Franz Scherer
Fax: 07252 / 96 - 2222
Internet: http://www.seeburger.de               Registergericht/Commercial Register:
e-mail: info@seeburger.de               HRB 240708 Mannheim


Dieses E-Mail ist nur f?r den Empf?nger bestimmt, an den es gerichtet ist und kann vertrauliches bzw. unter das Berufsgeheimnis fallendes Material enthalten. Jegliche darin enthaltene Ansicht oder Meinungs?u?erung ist die des Autors und stellt nicht notwendigerweise die Ansicht oder Meinung der SEEBURGER AG dar. Sind Sie nicht der Empf?nger, so haben Sie diese E-Mail irrt?mlich erhalten und jegliche Verwendung, Ver?ffentlichung, Weiterleitung, Abschrift oder jeglicher Druck dieser E-Mail ist strengstens untersagt. Weder die SEEBURGER AG noch der Absender ( Zirpins. Christian ) ?bernehmen die Haftung f?r Viren; es obliegt Ihrer Verantwortung, die E-Mail und deren Anh?nge auf Viren zu pr?fen.


The present email addresses only the addressee which it targets and may contain confidential material that may be protected by the professional secret. The opinions reflected herein are not necessarily the one of the SEEBURGER AG. If you are not the addressee, you have accidentally got this email and are not enabled to use, publish, forward, copy or print it in any way. Neither SEEBURGER AG , nor the sender (Zirpins. Christian) are liable for viruses, being your own responsibility to check this email and its attachments for this purpose.


Re: Gora Cassandra module design rationale

Posted by Alfonso Nishikawa <al...@gmail.com>.
Hi Christian,

First of all I must say I am not a Cassandra user, but I will tell details
I found. I hope some of them would be useful.

> - Gora keys are mapped to C* partition keys only

I admit I don't have much knowledge about, so I have to look what is that
of the partition keys :(

> - Gora requires the C* ByteOrderedPartitioner

Same as last question :(

> - Comparators are always BYTESTYPE

I think I read about this somewhere hardcoded, yes.

> - Gora makes extensive use of super column families

True. If I am not wrong, It is discouraged since are deprecated. But at
this time we have to maintain compatibility at least until Gora 1.0.

> - The implementation has a hard-coded replication factor of 1

This could be improved in properties.I think I saw some ticket suggesting
that possibility of configuration, but my memory is not much reliable.

> - Gora doesn't  seem to take advantage of native column ordering in C*

I guess does not take advantage. (A)

> - Gora doesn't seem to utilize C* compound primary keys

No, does not use them. (B)

> - Gora doesn't seem to allow the use of per-operation consistency levels

I never heard about this. Interesting. I thought it was consistency
globally. (C)

> Any pointers or upcoming discussions are appreciated.

It seems you have been checking the code (it's a hard work). Thank you:)
For (A),(B) and (C) must understand that Gora at this moment is an
abstraction layer which allows changing backends. I personally will
appreciate ideas about features that will be in accordance with the
semantics involving the other datastores. At this moment what is completely
possible is adding configuration options.

Seems you have experience with Cassandra, so your comments will be much
useful. For example, why do you need compound keys. It could be possible to
add as feature and simulate in other datastores.

This is my opinion, of course.

I will be looking forward your comments.

Regards,

Alfonso Nishikawa