ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vkulichenko <valentin.kuliche...@gmail.com>
Subject Re: The result of cross-cache SQL joins is incomplete.
Date Tue, 10 Nov 2015 22:38:23 GMT
Hi,

See my answers inline...

-Val


ght230 wrote
> 1.What is wrong with my setting?

If you collocate more than two tables, they need to have the same affinity
key. In your case you collocate UserOrder/OrderGood pair by orderid and
UserOrder/User pair by userid. Since orders are not collocated with users
(and vice versa), you get inconsistent query results. To solve this you can
switch either User or OrderGood cache to replicated mode.

ght230 wrote
> 2.For such crosscache queries, are there common rules(such as how to set
> cache mode, how to set AffinityKey) used for programming, 
> because we have so many queries and some queries are not fixed.If each
> query need to be individually programmed it will be difficult.

This always depends on your data model. The common approach to start with is
to put all relatively small and less frequently updated tables into
replicated caches and then use partitioned caches with proper collocation
for other tables. You should choose one entity by which you want to divide
your data and collocate everything by its ID. For example, if you choose to
collocate by user ID, you will have all data that belongs to some user
(orders, etc.) on the same node where the user resides. In your particular
case it's a bit more complicated because of many-to-many relationship - you
don't know where to store an order because it can belong to different users
that can be stored on different nodes. In this case you have to move more
tables to replicated mode or denormalize data model so that many-to-many
relationships are replaced with one-to-many.

ght230 wrote
> 3.I have learned that in version 1.5, Ignite will support Distributive SQL
> Joins.Does it meant we do not need to care about cache mode and
> AffinityKey?

Yes, but this will potentially cause performance degradation (collocated
queries are always faster than non-collocated). So you should use this only
if collocation is not an option for some reason or if the application is not
performance sensitive.

ght230 wrote
> 4.When will Ignite-1.5 release?

I don't know the exact date. We're in the final stage, but still have
several critical issues to fix. Anyway, I think you can expect it in the
nearest future.

-Val



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/The-result-of-cross-cache-SQL-joins-is-incomplete-tp1723p1921.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Mime
View raw message