projects
/
iotcloud.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9c3fa5c
)
edits
author
bdemsky
<bdemsky@uci.edu>
Fri, 16 Feb 2018 00:09:37 +0000
(16:09 -0800)
committer
bdemsky
<bdemsky@uci.edu>
Fri, 16 Feb 2018 00:09:37 +0000
(16:09 -0800)
version2/src/C/Table.cc
patch
|
blob
|
history
diff --git
a/version2/src/C/Table.cc
b/version2/src/C/Table.cc
index 1bdc259945f940e1ec05bd43c9a482c597de0816..344c62ddbcf07ffe09c25d75b53f6718e31783e7 100644
(file)
--- a/
version2/src/C/Table.cc
+++ b/
version2/src/C/Table.cc
@@
-1649,7
+1649,13
@@
void Table::arbitrateFromServer() {
}
// Get the transaction sequence numbers and sort from oldest to newest
}
// Get the transaction sequence numbers and sort from oldest to newest
- Vector<int64_t> *transactionSequenceNumbers = new Vector<int64_t>(liveTransactionBySequenceNumberTable->keySet());
+ Vector<int64_t> *transactionSequenceNumbers = new Vector<int64_t>();
+ {
+ SetIterator<int64_t, Transaction *> * trit = getKeyIterator(liveTransactionBySequenceNumberTable);
+ while(trit->hasNext())
+ transactionSequenceNumbers->add(trit->next());
+ delete trit;
+ }
qsort(transactionSequenceNumbers->expose(), transactionSequenceNumbers->size(), sizeof(int64_t), compareInt64);
// Collection of key value pairs that are
qsort(transactionSequenceNumbers->expose(), transactionSequenceNumbers->size(), sizeof(int64_t), compareInt64);
// Collection of key value pairs that are
@@
-1658,12
+1664,11
@@
void Table::arbitrateFromServer() {
// The last transaction arbitrated on
int64_t lastTransactionCommitted = -1;
Hashset<Abort *> *generatedAborts = new Hashset<Abort *>();
// The last transaction arbitrated on
int64_t lastTransactionCommitted = -1;
Hashset<Abort *> *generatedAborts = new Hashset<Abort *>();
-
- for (int64_t transactionSequenceNumber : transactionSequenceNumbers) {
+ uint tsnSize = transactionSequenceNumbers->size();
+ for(uint i=0; i<tsnSize; i++) {
+ int64_t transactionSequenceNumber = transactionSequenceNumbers->get(i);
Transaction *transaction = liveTransactionBySequenceNumberTable->get(transactionSequenceNumber);
Transaction *transaction = liveTransactionBySequenceNumberTable->get(transactionSequenceNumber);
-
-
// Check if this machine arbitrates for this transaction if not
// then we cant arbitrate this transaction
if (transaction->getArbitrator() != localMachineId) {
// Check if this machine arbitrates for this transaction if not
// then we cant arbitrate this transaction
if (transaction->getArbitrator() != localMachineId) {
@@
-1688,7
+1693,7
@@
void Table::arbitrateFromServer() {
// update the largest transaction seen by arbitrator from server
// update the largest transaction seen by arbitrator from server
- if (
lastTransactionSeenFromMachineFromServer->get(transaction->getMachineId()) == NULL
) {
+ if (
!lastTransactionSeenFromMachineFromServer->contains(transaction->getMachineId())
) {
lastTransactionSeenFromMachineFromServer->put(transaction->getMachineId(), transaction->getClientLocalSequenceNumber());
} else {
int64_t lastTransactionSeenFromMachine = lastTransactionSeenFromMachineFromServer->get(transaction->getMachineId());
lastTransactionSeenFromMachineFromServer->put(transaction->getMachineId(), transaction->getClientLocalSequenceNumber());
} else {
int64_t lastTransactionSeenFromMachine = lastTransactionSeenFromMachineFromServer->get(transaction->getMachineId());