directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <>
Subject [jira] Commented: (DIRSERVER-1377) Potential concurrency issue when adding/modifying/deleting entries at a high rate
Date Fri, 19 Jun 2009 10:05:07 GMT


Emmanuel Lecharny commented on DIRSERVER-1377:

After a bit of code browsing, it's not exactly simple to fix.

An index contains tuple<Key, value>. The value can be unique or we can have more than
one, and in this case, it will be stored into a AvlTree<value> or BTree<value>.

The Key  can be anything in :
- Long
- StringValue
- BinaryValue
- DN
- RDN (soon)

The value can be anything,  in two categories.
* Simple types : 
- Long
- StringValue
- BinaryValue
- DN
- RDN (soon)
* Composite types
- AvlTree<Simpletype>
- BTree<SimpleType>

We have to design a de/ser which handle all those cases.

The revert index is working in the opposite way : tuple<Value, Key> but in fact, if
you forget about what is the key, and what is the value, it's exactly the same as a forward
index : the Value will be the key and the kay the value (and it can also be a composite type.

For instance, if we consider the ObjectClass index, we have :

forward :
<'top', [1,2,3]>
<'person', [1,2]>
<'inetOrgPerson', 1>
<'organizationalUnit', 3>

reverse :
<1, ['top', 'person', 'inetOrgPerson']>
<2, ['top', 'person']>
<3, ['top', 'organizationalUnit']>

All the serialization and deserialization *must* be done in JDBM, not before, otherwise we
might have some inconsistency.

> Potential concurrency issue when adding/modifying/deleting entries at a high rate
> ---------------------------------------------------------------------------------
>                 Key: DIRSERVER-1377
>                 URL:
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.4
>            Reporter: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 1.5.5
> When adding/deleting entries with many clients (a client add and delete an entry many
times), we may have some concurrency problem, as the index are updated without concurrent
acces protection.
> Synchronizing the classes where we update the index might help.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message