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
