Revision 3 as of 2015-06-22 07:55:05

Clear message

Management Data Storage Architecture

1. Why are some elements stored by index, others by name: /SAFplusAmf/Component[1]/instantiate VS. /SAFplusAmf/Node[@name="sc0"]/adminState

How can you be sure you are looking it up properly?

[Hoang] I did follow an xpath tool online http://xmltoolbox.appspot.com/xpath_generator.html, then follow up xpath result from SAFplusAmf.xml.

Rule: If there is only one entry => xpath will have "key" as attribute value. Otherwise, index [1]...[n] if there are more than 2 entries.

We also did already at mgt properly.

2. Why are you taking a key/value pair, generating a hash, and then storing 2 entries: hash->key hash->value

[Hoang] I implement it to iterator keys faster by lookup at hash key of xpath.

Why not just store the key value pair in one record?

[Hoang] I based on DBAL abstract layer from 6.0 - it only support hash key and value for each binary DB. So, we can not extending to 3 columns hash "key | xpath | value"

3. At 0x16 bits of hash, there is a 1% chance of collision given 300 records. For a large model with 5000 records, there is a 94% chance of collision. What happens if there is a collision?

[Hoang] You're right, I made a simple test and got ~200 collisions/5000 records. I will investigate to handle if collision - how about algorithm "Hashing with Double Hashing" - is it simplest?

4. dbalpy.py and pyDbal.cxx are clearly management specific since they store things using the 2 entry hash described above so should not be located in dbal OR called such a generic name.

[Hoang] I will move these files to mgt at s7.

5. How does the system handle arbitrary data stored under an MGT node?

6. How does it handle references to other MGT nodes?

[Hoang] Can you provide an example? Actually, I never tried to run more than one instance of mgt on other node.