On 5/12/11 12:02 PM, Rajesh Akkineni wrote:
Hi,
So, If I need to do some kind of storage optimization, I can implement my own subclasses of Value and implement my own externalization logic?
And it should not cause much problem to existing code, right?
Why would you do that ? Again, we didn't spent any time thinking about optimizing this part because the gain would be absolutely unnoticed. There are way more time consummed in many other parts of the server, and any kind of optimisation in this area would just be a waste of time...

Just do one thing : write a simple test looping on some entries, searching for a boolean value or an integer value, and check with a profiler where exactly the time is being consumed...

I understand your point. My question is a theoretical one. Anyway now I understand why those are not implemented.
Surly I will look at other places to do optimization.

If you are digging in this area, we have left some work to be done. Let me explain.

A LDAP server is used to store data, some of them could be quite large (pictures, large texts, etc). Right now, with the StringValue and BinaryValue, those values are stored in memory. When we created those classes we knew that at some point, we would like to have some streamed version of those classes, by extending them.

A streamed value will contain a pointer to the file storing the real value, but the access to the data will be the same. That means we must be able to access the data byte by byte (or char by char), but reading them from a file.

This is a part we didn't had time to work on, but most certainly something worth some love...







--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to