Performance fix for BufferCache.
The dpid of a page of file is calculated by fileid<<32 + pageid.
But BufferCache.hash(long dpid) returns the hash value dpid%pageMap.length.
In many cases,  the asterix configuration results in power-of-2 pageMap.length (buffer-cache-size/page-size), which makes fileid useless.
That used to result in serious consequences: different partitions contend for the same cache bucket (which contains a link list of size #partitions)
for most of the time and therefore the CPU couldn't be saturated.

Change-Id: I4afc406d612e569e23f65afdedc469459235ce7d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/341
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Young-Seok Kim <kisskys@gmail.com>
Reviewed-by: Pouria Pirzadeh <pouria.pirzadeh@gmail.com>
1 file changed
tree: 10d52ff1a2ec55119102b676d92def98ac668193
  1. .gitignore
  2. LICENSE.txt
  3. algebricks/
  4. hyracks/
  5. pom.xml