I believe I heard someone talk at Cassandra SF conference about creating a
partitioner that was a derivation of RandomPartitioner.  It essentially
would look for keys that adhere to a certain pattern, like <key>:<subkey>.
 The <key> portion would be used for determining the location on the ring,
but <key>:<subkey> for actually storing.  This would allow groups of data
(all having the same <key>) to reside on the same node, while still
maintaining uniqueness across the entire keyspace.

Unbalanced nodes could still occur, but I don't think any worse than
wide/large rows can cause.


On 11/8/11 1:29 AM, "Daniel Doubleday" <daniel.double...@gmx.net> wrote:

>Ah cool - thanks for the pointer!
>
>On Nov 7, 2011, at 5:25 PM, Ed Anuff wrote:
>
>> This is basically what entity groups are about -
>> https://issues.apache.org/jira/browse/CASSANDRA-1684
>> 
>> On Mon, Nov 7, 2011 at 5:26 AM, Peter Lin <wool...@gmail.com> wrote:
>>> This feature interests me, so I thought I'd add some comments.
>>> 
>>> Having used partition features in existing databases like DB2, Oracle
>>> and manual partitioning, one of the biggest challenges is keeping the
>>> partitions balanced. What I've seen with manual partitioning is that
>>> often the partitions get unbalanced. Usually the developers take a
>>> best guess and hope it ends up balanced.
>>> 
>>> Some of the approaches I've used in the past were zip code, area code,
>>> state and some kind of hash.
>>> 
>>> So my question related deterministic sharding is this, "what rebalance
>>> feature(s) would be useful or needed once the partitions get
>>> unbalanced?"
>>> 
>>> Without a decent plan for rebalancing, it often ends up being a very
>>> painful problem to solve in production. Back when I worked mobile
>>> apps, we saw issues with how OpenWave WAP servers partitioned the
>>> accounts. The early versions randomly assigned a phone to a server
>>> when it is provisioned the first time. Once the phone was associated
>>> to that server, it was stuck on that server. If the load on that
>>> server was heavier than the others, the only choice was to "scale up"
>>> the hardware.
>>> 
>>> My understanding of Cassandra's current sharding is consistent and
>>> random. Does the new feature sit some where in-between? Are you
>>> thinking of a pluggable API so that you can provide your own hash
>>> algorithm for cassandra to use?
>>> 
>>> 
>>> 
>>> On Mon, Nov 7, 2011 at 7:54 AM, Daniel Doubleday
>>> <daniel.double...@gmx.net> wrote:
>>>> Allow for deterministic / manual sharding of rows.
>>>> 
>>>> Right now it seems that there is no way to force rows with different
>>>>row keys will be stored on the same nodes in the ring.
>>>> This is our number one reason why we get data inconsistencies when
>>>>nodes fail.
>>>> 
>>>> Sometimes a logical transaction requires writing rows with different
>>>>row keys. If we could use something like this:
>>>> 
>>>> prefix.uniquekey and let the partitioner use only the prefix the
>>>>probability that only part of the transaction would be written could
>>>>be reduced considerably.
>>>> 
>>>> 
>>>> 
>>>> On Nov 1, 2011, at 11:59 PM, Jonathan Ellis wrote:
>>>> 
>>>>> Hi all,
>>>>> 
>>>>> Two years ago I asked for Cassandra use cases and feature requests.
>>>>> [1]  The results [2] have been extremely useful in setting and
>>>>> prioritizing goals for Cassandra development.  But with the release
>>>>>of
>>>>> 1.0 we've accomplished basically everything from our original wish
>>>>> list. [3]
>>>>> 
>>>>> I'd love to hear from modern Cassandra users again, especially if
>>>>> you're usually a quiet lurker.  What does Cassandra do well?  What
>>>>>are
>>>>> your pain points?  What's your feature wish list?
>>>>> 
>>>>> As before, if you're in stealth mode or don't want to say anything in
>>>>> public, feel free to reply to me privately and I will keep it off the
>>>>> record.
>>>>> 
>>>>> [1] 
>>>>>http://www.mail-archive.com/cassandra-dev@incubator.apache.org/msg0114
>>>>>8.html
>>>>> [2] 
>>>>>http://www.mail-archive.com/cassandra-user@incubator.apache.org/msg014
>>>>>46.html
>>>>> [3] 
>>>>>http://www.mail-archive.com/dev@cassandra.apache.org/msg01524.html
>>>>> 
>>>>> --
>>>>> Jonathan Ellis
>>>>> Project Chair, Apache Cassandra
>>>>> co-founder of DataStax, the source for professional Cassandra support
>>>>> http://www.datastax.com
>>>> 
>>>> 
>>> 
>

Reply via email to