On 23 January 2014 17:54, Mircea Markus <mmarkus(a)redhat.com> wrote:
On Jan 23, 2014, at 5:48 PM, William Burns <mudokonman(a)gmail.com> wrote:
> Hello all,
>
> I have been working with notifications and most recently I have come
> to look into events generated when a new entry is created. Now
> normally I would just expect a CacheEntryCreatedEvent to be raised.
> However we currently raise a CacheEntryModifiedEvent event and then a
> CacheEntryCreatedEvent. I notice that there are comments around the
> code saying that tests require both to be fired.
it doesn't sound right to me: modified is different than created.
I'd tend to agree with you, still it's a matter of perception as I could say
"a key is changing value from null to some new value so it's an update"..
I realize it's a bit far fetched, still if you start introducing
tombstones for eventual consistency you can have a longer history of
changes to append to even if it's just a "creation".
For example with this sequence of commands:
Put(K1, V1), Remove(K1), Put(K1, V2) < Creation event?
As the history sequence for this entry is
V1 - null - V2
And in case of asynchronous CacheStores, Remote eventlistener, X-site,
.. and all other features where you might have coalescing of changes
applied, this sequence could be "compacted" as
V1 - V2
Is the write of V2 still a creation event?
I don't necessarily disagree with the choice, but it's not that simple
and will have consequent complexities down the road.
Personally I think you should drop the differentiation between the two
event types, as it's over-promising on something that we can't deliver
consistently.
Sanne
>
> I am wondering if anyone has an objection to only raising a
> CacheEntryCreatedEvent on a new cache entry being created. Does
> anyone know why we raise both currently? Was it just so the
> PutKeyValueCommand could more ignorantly just raise the
> CacheEntryModified pre Event?
>
> Any input would be appreciated, Thanks.
Cheers,
--
Mircea Markus
Infinispan lead (
www.infinispan.org)
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev