Am 15.01.25 um 11:50 schrieb Fabian Grünbichler:
> 
>> Fiona Ebner <f.eb...@proxmox.com> hat am 15.01.2025 11:46 CET geschrieben:
>>
>>  
>> Am 15.01.25 um 11:15 schrieb Fabian Grünbichler:
>>>
>>>> Fiona Ebner <f.eb...@proxmox.com> hat am 15.01.2025 11:06 CET geschrieben:
>>>>
>>>>  
>>>> Am 15.01.25 um 10:51 schrieb Fabian Grünbichler:
>>>>>
>>>>> basically what we have is the following situation:
>>>>>
>>>>> - we have some input data (volid+snapname)
>>>>> - we have a key derived from the input data (block node name)
>>>>> - we have a value (block node)
>>>>> - we need to be be able to map back the block node (name) to the input 
>>>>> data
>>>>
>>>> Oh, we need to map back too? But that can be done via filename in the
>>>> block node, or not?
>>>
>>> but that filename is the result of PVE::Storage::path which is not stable, 
>>> so we can't compare that?
>>>
>>> for snapshot operations, we need to find out "which block node is the one 
>>> for the snapshot volume". we can't rely on the filename in the block graph 
>>> for that, because how we map from volid+snapname to that filename might 
>>> have changed on our end since that bock node was set up. so we need to find 
>>> a way to map using (parts of) the block node name, which means
>>> - having a naming scheme that allows to map back from node name to 
>>> volid+snapname (i.e., the hashing scheme we are discussing ;))
>>> - never re-using a block node for something other than what is encoded in 
>>> its name (not sure if that possible?)
>>>
>>> while an operation is ongoing, we can have $prefix-$hash-1 and 
>>> $prefix-$hash-2 at the same time, and if we then end up with having just 
>>> $prefix-$hash-2 after the operation that doesn't matter since we can 
>>> reliably map that back via the $hash to volid+snapname.
>>
>> How would you map back from the hash? Wouldn't that require computing
>> the hashes for all known volid+snapname and comparing which one matches?
>> Or do you mean having a lookup-table, i.e. Perl hash keeping track of
>> the hash => volid+snapname mappings?
> 
> if you are looking for the block node currently referencing volid A in 
> snapshot X, you calculate the hash for them, and then look at the list of 
> block nodes which should only contain one block node named using that hash. 
> "mapping back" is a bit of a misnomer I guess ;) we just want to know which 
> node corresponds to a *known* input pair, not get the input pair from the 
> node alone.

Yes, I was confused by "mapping back". Thanks for the clarification!


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to