Large AD database? Probably not this large...
Over the last few months there have been a series of threads in regard to max <fill in the item here...there have been many> in a database. These items have ranged from database size to # of objects and other such things. I figured, after the latest thread over on activedir.og, I'd do a little testing and put some numbers behind it so we could say "we have done this" and not "the system should do this."
What should this testing accomplish?
First, raw DB size. Gotta create a big DB or it probably doesn't matter.
Next, # of objects. For my testing, this was the real metric I was interested in. As mentioned over on ActiveDir (I would provide a link to the thread but I can’t seem to get the mail archives to work right now…I’ll try and provide one later), there is a theoretical max # of objects in the lifetime of a database which is, all said and done, 2^31 objects. I wanted to shoot for this. After all, Dean asked what error you would get, and I didn’t know. :)
I wrote a tool which started banging against an ADAM SP1 x64 instance. It was creating pretty small objects as I wanted reduce the amt of time this test took. My objects looked like this:
dn: cn=leafcontX,cn=parentcontY,cn=objectsZ,ou=objdata
changetype: add
objectclass: container
(Of course, sub in values for X, Y and Z as appropriate)
I had it use anywhere from 16 to 40 threads for this work depending upon the phase of import, and I simply wrapped around ldifde for it….I figured, there is a well tested tool for this, why not let it do most of the hard work?
Next, I got my hands on a test box (thx EEC!), put it on a SAN, installed ADAM, and away I went.
Along the way, we did a few other perf tests (looking at increased checkpoint depths and the like) so it added a bit of time to the import. However, after about a month, I had nearly filled my 2TB partition:
06/08/2006 10:41 AM 2,196,927,299,584 adamntds.dit
I created just shy of 2^31 objects. When I went to create that next object (done here by hand in LDP to illustrate the error)…
***Calling Add...
ldap_add_s(ld, "cn=sample1,OU=ObjData", [1] attrs)
Error: Add: Operations Error. <1>
Server error: 000020EF: SvcErr: DSID-0208044C, problem 5012 (DIR_ERROR), data -1076
If you look up -1076, you’ll find it is JET_errOutOfAutoincrementValues (from esent98.h). Woo hoo! I ran out of DNTs.
With this DB in hand, it was time to find out what else works and what else does not…
- Promotion of a replica fails. This makes perfect sense….it tries to create a couple of objects in the config NC, and that fails.
- Create of an NC fails. Again, to be expected, this task consumes DNTs.
- I ran esentutl /ms. It chugged for nearly 30 seconds, but worked perfectly.
- I also ran esentutl /k to make sure the DB did not have any physical corruption, but also to just see how long that took. :)
- Other standard tasks (kicking off garbage collection, online defrag, restarting the service, etc.) all worked perfectly.
- Search works like a champ. Sure it takes a good bit of I/O for most interesting searches, but that’s to be expected, of course.
It is worth noting that anything which failed did so gracefully. There were no nastygrams in my event logs either.
So for those of you who are worrying….you can sleep well at night now. We have tried rolling over DNT, and it works just fine.
A fun stat…..from the esentutl /ms output:
Name Type ObjidFDP PgnoFDP PriExt Owned Available
==============================================================
<EFleis – snip to save some space>
nc_guid_Index Idx 25 43 1-m 10870892 5
That owned number is in pages. That’s right, my NC_GUID index is 82.9GB…bigger than most databases. :)
While there were no major issues, we (Brett was looking at this too) did hit a few bumps along the way, and Brett was kind enough to write a few ESE tools for me to help monitor how we were doing. I’ll outline all of these things over the next few days as I have time to write them up. I’ll also provide more clarity around specific of what we did and saw as we went along.
Comments
Anonymous
January 01, 2003
PingBack from http://blog.joeware.net/2006/06/09/405/Anonymous
January 01, 2003
It's not easy to look objectively to the differences between Microsoft's Active Directory and Novell'sAnonymous
January 01, 2003
PingBack from http://discount-perfume-hq.com/?p=2185Anonymous
January 01, 2003
PingBack from http://exchange-monkey.com/?p=8Anonymous
January 01, 2003
PingBack from http://www.ditii.com/2008/04/20/how-far-you-can-push-active-directory/Anonymous
January 01, 2003
Interesting blog post written on the subject of the theoretical limit of databases being 2^31 and trying...Anonymous
January 01, 2003
Analysis of the fairly simplistic space usage on the biggest Active Directory database to date.Anonymous
January 01, 2003
Some time ago interested thread was started on ActiveDir.org regarding maximum number of objects supported...Anonymous
January 01, 2003
Active Directory Structure Forests, trees, and domains The framework that holds the objects is viewed at a number of levels. '''At the top of the structure is the Forest the collection of every object, its attributes,...Anonymous
January 01, 2003
PingBack from http://blog.joeware.net/2006/06/15/409/Anonymous
January 01, 2003
Some time ago interested thread was started on ActiveDir.org regarding maximum number of objects supportedAnonymous
January 01, 2003
PingBack from http://www.w2k.pl/ile-obiektw-zmiesci-ad/Anonymous
January 01, 2003
Have you ever wondered how many objects You can create in Your DIT (actually this was showed some timeAnonymous
January 01, 2003
PingBack from http://kesha.net/blog/?p=8Anonymous
January 01, 2003
PingBack from http://frankthefrank.info/entry.php?id=kwws%3d22eorjv1whfkqhw1frp2hiohlv2dufklyh2533923923%3b27675881dvs%7bAnonymous
January 01, 2003
PingBack from http://www.keyongtech.com/5011427-urgent-pls-maximun-limit-onAnonymous
June 08, 2006
Great info Eric!
The link to the start of the thread on ActiveDir.org is:
http://www.activedir.org/ml/msg08620.aspx
We've just moved the archive onto the ActiveDir.org web site and we're having one or two teething problems with the search feature.
TonyAnonymous
June 09, 2006
Very impressive blog entry and testing. So will that instance be kept around for further testing or will it just get killed off?Anonymous
June 09, 2006
Killed off, after a bit more tinkering.