Emmanuel Lécharny wrote: > > > Le 20/09/2018 à 14:18, Howard Chu a écrit : >> Emmanuel Lécharny wrote: >>> Hi ! >>> Now, there is more work to do : >>> o rollback hasn't been tested yet >>> o we need to forbid concurrent writes while a transaction is being >>> executed - which means that a transaction is seen as one single giant >>> write - with the consequence that a rogue client starting a transaction >>> but never finishing it will potentially lock the server. >>> o a mechanism to protect the server against such rogues client has to be >>> implemented (could be a limitation in the number of update per >>> transaction and/or a time limit for a transaction). >> >> In OpenLDAP we simply queue the incoming ops until the Commit is received, >> then execute them all at once. And yes, there's a limit on the number of >> ops allowed in a txn. > > > In ApacheDS, that would not save a lot of CPU/time, as the work is done > when updates are injected in the in-memory pages and flushed on disk. > Stacking them and injecting them in one shot will not save anything.
This isn't meant as a performance optimization, it's about error handling. It's to prevent transactions from keeping the DB locked for long times while the client is sending operations. This way we only start writing a txn to a DB when we know all of its ops are already present and we don't need to worry about the client timing out in the middle. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/
