Howard Chu wrote:
Some of these should go onto the roadmap or TODO list. Just scribbling them down here before I forget.
Had a chat with tridge and abartlet about the LDAP TXN support they're looking for with Samba4. One of their requirements was being able to do reads inside the TXN, and that is explicitly not supported by the LDAP TXN draft. But after talking a bit more about how they do things in LDB, we decided to take the same approach here - LDB only allows one writer when a TXN is active. We can write a (global) overlay that gives this same behavior, and then not have to worry about any of the other TXN details.
Interesting. Just out of curiosity, this won't change or expand the core spec since it's going to be implemented as an overlay, correct?
While thinking about back-mdb, I realized that since we're mapping storage to memory we don't really need a traditional disk-DB structure. Instead we can just manage the space as its own heap and use in-memory structures like AVL trees and such. I've been thinking about extending our current AVL library to a T-tree implementation. Further reading along those lines led me to Cache-Sensitive T-trees (CST-Trees) which also have the important property of being friendly to CPU cacheline sizes, and so behaving a lot better in multi-processor systems. This is a pretty generic project - if anyone's been looking for a relatively self-contained bit of work they could contribute, this would be ideal. You can get the paper here:
http://ids.snu.ac.kr/wiki/CST-Trees:_Cache_Sensitive_T-Trees
Thanks for the reference. Anything in particular you think would help acclimate those unfamiliar with the existing code base to our current AVL libraries and implementations?
Also a completely fringe topic, but still interesting - we've got OpenLDAP running well on Android now; on a G1 phone. But it's still just a set of command-line tools. UnboundID showed off their Java LDAP SDK in a simple app also running on Android. A combination of these two would make an extremely powerful package:
Develop a canned slapd config that uses syncrepl to sync with a remote LDAP address book. Use proxied multimaster, to allow local changes to be propagated back to the remote directory. Write a java app that uses LDAP for the G1's contact book backend instead of the SQLite ****stuff that it's currently using. Accomplishing this will necessitate writing a few GUI menus for configuring the handful of variables needed for the slapd config.
Neat! I'd love to configure my G1 to behave this way. So, is there an open invitation to brainstorm/make suggestions for/write a GUI front-end in collaboration with the Project's developers (mostly for their approval, review, et cetera)?
More ideas later...
All really good stuff, Howard, thanks for sharing it! Wish I could have been there, sounds like it was a really interesting collection of dialogues. Looking forward to hearing more from you and the other attendees!
Respectfully, Ryan