Share via


I decided to check out the size of Eric's DIT ...

... take some time, measuring the exact dimensions of Eric's DIT
... and I must say, I've seen a fair amount of DITs in my time, and I can say with a
fair amount of certainty, Eric's DIT is the biggest I've ever seen! I can't believe what a massively huge a DIT Eric has.

Note: while this is about an Active Directory database, Exchange is
based on the same database technology, so it would (and does) have similar space hierarchy.

Table of ESE Space usage:

The black in this table is just the output from 3 of the columns of esentutl /ms adamntds.dit (original report), the blue are columns/rows I've added to break out the space usage in a clearer way:

Name Friendly name Owned Available Owned(GB) Avail(GB)
<calc: DB real> 268179344 6088 0.000 0.046
F:\DNT\adamntds.dit 268179344 218 2046.046 0.002
<calc: datatable real> 268178751 5689 2046.041 0.043
datatable 268178751 2260 2046.041 0.017
<calc: Row Data> 186707905 2260 1424.468 0.017
  <Long Values> 42 18 0.000 0.000
<sum: Idx Totals> 81470804 3411 621.573 0.026
  PDNT_index Int: PDNT + Name 11482791 7 87.607 0.000
  nc_guid_Index Int: NC + objGuid 10870892 5 82.938 0.000
  INDEX_00090002 Att: objectGuid 10791866 3 82.335 0.000
  INDEX_00000003 Att: cn 9658638 51 73.690 0.000
  INDEX_00090001 Att: name 8999729 83 68.662 0.001
  Ancestors_index Int: Ancestry 7917036 10 60.402 0.000
  DRA_USN_index Int: Repl USN 7083583 251 54.043 0.002
  INDEX_0009030E Att: objectCategory 5274627 21 40.242 0.000
  DRA_USN_CREATED_index Int: Repl Created USN 4479144 34 34.173 0.000
  INDEX_00020078 Att: uSNChanged 4279711 0 32.652 0.000
  deltime_index Int: deltime 371267 15 2.833 0.000
  INDEX_00020030 Att: isDeleted 261493 2929 1.995 0.022

... deleted about a dozen small indices ...

I'll discuss the permutations I performed on the esentutl /ms output, in the hopes it will be clear ...

First I sum up the owned space for all indices in the datatable, this comes out to 81470804.
Note the #'s above may not add up exactly because I deleted a dozen or
so super small indices. I summed up all the indices because it
makes the next calculation easier, and also so we can get the "% of
Total Idxs" column as well.

So first understand that ESE's "owned" space is hierarchical, so the "datatable" owns all the space owned by each of
the indices and the LV B-Tree in the datatable. But the primary B-Tree for the datatable
also contains (and thus owns) the normal row data. So the real data that is in the
regular row data for the datatable is 268178751 (datatable) - 42 (datatable's LV B-Tree owned) - 81470804 (owned by sum of all datatable indices) = 186707905 (i.e. the "<calc: Row Data>" line).

I then created a couple columns to turn this page counts into a usable unit (GBs), i.e. <# of pages> * 8 / 1024 / 1024.

Finally I added a friendly name column, so you'd know roughly what the index was indexing.

Some analysis:

From the above table we can easily see the row data 1,424 GBs and all
the indices combined is 621 GBs. This breaks out like so:

Based on the table above this is showing us a full 30% of this
database is indices!!! That's a huge amount. This isn't a
common space breakdown for most AD objects, as the objects making up
Eric's DIT are very very small / light weight. He was just
creating containers w/ minimal attributes (see Eric's initial post),
and so just the base set of indices on a basic object lead up
to a significant portion of the objects overall "footprint" in the DB.

As for the breakup of the individual index usages, it looks something like this:

Of the secondary indices on the datatable,
10 are always updated! And another 2 (the very slender ones) are
only updated on delete. Since there are over 2 billion objects in
this database, that means we inserted about 22 billion B-Tree entries,
kind of neat.

One last, somewhat technical thing that I think a few of you might find interesting, is that even the
largest 1,424 GB primary B-Tree is only 5 levels deep. This means that to
locate a specific row (by DNT) will only take 5 disk seeks in the worst
case (cold cache). B-Trees have this very nice high fan out, that keeps disk seeks minimal.

Interestingly, I dumped the root page, and it only has 3 nodes (TAG 0
doesn't count), what this means is that we could add about 100x more
data to this b-tree and there would be no increase in the # of disk seeks to fetch a row
from this table.

Anyway that seems like enough for now ...

Comments

  • Anonymous
    June 14, 2006
    Did you look at the performance hit of adding a new index on this data (assuming there was something to index on these lightweight objects)?

    Thanks!
  • Anonymous
    June 15, 2006
    Unfortunately we were already over (time) budget by a week, so we weren't able to try anything else.  We also wanted to see the rate of offline defrag, and a few other experiements.  We didn't think of this idea, it is a good one, will keep it in mind next time we do a big test.
    -BrettSh
  • Anonymous
    June 15, 2006
    PingBack from http://blog.joeware.net/2006/06/15/409/
  • Anonymous
    June 15, 2006
    Some time ago interested thread was started on ActiveDir.org regarding  maximum number of objects supported...
  • Anonymous
    August 05, 2006
    The comment has been removed
  • Anonymous
    November 23, 2006
    Some time ago interested thread was started on ActiveDir.org regarding maximum number of objects supported
  • Anonymous
    September 09, 2007
    So I was talking with Brett the other day (yes, that Brett , the one whose blog is only occasionally
  • Anonymous
    February 01, 2008
    <a href= http://index1.greathal.com >pre teen pageant gown</a>
  • Anonymous
    February 01, 2008
    <a href= http://index1.greathal.com >pre teen pageant gown</a>
  • Anonymous
    February 01, 2008
    <a href= http://index1.greathal.com >pre teen pageant gown</a>
  • Anonymous
    February 01, 2008
    <a href= http://index1.greathal.com >pre teen pageant gown</a>
  • Anonymous
    February 01, 2008
    <a href= http://index1.greathal.com >pre teen pageant gown</a>
  • Anonymous
    June 07, 2009
    PingBack from http://greenteafatburner.info/story.php?id=5675
  • Anonymous
    June 09, 2009
    PingBack from http://toenailfungusite.info/story.php?id=5521
  • Anonymous
    June 17, 2009
    セレブ達は一般の人達とは接する機会もなく、その出会う唯一の場所が「逆援助倶楽部」です。 男性はお金、女性はSEXを要求する場合が多いようです。これは女性に圧倒的な財力があるから成り立つことの出来る関係ではないでしょうか?
  • Anonymous
    June 19, 2009
    PingBack from http://mydebtconsolidator.info/story.php?id=3622
  • Anonymous
    July 09, 2009
    The comment has been removed