parsec_dtd_two_hash_table_t

Issue #157 new
Thomas Herault created an issue

The superscalar / insert_task interface is using a structure called parsec_dtd_two_hash_table_t that is basically a hash table with a lock.

As I was reviewing the use of hash tables, it appears that locking at this level is a historical feature, and has no apparent requirement today: locking at the bucket level seems to be sufficient. I had a 5 minutes talk with Reazul about this, and we reached the same conclusion.

We would need to:

  • get rid of the parsec_dtd_two_hash_table_t structure
  • get rid of most of the parsec_dtd_two_hash functions
  • replace locking at the table level (through parsec_dtd_two_hash_table_lock/unlock) by locking at the bucket level (through parsec_hash_table_bucket_lock/unlock)
  • directly access the hash table using parsec_hash_table_nolock_* operations inside the protected sections.

This has a low priority, just writing it here so we don't forget to do it.

Comments (6)

  1. Log in to comment