It's clear now. Thanks for the information Igor. Regards, Kamal C
On Fri, Jul 15, 2016 at 9:32 PM, Igor Rudyak <[email protected]> wrote: > Hi Kamal, > > Partitions in Cassandra are controlled by the partition key you selected. > Using Ignite-Cassandra module you have two options to specify Cassandra > partition key: > > - Use POJO persistence strategy along with @AffinityKeyMapped annotation > for your key classes. In a such way all you partition key fields for > Cassandra table will be detected automatically. > > - Use POJO persistence strategy and prepare Cassandra persistence > descriptor ( > http://apacheignite.gridgain.org/docs/base-concepts#persistencesettingsbean) > where you can manually specify all your mappings to Cassandra including > partition key. > > For more details you can look at the "base concepts" page > http://apacheignite.gridgain.org/docs/base-concepts and examples > http://apacheignite.gridgain.org/docs/examples > > Just want to clarify once again - Cassandra partitions and Ignite > partitions are two absolutely different concepts. It doesn't make sense to > map Ignite partitions to the same set of Cassandra partitions - you'll just > have significant Cassandra performance degradation on large data sets. > Cassandra partitioning is all about evenly distributing data among the > cluster nodes. It's absolutely normal to have billions partitions in > Cassandra. > > > Igor Rudyak > > > On Fri, Jul 15, 2016 at 12:03 AM, Kamal C <[email protected]> wrote: > >> Val, >> >> I too have some concerns to use cassandra partitioned table. For initial >> version, I'm using PRIMITIVE / BLOB >> persistent strategy to store the key-value pair. Thanks for the support :) >> >> Igor, >> >> Still, I'm not clear. Cassandra and Ignite uses different partition >> strategy. Assume a Ignite Cache is configured >> to have 64 partitions and POJO persistent strategy is used in cassandra, >> Then, >> >> PersonKey key = new PersonKey(id, companyId); // companyId is mapped as >> affinity key. >> >> If the range of companyId is [1-10000]. I don't want to create that many >> partitions in the >> cassandra table. >> >> >> Regards, >> Kamal C >> >> >> >> On Fri, Jul 15, 2016 at 5:13 AM, Igor Rudyak <[email protected]> wrote: >> >>> Hi Kamal, >>> >>> Ignite Cassandra module takes into account AffinityFunction when >>> persisting values into Cassandra( >>> https://apacheignite.readme.io/docs/overview). Thus key/values having >>> the same Affinity and collocated on one Ignite node will be also collocated >>> on one node in Cassandra. >>> >>> Cassandra and Ignite partitions are two absolutely different animals, it >>> doesn't make sense to compare them. Just check that you are using >>> @AffinityKeyMapped annotation for your key classes. In a such way all >>> the values having same affinity will be persisted on the same Cassandra >>> node. >>> >>> Igor Rudyak >>> >>> >>> On Thu, Jul 14, 2016 at 4:12 PM, vkulichenko < >>> [email protected]> wrote: >>> >>>> Hi Kamal, >>>> >>>> >>>> Kamal wrote >>>> > 1. In Ignite partitioned cache, number of partitions can be configured >>>> > using AffinityFunction. How to configure the same for the >>>> > Cassandra table ? >>>> > >>>> > 2. Will the partitioner used by Cassandra (MurMur3) and the Ignite >>>> > returns the same partition number for a cache key ? >>>> >>>> Ignite and Cassandra use completely different partitioning strategy and >>>> I >>>> don't think it will be an easy task to collocate them. But from my >>>> experience, it's actually better not to do this, but have Cassandra and >>>> Ignite on separate physical servers and scale them separately. Most >>>> likely >>>> you will need different number of nodes for Ignite and Cassandra to fit >>>> your >>>> performance requirements. >>>> >>>> >>>> Kamal wrote >>>> > 3. Say a cache is configured to hold 2 lakh elements in memory >>>> > and rest of them in cassandra. If the cache contains more than >>>> > 2 lakh elements, Then, >>>> > >>>> > a. Calling cache.size() method returns count as 2 lakh >>>> > b. Using cache.iterator() able to iterate only the elements available >>>> > in the memory >>>> > c. With cache.removeAll() able to delete the entries in cassandra >>>> > that are available in the memory. >>>> >>>> Answer on all the three questions is YES. >>>> >>>> >>>> Kamal wrote >>>> > How to get the total size of a cache ? (memory + cassandra) >>>> >>>> Data which is evicted from Ignite is not in cache anymore. You have to >>>> use >>>> Cassandra APIs to get the number entries in its storage. >>>> >>>> -Val >>>> >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://apache-ignite-users.70518.x6.nabble.com/Cassandra-Cache-Store-Example-tp6206p6315.html >>>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >>>> >>> >>> >> >
