Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2e9c43658e374d290a2de15d25134ac8 > files > 717

db4o-doc-8.0-1.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:lastBlockDepth="2" MadCap:lastHeight="120" MadCap:lastWidth="624" MadCap:disableMasterStylesheet="true" MadCap:tocPath="Configuration" MadCap:InPreviewMode="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" MadCap:PathToHelpSystem="../../" MadCap:HelpSystemFileName="index.xml" MadCap:SearchType="Stem">
    <head><title>Id System</title>
        <script type="text/javascript">/* <![CDATA[ */
window.onload = function(){
	var pathToFlash = $('html').attr('MadCap:PathToHelpSystem') + 'Content/Resources/Code/ZeroClipboard.swf';
	ZeroClipboard.setMoviePath(pathToFlash);
			
	function bindToClipBord(element,content){
		var clip = new ZeroClipboard.Client();
		clip.setText(content);
		clip.glue(element);
	};
		
	if(location.protocol==='file:'){
		$('.copylink-marker').remove();
	} else{
			$('.copylink-marker').each(function(){
				var text = $(this).parent().parent().children('.prettyprint').html();
				$(this).hover(function(){
					bindToClipBord(this,text);
				},
				function(){});
			});	
	}		
	prettyPrint();	
};
                /* ]]> */</script>
        <link href="../SkinSupport/MadCap.css" rel="stylesheet" />
        <link href="../Resources/Stylesheets/OnlineStyle.css" rel="stylesheet" />
        <script src="../Resources/Code/prettify.js">
        </script>
        <script src="../Resources/Code/lang-vb.js">
        </script>
        <script src="../Resources/Code/jquery.min.js">
        </script>
        <script src="../Resources/Code/ZeroClipboard.js">
        </script>
        <script src="../SkinSupport/MadCapAll.js" type="text/javascript">
        </script>
    </head>
    <body>
        <p class="MCWebHelpFramesetLink" style="display: none;"><a href="../../index_CSH.html#configuration/id_system.htm" style="">Open topic with navigation</a>
        </p>
        <div class="MCBreadcrumbsBox"><span class="MCBreadcrumbsPrefix">You are here: </span><a class="MCBreadcrumbsLink" href="../configuration.htm">Configuration</a><span class="MCBreadcrumbsDivider"> &gt; </span><span class="MCBreadcrumbs">Id System</span>
        </div>
        <p>
            <script type="text/javascript">/*<![CDATA[*/document.write('<a href="' + location.href +'">');
				document.write("Direct Link");
			document.write('</a>');/*]]>*/</script>
        </p>
        <p>
        </p>
        <h1>Id System</h1>
        <p>The id-system configuration  applies to the embedded- and the server-mode of db4o. There are tree different id-systems-available. All the id system configuration is accessible via the id-system-<span class="Primarygetter">property</span> on the configuration-object.</p>
        <p>Note that you cannot change the id-system for an existing database. You need to <a href="../advanced_topics/defragment.htm">defragment</a> the database in order to change the id-system.</p>
        <p>The id-system is responsible to mapping a object id to the physical location of an object. This mapping can have significant impact on the performance.</p>
        <h2>Stacked BTree Id-System</h2>
        <p>This setting uses a stack of two BTree's on top of an InMemoryIdSystem. This system is scalable for a large number of ids.</p>
        <div class="codesnippet" MadCap:conditions="Primary.c#">
            <pre class="prettyprint" xml:space="preserve">IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.IdSystem.UseStackedBTreeSystem();</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.cs: Use stacked B-trees for storing the ids
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-csharp.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <div class="codesnippet" MadCap:conditions="Primary.VB.NET">
            <pre class="prettyprint lang-vb" MadCap:conditions="Primary.Online" xml:space="preserve">Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
configuration.IdSystem.UseStackedBTreeSystem()</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.vb: Use stacked B-trees for storing the ids
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-vb.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <h2>Single BTree Id-System</h2>
        <p>This setting uses a single BTree on top of a in memory id system. This system works great for small databases. However it cannot scale for a large number of ids.</p>
        <div class="codesnippet" MadCap:conditions="Primary.c#">
            <pre class="prettyprint" xml:space="preserve">IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.IdSystem.UseSingleBTreeSystem();</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.cs: Use a single B-tree for storing the ids.
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-csharp.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <div class="codesnippet" MadCap:conditions="Primary.VB.NET">
            <pre class="prettyprint lang-vb" MadCap:conditions="Primary.Online" xml:space="preserve">Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
configuration.IdSystem.UseSingleBTreeSystem()</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.vb: Use a single B-tree for storing the ids.
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-vb.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <h2>In Memory Id-System</h2>
        <p>This id-system keeps all ids in memory. While accessing the ids if fast, all ids have to be written to disk on every commit. Therefore it can be used only for tiny databases. </p>
        <div class="codesnippet" MadCap:conditions="Primary.c#">
            <pre class="prettyprint" xml:space="preserve">IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.IdSystem.UseInMemorySystem();</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.cs: Use a in-memory id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-csharp.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <div class="codesnippet" MadCap:conditions="Primary.VB.NET">
            <pre class="prettyprint lang-vb" MadCap:conditions="Primary.Online" xml:space="preserve">Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
configuration.IdSystem.UseInMemorySystem()</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.vb: Use a in-memory id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-vb.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <h2>Pointer Based Id-System</h2>
        <p>This id system uses pointers to handle ids. Each id represents a pointer into the database-file. This makes the id-mapping simple. However since it's a pointer, you cannot change the location. Therefore this system leads to more fragmentation and  performance degradation as the database grows.</p>
        <p>This id system is here to ensure backward-compatibility. It's not recommended to use for new databases.</p>
        <div class="codesnippet" MadCap:conditions="Primary.c#">
            <pre class="prettyprint" xml:space="preserve">IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.IdSystem.UseInMemorySystem();</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.cs: Use a in-memory id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-csharp.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <div class="codesnippet" MadCap:conditions="Primary.VB.NET">
            <pre class="prettyprint lang-vb" MadCap:conditions="Primary.Online" xml:space="preserve">Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
configuration.IdSystem.UseInMemorySystem()</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.vb: Use a in-memory id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-vb.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <h2>Custom Id-System</h2>
        <p>It's possible to implement your own id system. You can pass an factory which creates your id-system implementation. </p>
        <div class="codesnippet" MadCap:conditions="Primary.c#">
            <pre class="prettyprint" xml:space="preserve">IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
configuration.IdSystem.UseCustomSystem(new CustomIdSystemFactory());</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.cs: use a custom id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-csharp.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <div class="codesnippet" MadCap:conditions="Primary.VB.NET">
            <pre class="prettyprint lang-vb" MadCap:conditions="Primary.Online" xml:space="preserve">Dim configuration As IEmbeddedConfiguration = Db4oEmbedded.NewConfiguration()
configuration.IdSystem.UseCustomSystem(New CustomIdSystemFactory())</pre>
            <div class="codesnippet-meta">IdSystemConfigurationExamples.vb: use a custom id system
			<div class="codedownload"><a href="../CodeExamples/configuration/idsystem/Example-configuration-idsystem-vb.zip" class="codedownload" MadCap:conditions="Primary.Online">Download Code</a></div><div class="codedownload copylink-marker" MadCap:conditions="Primary.Online"><a href="#copy">Copy Code</a></div></div>
        </div>
        <script type="text/javascript" src="../SkinSupport/MadCapBodyEnd.js">
        </script>
    </body>
</html>