New Feature CORE-247
1 vote

Implement new MultiDictionary data structure

Created by Rob Vesse on 7/9/2012 5:50 PM Last Updated by Rob Vesse on 7/18/2012 1:22 AM
%
 (hrs)
Logged: 0  (hrs)

 Description

The MultiDictionary is a planned improve variation on the existing HashTable structure which avoids the current problem of the HashTable in that the values associated with a specific key(s) are munged together and that all keys are not preserved

 

The planned design of this is to use a Dictionary<TKey, BTree<TKey, TValue>> i.e.

  • Initial hash puts you in the right bucket even if there is a colliding hash
  • BTree finds the exact key using a standard binary search
  • Values are stored on BTree Nodes
  • Hash Function and Key comparison function should be user defineable

 

This will allow us to graudally replace all existing HashTable usages with our MultiDictionary (or just refactor HashTable to use MultiDictionary internally)

    Rob Vesse (Wednesday, July 18, 2012 1:22 AM) #

Completed as of revision 2272

 

We will not replace existing usages of HashTable necessarily since the performance characteristics and intended usage of MultiDictionary are somewhat different and not necessarily as fast as HashTable for some operations at this time so not a good idea to replace existing usage with this new code