1.  I don't undestand "Table1.Column1 depends on Table2.Column2"
In Excel one cell depends on another, not column or row.
You can define table per cache as follows

IgniteCache<Integer, List<Cell>> table1 = ... // key is the row number of
table

and have cell dependencies cache as described earlier: IgniteCache<Cell,
Cell> deps = ...

Ignite fully supports ACID transactions [1] so keeping data in sync is not
a problem.
Formula should be stored inside Cell.

2. I already proposed a solution for resolving cell dependencies.

3. Ignite supports collocation processing. Refer [2] for details.

[1] https://apacheignite.readme.io/docs/transactions
[2] https://apacheignite.readme.io/docs/affinity-collocation




2016-05-27 20:56 GMT+03:00 Amit Shah <[email protected]>:

> Thanks for the replies.
>
> 1. With IgniteCache<Cell, Cell> I guess you have data dependencies in
> mind. By data dependencies I mean the Cell instance would contain actual
> data. Maintaining a graph of data dependencies like Excel does would not be
> practical because our use case could have millions on rows in a table and
> there could be many such tables. Keeping the graph in sync with the data
> updates would be one of the challenges. Creating and maintaining the graph
> would be another challenge. Hence I mentioned about having a graph of
> metadata in my initial post. For e.g. the graph could look like
> Table1.Column1 depends on Table2.Column2. The formula needs to be stored
> somewhere, somehow?
>
> 2. The other challenge would be determining the next set of rows to be
> updated i.e. assume that 5 rows of table 1 cause an update on another 50
> rows of table 2. The row keys of table 1 of those 5 rows determine which
> rows of table 2 need to be updated. How do we handle this in ignite
> efficiently?
>
> 3. How can I take the advantage of co-located processing with Ignite?
> Assuming that the subsequent table to be updated is on the same node as the
> previous it would be a good optimization to ship the update query on that
> node.
>
> Thank you,
> Amit.
>
>
> On Fri, May 27, 2016 at 9:08 PM, Alexei Scherbakov <
> [email protected]> wrote:
>
>> Of course you can store result of recalculation in the temp variable if
>> it's needed for next recalculation.
>>
>>
>> 2016-05-27 18:34 GMT+03:00 Alexei Scherbakov <
>> [email protected]>:
>>
>>> Hi,
>>>
>>> You can store cell dependencies as Ignite's data grid of
>>>
>>> IgniteCache<Cell, Cell> cells = ...
>>>
>>> where relation between key and value is interpreted like: value depends
>>> on key.
>>>
>>> When the cell is updated you do the following:
>>>
>>> Cell cell = updated;
>>> do {
>>>      recalculate(cell);
>>> } while( (cell = cells.get(cell)) != null);
>>>
>>> Did it help ?
>>>
>>>
>>>
>>>
>>>
>>> 2016-05-27 16:49 GMT+03:00 pragmaticbigdata <[email protected]>:
>>>
>>>> Hello,
>>>>
>>>> I have started exploring apache ignite by following the introductory
>>>> videos.
>>>> It looks quite promising and I wanted to understand if it will be well
>>>> suited for the use case I brief out below. If so, I would be glad to
>>>> hear
>>>> out on how could I approach it
>>>>
>>>> The use case is
>>>>
>>>> We are trying to implement cell level dependencies within multiple
>>>> tables.
>>>> It's similar to the functionality excel offers just that in our case it
>>>> could span across multiple tables. Imagine multiple cells in an excel
>>>> worksheet having interdependent formula's where updating a value in one
>>>> cell
>>>> causes another cell value to change and that cell update causes another
>>>> cell
>>>> value to update and so on and so forth. It is kind of graph of
>>>> dependencies
>>>> that determines what is the next row cell that needs to be updated.
>>>>
>>>> With apache ignite, what api's and data structures could I use to
>>>> maintain a
>>>> graph of inter-dependencies between multiple tables? Note that these
>>>> would
>>>> be metadata dependencies and not data.
>>>>
>>>> I would appreciate to get inputs on this.
>>>>
>>>> Thanks,
>>>> Amit
>>>>
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://apache-ignite-users.70518.x6.nabble.com/Simulating-Graph-Dependencies-With-Ignite-tp5282.html
>>>> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> Best regards,
>>> Alexei Scherbakov
>>>
>>
>>
>>
>> --
>>
>> Best regards,
>> Alexei Scherbakov
>>
>
>


-- 

Best regards,
Alexei Scherbakov

Reply via email to