QRecall Community Forum
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Top Downloads] Top Downloads   [Groups] Back to home page 
[Register] Register /  [Login] Login 

Request to modify "Delete item" to have the ability to delete an item from selected layers RSS feed
Forum Index » Suggestions and Feedback
Author Message
Wayne Fruhwald


Joined: Nov 20, 2007
Messages: 11
Offline
Hi James.

Currently "Delete item" deletes the item from all layers of the archive.

There are times I would like to selectively delete an item from just one or more layers in the archive.

For example, I may have a large VM and to save space, I would like to delete older versions of the VM while preserving newer ones.

Regards,
Wayne
James Bucanek


Joined: Feb 14, 2007
Messages: 1572
Offline
Wayne Fruhwald wrote:There are times I would like to selectively delete an item from just one or more layers in the archive.

That's a tough one. I'll put it on the wish list, but that would be somewhat difficult to implement.

For example, I may have a large VM and to save space, I would like to delete older versions of the VM while preserving newer ones.
My knee jerk response is to say "then merge the layer with a newer one." That's what merging does. But trying to merge some items in a layer but not others creates anomalies in the archive's structure.

- QRecall Development -
[Email]
Wayne Fruhwald


Joined: Nov 20, 2007
Messages: 11
Offline
I would guess that you currently have a layer index that has an entry for each file in that layer. Assuming that to be true, it would seem that "Delete Item" for just one layer would only entail removing the appropriate file entry from that layer rather than removing it from all layers.

I must be missing something here. Would you explain why removing a file entry from one layer would be "difficult to implement."?
James Bucanek


Joined: Feb 14, 2007
Messages: 1572
Offline
Wayne Fruhwald wrote:I would guess that you currently have a layer index that has an entry for each file in that layer.

Programmers always find it amusing with other people guess how their code works.

Assuming that to be true, it would seem that "Delete Item" for just one layer would only entail removing the appropriate file entry from that layer rather than removing it from all layers.

I must be missing something here. Would you explain why removing a file entry from one layer would be "difficult to implement."?


OK, if you want to get technical, here's the problem. Each layer is essentially a directory structure that represents a complete picture of the captured items at the time they were captured. As QRecall examines the items being captured, it tries to find duplicate data and directory information already in the archive and creates links to it (not really links, but references since the archive is really a database not a directory structure). If a block of data is the same, it links to it. If a file hasn't changed, the layer simply refers to the file record in an older layer. If a directory hasn't change, it stores a reference to that entire directory. So each layer inherits everything that hasn't changed from previous layers.

Deleting an arbitrary file record from a layer would corrupt the data structure if any later layers referred to that record. Likewise, deleting a file from an arbitrary layer changes the "snapshot" of it's enclosing folder. This means that subsequent references to that enclosing folder in later layers are now invalid and might have to be rectified. This in turn would alter any reference to that folder, and its enclosing folder, and so on, and so on.

This problem is completely avoided by deleting the same item from every layer. This "vertical" deletion guarantees that there can't be any dangling references between layers, because all references to the item are deleted from every layer. The only housekeeping that must be done is to remove any direct references between the item and its enclosing folder in each layer, to and account for the size change in those folders. This is pretty straight forward and can be done very quickly.

So now you know.

- QRecall Development -
[Email]
Wayne Fruhwald


Joined: Nov 20, 2007
Messages: 11
Offline
James Bucanek wrote:So now you know.

Thanks for the description. Now it makes sense why it would be "difficult". I would still love to have the feature though!
James Bucanek


Joined: Feb 14, 2007
Messages: 1572
Offline
Duly noted. I've already added it to the wish list.

- QRecall Development -
[Email]
 
Forum Index » Suggestions and Feedback
Go to:   
Mobile view
Powered by JForum 2.8.2 © 2022 JForum Team • Maintained by Andowson Chang and Ulf Dittmer