Remix.run Logo
Aeolun 4 days ago

> For example, I didn't understand why Active Directory uses search dialog boxes for every "picker" GUI control instead of a simpler drop-down or something similar... until I worked in an environment with 2 million objects in the directory.

And that’s when you realize that searching in AD is actually dog slow, and you are better off just syncing the whole thing to a proper database, then checking if the object still exists after.

Seriously, why does a search that takes 1ms in postgres take 3 full seconds in AD?

jiggawatts 4 days ago | parent | next [-]

It's a very simple database engine, effectively the same as Microsoft Access but 64-bit and server hosted. The internal data representation is also sub-optimal because it uses a triplestore (key-column-value) to support LDAP schema changes without having to apply matching SQL schema changes. I don't believe it has any sort of full-text indexing capability either, it just uses ordinary sorted indexes. Hence, some search types are effectively table scans.

Muromec 4 days ago | parent | prev [-]

>Seriously, why does a search that takes 1ms in postgres take 3 full seconds in AD?

Because when specialization occurs, every specialized component (including people) is selected against performance and other non-essential metrics.