Re: Question about the node deletion

2020-09-24 Thread Julian Reschke

Am 24.09.2020 um 17:56 schrieb fengiaw:

Hi devs,


I am working on JackRabbit Oak jcr, and have questions about the node deletion.
Our backend store is using mysql.
When I check the data in mysql, I can see two fields related to deletion, one is 
"_deleted" and the other one is "deletedOnce".
 From the documentation, "deletedOnce" only indicates if the doc is deleted 
once, what the prupose of this field?
 From these two fields, how could I determine whether a node is indeed deleted 
(Not using apis, e.g. session.nodeExists) ?
I was relying on the "_deleted" field, and tried to use the latest value of it 
to determine whether it's gotten deleted.
For example,
_deleted={r173bcb4360b-0-34d=false, r173bcb2fb8f-0-34d=false, 
r173bcaf6d2c-0-34e=false, r173bcae10fa-0-350=false, r173bcac5862-0-34d=false, 
r173bcac5859-0-34d=false, r173bc9bf9f0-0-342=false, r173bc9a42ce-0-343=false, 
r173bc994dce-0-34d=false, r173bc962853-0-34d=false, r173bc942ceb-0-34d=false, 
r173baa5a789-0-329=true, r1739196c343-1-2e9=false}.


The latest value is "r173bcb4360b-0-34d=false", base on this, I assume it's not 
deleted. But actually, I have deleted this node via our UI, and it disappears in explorer 
as well.
So the question here is from the mysql record, what is the best/correct way to 
determin a node indeed exists or gets deleted?


That's an implementation detail - you are not supposed to look at the DB.

That said, the details are contained in the source of DocumentStore
RevisionGC; essentially these are only flags that are used to find the
nodes that might qualify for permanent deletion (but might still be
needed, for instance, because they are referenced by a checkpointed state).

Best regards, Julian


Question about the node deletion

2020-09-24 Thread fengiaw
Hi devs,


I am working on JackRabbit Oak jcr, and have questions about the node deletion.
Our backend store is using mysql.
When I check the data in mysql, I can see two fields related to deletion, one 
is "_deleted" and the other one is "deletedOnce".
From the documentation, "deletedOnce" only indicates if the doc is deleted 
once, what the prupose of this field?
From these two fields, how could I determine whether a node is indeed deleted 
(Not using apis, e.g. session.nodeExists) ?
I was relying on the "_deleted" field, and tried to use the latest value of it 
to determine whether it's gotten deleted.
For example, 
_deleted={r173bcb4360b-0-34d=false, r173bcb2fb8f-0-34d=false, 
r173bcaf6d2c-0-34e=false, r173bcae10fa-0-350=false, r173bcac5862-0-34d=false, 
r173bcac5859-0-34d=false, r173bc9bf9f0-0-342=false, r173bc9a42ce-0-343=false, 
r173bc994dce-0-34d=false, r173bc962853-0-34d=false, r173bc942ceb-0-34d=false, 
r173baa5a789-0-329=true, r1739196c343-1-2e9=false}.


The latest value is "r173bcb4360b-0-34d=false", base on this, I assume it's not 
deleted. But actually, I have deleted this node via our UI, and it disappears 
in explorer as well.
So the question here is from the mysql record, what is the best/correct way to 
determin a node indeed exists or gets deleted?


Thank for your support,
Feng