db4o

Defragment Class

defragments database files.

For a list of all members of this type, see Defragment Members.

System.Object
   Db4objects.Db4o.Defragment.Defragment

public class Defragment

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

defragments database files.

db4o structures storage inside database files as free and occupied slots, very much like a file system - and just like a file system it can be fragmented.

The simplest way to defragment a database file:

Defragment.defrag("sample.yap");


This will move the file to "sample.yap.backup", then create a defragmented version of this file in the original position, using a temporary file "sample.yap.mapping". If the backup file already exists, this will throw an exception and no action will be taken.

For more detailed configuration of the defragmentation process, provide a DefragmentConfig instance:

DefragmentConfig config=new DefragmentConfig("sample.yap","sample.bap",new BTreeIDMapping("sample.map"));
config.forceBackupDelete(true);
config.storedClassFilter(new AvailableClassFilter());
config.db4oConfig(db4oConfig);
Defragment.defrag(config);


This will move the file to "sample.bap", then create a defragmented version of this file in the original position, using a temporary file "sample.map" for BTree mapping. If the backup file already exists, it will be deleted. The defragmentation process will skip all classes that have instances stored within the yap file, but that are not available on the class path (through the current classloader). Custom db4o configuration options are read from the Configuration passed as db4oConfig. Note: For some specific, non-default configuration settings like UUID generation, etc., you must pass an appropriate db4o configuration, just like you'd use it within your application for normal database operation.

Requirements

Namespace: Db4objects.Db4o.Defragment

Assembly: Db4objects.Db4o (in Db4objects.Db4o.dll)

See Also

Defragment Members | Db4objects.Db4o.Defragment Namespace