Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


Ubuntu snap deduplication


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Ubuntu Ubuntu snap deduplication

Hi,
I think the ubuntu snap is great idea.
However the fact that it may contain duplications has two disadvantages.
1) eating more space in the storage.
2) eating more space in the internal memory (RAM), it will load the same library more than once to the memory.

Now the solution for this is simple.
We can have one directory that is called the repository, and it will contain all the libraries and binaries of all the snap packages.
The name of the file in this repositories will be the sha-256 of their content, so only if the two files are identical, they will override each other, but in this case it won't matter because they are the same.
The snap package itself will contain hard link to the libraries and binaries that it is using from the repositories.
So if two different snap package will use exactly the same version of Java/python (etc etc..), it will be stored only once, and will be load only once.
We can also count the number of hard link for every file in central repositories, and if it only one, then it mean that no snap repositories is any more using this binaries, and it can be deleted.

This way all snap package are isolated, but we have no duplication.

Now I say nothing new here, other said it already, I am just repeating what they have said.

What I don't understand is they are not implementing it ?
I mean it sound like an easy problem to solve.

What is holding back the snap developer from doing it?

Are there any obstacle that I am not aware of ?

can any of the snap developers tell me what prevent them from implementing this?

I mean it sound not very easy , but maybe I am not aware of issues.

So I hope someone can explain to me why this is not implemented?
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
SNAP EDR issue.
uxadmin007
Hi, Does anybody use Enterprise Data Replicator for Network Attached Storage replication. If you do, Do you get the following message in replication logs. "Replication Source file agent No heart beats from the remote target agent on snap01 for 300 seconds: Assuming connection failure" ...... Red Hat
1
Red Hat
snap file for other system?
lijiajin
Hi all For AIX we can snap -gc gather the info how abt other systems is solaris and linux? thanks in advance jiajin... UNIX for Dummies Questions & Answers
0
UNIX for Dummies Questions & Answers
scf_snapshot_create(3SCF)												 scf_snapshot_create(3SCF)

NAME
scf_snapshot_create, scf_snapshot_handle, scf_snapshot_destroy, scf_snapshot_get_parent, scf_snapshot_get_name, scf_snapshot_update, scf_instance_get_snapshot - create and manipulate snapshot handles and snapshots in the Service Configuration Facility
SYNOPSIS
cc [ flag... ] file... -lscf [ library... ] #include <libscf.h> scf_snapshot_t *scf_snapshot_create(scf_handle_t *handle); scf_handle_t *scf_snapshot_handle(scf_snapshot_t *snap); void scf_snapshot_destroy(scf_snapshot_t *snap); int scf_snapshot_get_parent(const scf_snapshot_t *snap, scf_instance_t *inst); ssize_t scf_snapshot_get_name(const scf_snapshot_t *snap, char *buf, size_t size); int scf_snapshot_update(scf_snapshot_t *snap); int scf_instance_get_snapshot(const scf_instance_t *inst, const char *name, scf_snapshot_t *snap); A snapshot is an unchanging picture of the full set of property groups associated with an instance. Snapshots are automatically created and managed by the Solaris Management Facility. See smf(5). A snapshot consists of a set of snaplevels, each of which holds copies of the property groups associated with an instance or service in the resolution path of the base instance. Typically, there is one snaplevel for the instance and one for the instance's parent service. The scf_snapshot_create() function allocates and initializes a new scf_snapshot_t bound to handle. The scf_snapshot_destroy() function destroys and frees snap. The scf_snapshot_handle() function retrieves the handle to which snap is bound. The scf_snapshot_get_parent() function sets inst to the parent of the snapshot to which snap is set. The scf_snapshot_get_name() function retrieves the name of the snapshot to which snap is set. The scf_snapshot_update() function reattaches snap to the latest version of the snapshot to which snap is set. The scf_instance_get_snapshot() function sets snap to the snapshot specified by name in the instance specified by inst. To walk all of the snapshots, see scf_iter_instance_snapshots(3SCF). To access the snaplevels of a snapshot, see scf_snapshot_get_base_snaplevel(3SCF). Upon successful completion, scf_snapshot_create() returns a new scf_snapshot_t. Otherwise, it returns NULL. Upon successful completion, scf_snapshot_handle() returns the handle to which snap is bound. Otherwise, it returns NULL. Upon successful completion, scf_snapshot_get_name() returns the length of the string written, not including the terminating null byte. Oth- erwise, it returns NULL. The scf_snapshot_update() function returns 1 if the snapshot was updated, 0 if the snapshot had not been updated, and -1 on failure. Upon successful completion, scf_snapshot_get_parent() and scf_instance_get_snapshot() return 0. Otherwise, they return -1. The scf_snapshot_create() function will fail if: SCF_ERROR_INVALID_ARGUMENT The handle argument is NULL. SCF_ERROR_NO_MEMORY There is not enough memory to allocate an scf_snapshot_t. SCF_ERROR_NO_RESOURCES The server does not have adequate resources for a new instance handle. The scf_snapshot_handle() function will fail if: SCF_ERROR_HANDLE_DESTROYED The handle associated with snap has been destroyed. The scf_snapshot_get_name() and scf_snapshot_get_parent() functions will fail if: SCF_ERROR_DELETED The snapshot has been deleted. SCF_ERROR_NOT_SET The snapshot is not set. SCF_ERROR_NOT_BOUND The handle is not bound. SCF_ERROR_CONNECTION_BROKEN The connection to the repository was lost. The scf_snapshot_update() function will fail if: SCF_ERROR_DELETED An ancestor of the snapshot specified by snap has been deleted. SCF_ERROR_NOT_SET The snapshot specified by snap is not set. SCF_ERROR_NOT_BOUND The handle is not bound. SCF_ERROR_CONNECTION_BROKEN The connection to the repository was lost. SCF_ERROR_INVALID_ARGUMENT The snap argument refers to an invalid scf_snapshot_t. The scf_instance_get_snapshot() function will fail if: SCF_ERROR_DELETED The instance has been deleted. SCF_ERROR_NOT_SET The instance is not set. SCF_ERROR_NOT_FOUND The snapshot specified by name was not found. SCF_ERROR_INVALID_ARGUMENT The value of the name argument is not a valid snapshot name. SCF_ERROR_HANDLE_MISMATCH The instance and snapshot are not derived from the same handle. SCF_ERROR_NOT_BOUND The handle is not bound. SCF_ERROR_CONNECTION_BROKEN The connection to the repository was lost. The scf_error(3SCF) function can be used to retrieve the error value. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ libscf(3LIB), scf_error(3SCF), scf_iter_instance_snapshots(3SCF), scf_snapshot_get_base_snaplevel(3SCF), attributes(5), smf(5) 28 Sep 2005 scf_snapshot_create(3SCF)

Featured Tech Videos