On 8 November 2016 at 19:13, Radim Vansa <rvansa(a)redhat.com> wrote:
I understand that you don't want to scare users off, but I would
mention
that at least in the section about deciding between embedded and Hot Rod:
"When connecting to an /Infinispan Server/ over the /Hot Rod client/, the
architecture is similar to having Hibernate connect to traditional database:
the data is stored on the /Infinispan Server/ nodes, and Hibernate OGM uses
a client with a pool of TCP connections to talk to the server."
Traditional databases are transactional, so I would put a notice about
no-transactions here, with a link to "9.3.4. Storage Principles of the
Infinispan Remote dataprovider"
Most people probably understand what *is* the loss of referential integrity,
but 9.3.4 is not really specific *when* does this happen. As you speak about
"interrupting Hibernate OGM", I would assume that this is limited to a case
when some operation fails (due to network breakage), but it's not clear that
this can happen even with successful concurrent operations. Therefore, an
example that can lead to broken integrity could be useful, along with
information about concurrent operations that are safe (basically saying that
if each session uses distinct set of entities, you are safe).
Ok, thanks I'll add the notice. I wouldn't go too much into an
explanation though, as it's supposed to be a reference documentation
and I feel like I'm writing a book about Infinispan :)
-
https://hibernate.atlassian.net/browse/OGM-1206
Is there any option to detect (and fix) the problems? (by a batch
job...?)
We'd be able to identify references leading nowhere, but it's also
possible that a once broken reference later leads to a valid entity...
we'd not be able to spot those, so I'm afraid that such a tool would
give a false sense of confidence.
I guess we could strictly ban ID reuse, then we could avoid this and
identify them safely; but what then? Deleting the owning entity is not
always the right thing to do. A user's callback?
I'm afraid it gets messy quickly.
But also.. remember: people seem to be happy with stuff like MongoDB.
Ignorance is a bliss?
Let's admit that we want to do better and do "the right thing":
clearly we need to work towards having proper transactions, or at
least fully atomic operations.
At least this OGM support is a great improvement in usability compared
to "roll your own" backend using native Hot Rod APIs; remember
Hibernate minimises the problem with referential integrity by updating
relations in "the right order", I suspect it even takes some skill to
craft an effective reproducer..
Thanks,
Sanne
Radim
On 11/08/2016 01:53 PM, Sanne Grinovero wrote:
>
> Thanks Radim!
>
> the blog attempts to be short, I mention the Referential Integrity
> problem in the reference documentation:
>
> "
> Referential integrity
> While we can use relations based on foreign keys, Infinispan has no
> notion of referential integrity. Hibernate is able to maintain the
> integrity as it won’t "forget" stale references, > but since the
> storage doesn’t support transactions either it is possible to
> interrupt Hibernate OGM during such maintenance and introduce breaks
> of integrity.
> "
> -
>
https://docs.jboss.org/hibernate/ogm/5.1/reference/en-US/html_single/#sto...
>
> It's not explicitly listed in the known limitations, as I consider it
> part of the "there's no transactions" point here:
> -
>
https://docs.jboss.org/hibernate/ogm/5.1/reference/en-US/html_single/#kno...
>
> You think that's enough? It's a though one, as I want to be clear
> about the limitations but w/o scaring people off by repeating
> limitations too many times.
> There are also various big highlighted baloons mentioning:
>
> "
> Caution
> The Hibernate OGM support for Infinispan Remote is considered
> experimental. "
>
> Happy to clarify the docs as needed.
>
> Thanks!
> Sanne
>
>
> On 8 November 2016 at 17:50, Radim Vansa <rvansa(a)redhat.com> wrote:
>>
>> Wouldn't it be worth mentioning the lack of referential integrity among
>> the limitations?
>>
>> Anyway, thumbs up!
>>
>> Radim
>>
>> On 11/08/2016 12:16 PM, Sanne Grinovero wrote:
>>>
>>> Hello everyone,
>>>
>>> we can finally announce that Hibernate OGM 5.1.0.Beta1 is released,
>>> and now includes support for Infinispan Server, alias Hot Rod, also
>>> known as Infinispan Remote ..
>>>
>>> -
http://in.relation.to/2016/11/08/hibernate-ogm-with-hotrod-support
>>>
>>> We also released Hibernate OGM 5.0.3.Final
>>>
>>> Kind Regards,
>>> Sanne
>>> _______________________________________________
>>> hibernate-dev mailing list
>>> hibernate-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>>
>> --
>> Radim Vansa <rvansa(a)redhat.com>
>> JBoss Performance Team
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
--
Radim Vansa <rvansa(a)redhat.com>
JBoss Performance Team