You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2021/05/10 13:18:38 UTC
Change in asterixdb[cheshire-cat]: [NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
From Ali Alsuliman <al...@gmail.com>:
Ali Alsuliman has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11403 )
Change subject: [NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
......................................................................
[NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Given a dataset id and an entity hash value, ensure that the lock
manager computes a valid index for looking up the hash table.
Change-Id: I33d342455a79d0d69b49e126ff6a40c47b07d0dd
---
M asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
1 file changed, 7 insertions(+), 1 deletion(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/03/11403/1
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
index 93cda83..2e98813 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
@@ -41,7 +41,13 @@
ResourceGroup get(int dId, int entityHashValue) {
// TODO ensure good properties of hash function
- return table[Math.abs(dId ^ entityHashValue) % size];
+ int h = Math.abs(dId ^ entityHashValue);
+ if (h < 0) {
+ // Math.abs returns a negative when the value is Integer.MIN_VALUE
+ // ensure h is not negative since result sign of m % n is the same as m
+ h = 0;
+ }
+ return table[h % size];
}
ResourceGroup get(int i) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11403
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I33d342455a79d0d69b49e126ff6a40c47b07d0dd
Gerrit-Change-Number: 11403
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-MessageType: newchange
Change in asterixdb[cheshire-cat]: [NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Ali Alsuliman <al...@gmail.com>:
Ali Alsuliman has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11403 )
Change subject: [NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
......................................................................
[NO ISSUE][TX] Ensure lock manager computes valid indexes for hash table
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Given a dataset id and an entity hash value, ensure that the lock
manager computes a valid index for looking up the hash table.
Change-Id: I33d342455a79d0d69b49e126ff6a40c47b07d0dd
---
M asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
1 file changed, 7 insertions(+), 1 deletion(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/03/11403/1
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
index 93cda83..2e98813 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/locking/ResourceGroupTable.java
@@ -41,7 +41,13 @@
ResourceGroup get(int dId, int entityHashValue) {
// TODO ensure good properties of hash function
- return table[Math.abs(dId ^ entityHashValue) % size];
+ int h = Math.abs(dId ^ entityHashValue);
+ if (h < 0) {
+ // Math.abs returns a negative when the value is Integer.MIN_VALUE
+ // ensure h is not negative since result sign of m % n is the same as m
+ h = 0;
+ }
+ return table[h % size];
}
ResourceGroup get(int i) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11403
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: cheshire-cat
Gerrit-Change-Id: I33d342455a79d0d69b49e126ff6a40c47b07d0dd
Gerrit-Change-Number: 11403
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-MessageType: newchange