"Great minds think alike." :grin:

---
A. Soroka
The University of Virginia Library

> On Jan 11, 2017, at 9:52 AM, Claude Warren <cla...@xenei.com> wrote:
> 
> To be honest, I was thinking that if the graph notification for the
> cassandra graph needed to notify all the attached graph implementations of
> changes I would use Kafka or other similar pluggable Queue to do the
> notification.
> 
> Claude
> 
> On Wed, Jan 11, 2017 at 2:48 PM, A. Soroka <aj...@virginia.edu> wrote:
> 
>>> Perhaps we should look at a design for distributed update notification?
>> 
>> If this is something that seems interesting, it's worth noting that there
>> is a bunch of work on which to rely for this kind of problem. For example,
>> colleagues of mine have had success with Apache Kafka. No need for Jena to
>> reinvent any wheels.
>> 
>> ---
>> A. Soroka
>> The University of Virginia Library
>> 
>>> On Jan 11, 2017, at 7:24 AM, Claude Warren <cla...@xenei.com> wrote:
>>> 
>>> Cassandra does not support transactions.  However, I can see the use for
>> a
>>> bounding construct that indicates "all these triples were added/deleted."
>>> 
>>> The original driver for the Cassandra implementation was that we needed
>> one
>>> for a use case at work.  However, Cassandra is generally about speed of
>>> writes and scale. So expect that the Cassandra implementation will be
>>> viewed as large scale.  This leads me to some concerns about hash joins
>> but
>>> that is a side issue to be addressed in the Op stuff for the Cassandra
>>> implementation.
>>> 
>>> Perhaps we should look at a design for distributed update notification?
>>> 
>>> Claude
>>> 
>>> On Wed, Jan 11, 2017 at 11:53 AM, Andy Seaborne <a...@apache.org> wrote:
>>> 
>>>> Hi Claude,
>>>> 
>>>> On 09/01/17 19:22, Claude Warren wrote:
>>>> 
>>>>> Greetings,
>>>>> 
>>>>> Given that  the Cassandra server can host multiple client and  those
>>>>> clients can open the same graph on the server simultaneously.
>> Basically
>>>>> two updatable synchronized views on one data set.
>>>>> 
>>>>> Assume graph A is opened on client X and client Y and applications at X
>>>>> and
>>>>> Y both register listeners on the graph.
>>>>> 
>>>>> If application at X deletes a triple should the listener at Y be
>> notified?
>>>>> 
>>>>> I have been thinking about adding a queue based (JMS 1.1?) listener
>>>>> implementation so that distributed system would be notified of changes
>>>>> from
>>>>> remote systems.
>>>>> 
>>>> 
>>>> 
>>>> The second question deals with reasoners.  If the reasoners are using
>> the
>>>>> distributed graph store then I don't think there is an issue so perhaps
>>>>> this one goes away but.....
>>>>> 
>>>>> Reasoners do not like it  (don't respond to) data that is written into
>> the
>>>>> graph behind the scenes.  In a distributed environment does it make
>> sense
>>>>> to somehow utilize the graph listen messages (as noted above) to fire
>>>>> update rules?
>>>>> 
>>>> 
>>>> The current reasoners are written assuming changes happen via their API.
>>>> 
>>>> 
>>>>> Are there other issues that I have missed?
>>>>> 
>>>> 
>>>> The current event mechanism provides synchronous events - when the "add"
>>>> has returned the event has been fired.
>>>> 
>>>> 
>>>> The Cassandra graph is about scale?
>>>> 
>>>> Per triple events are very fine grained - what if a million triples are
>>>> added - will there be a million events?  And the whole update is sent to
>>>> all listeners by JMS?
>>>> 
>>>> 100 million triples?
>>>> 
>>>> 
>>>> Where I'm going with Delta is that changes get recorded (RDF Patch) so
>>>> that they can be applied elsewhere but also inspected. The granularity
>> is
>>>> different - the grain size is the transaction - a bunch of adds and
>> deletes.
>>>> 
>>>> So a different design is that an even on change at the end of
>> transaction
>>>> and that event is just notification something has happened and the event
>>>> listeners can choose to inspect the inspect the change or not.
>>>> 
>>>> I've also done where the patch drives sending an SPARQL Update to a
>> remote
>>>> copy - generally pure-push systems rather ones that pull the bulk
>> changes
>>>> because of issues like whether the client is ready to process the
>> event, is
>>>> actually running, there is a comms glitch or whether the client is
>> actually
>>>> interested in the content - they may, like the reasoners, be interested
>>>> that a change has happened but their action is not simply on the
>> content of
>>>> just the change.
>>>> 
>>>>       Andy
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> I like: Like Like - The likeliest place on the web
>>> <http://like-like.xenei.com>
>>> LinkedIn: http://www.linkedin.com/in/claudewarren
>> 
>> 
> 
> 
> -- 
> I like: Like Like - The likeliest place on the web
> <http://like-like.xenei.com>
> LinkedIn: http://www.linkedin.com/in/claudewarren

Reply via email to