#234 [RFE] Add new plugin type for quick operations
Closed: wontfix None Opened 12 years ago by rmeggins.

https://bugzilla.redhat.com/show_bug.cgi?id=683241

Traditionally the post-op plugins are used for different operations that can
take significant amount of time like processing memberOf. The post op plugins
are executed when the reply is already sent to the client. In some cases the
operation takes less time and its results should be visible to the client right
away. For such cases it makes sense to have a new type of the plugin that is
executed before the results are sent to the client.

Such plugin might help addressing the following ticket:
https://fedorahosted.org/freeipa/ticket/1064

Before implementing such plugin it is necessary to assess if the IPA password
plugin is fast enough to not cause significant client delays.

commit changeset:498c42b/389-ds-base
Author: Rich Megginson rmeggins@redhat.com
Date: Wed Oct 5 16:51:58 2011 -0600

fix transaction support in ldbm_delete

ldbm_back_delete() was not properly clearing out the transaction
pointer before starting a new transaction, and was not properly clearing
out the used transaction after a commit or an abort.

commit changeset:6120b3d/389-ds-base
Author: Rich Megginson rmeggins@redhat.com
Date: Thu Sep 15 14:16:12 2011 -0600

Make all backend operations transaction aware

All backend functions will use the parent transaction (if any) to perform
all database read/write operations, and for the creation of nested
transactions.  The pseudocode looks like this:
begin operation
grab parent txn from pblock SLAPI_TXN and save to a local variable
use this parent txn to perform any searches or other ops before the
  nested txn is created (if created - search ops do not do this)
create the nested txn (if a write op) using the parent_txn
stash the new txn in the pblock SLAPI_TXN
call the betxnpreop plugins
perform the backend ops inside the txn
call the betxnpostop plugins
commit the nested txn
restore the saved parent_txn to the pblock SLAPI_TXN
upon failure, abort the nested txn and restore the saved parent_txn
  to the pblock SLAPI_TXN
There were a few api changes to allow the txn to be passed in wherever
it is needed.
The database lock was changed from a mutex to a monitor to allow plugins
to call other plugins inside the same parent transaction.
Reviewed by: nhosoi (Thanks!)

commit changeset:056cc35/389-ds-base
Author: Rich Megginson rmeggins@redhat.com
Date: Mon Sep 12 09:48:17 2011 -0600

Add support for pre/post db transaction plugins

There are two new plugin types:
betxnpreoperation - these plugins are called just after the database
calls txn_begin - they are passed in SLAPI_TXN the DB_TXN* just created
- they can use this as a parent transaction in a nested transaction
if the plugin wishes to cause the parent to abort, the plugin should return
a non-zero return code, and set the ldap error code to a meaningful error
value
betxnpostoperation - called just before the database calls txn_commit
The changelog code uses the betxnpostoperation to create a nested
transaction for the changelog write
Reviewed by: nhosoi (Thanks!)

Added initial screened field value.

Metadata Update from @nkinder:
- Issue assigned to rmeggins
- Issue set to the milestone: 1.2.10

7 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/234

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

3 years ago

Login to comment on this ticket.

Metadata