committedKeyValueTable(NULL),
speculatedKeyValueTable(NULL),
pendingTransactionSpeculatedKeyValueTable(NULL),
- liveNewKeyTable(NULL),
+ liveNewKeyTable(NULL),
lastMessageTable(NULL),
rejectedMessageWatchVectorTable(NULL),
arbitratorTable(NULL),
committedKeyValueTable(NULL),
speculatedKeyValueTable(NULL),
pendingTransactionSpeculatedKeyValueTable(NULL),
- liveNewKeyTable(NULL),
+ liveNewKeyTable(NULL),
lastMessageTable(NULL),
rejectedMessageWatchVectorTable(NULL),
arbitratorTable(NULL),
int64_t o = buffer.getOldestSeqNum();
int64_t n = buffer.getNewestSeqNum();
- Array<int> * types = new Array<int>(10);
+ Array<int> *types = new Array<int>(10);
int num = 0;
localSequenceNumber++;
TableStatus status = new TableStatus(s, numberOfSlots);
s.addEntry(status);
- Array<Slot> * array = cloud.putSlot(s, numberOfSlots);
+ Array<Slot> *array = cloud.putSlot(s, numberOfSlots);
if (array == NULL) {
array = new Array<Slot>(1);
*/
synchronized void Table::rebuild() {
// Just pull the latest slots from the server
- Array<Slot> * newslots = cloud.getSlots(sequenceNumber + 1);
+ Array<Slot> *newslots = cloud.getSlots(sequenceNumber + 1);
validateAndUpdate(newslots, true);
sendToServer(NULL);
updateLiveTransactionsAndStatus();
synchronized bool Table::update() {
try {
- Array<Slot> * newSlots = cloud.getSlots(sequenceNumber + 1);
+ Array<Slot> *newSlots = cloud.getSlots(sequenceNumber + 1);
validateAndUpdate(newSlots, false);
sendToServer(NULL);
try {
if (hadPartialSendToServer) {
- Array<Slot> * newSlots = cloud.getSlots(sequenceNumber + 1);
+ Array<Slot> *newSlots = cloud.getSlots(sequenceNumber + 1);
if (newSlots.length == 0) {
fromRetry = true;
- ThreeTuple<bool, bool, Array<Slot>*> sendSlotsReturn = sendSlotsToServer(lastSlotAttemptedToSend, lastNewSize, lastIsNewKey);
+ ThreeTuple<bool, bool, Array<Slot> *> sendSlotsReturn = sendSlotsToServer(lastSlotAttemptedToSend, lastNewSize, lastIsNewKey);
if (sendSlotsReturn.getFirst()) {
if (newKey != NULL) {
lastPendingSendArbitrationEntriesToDelete = new Vector<Entry>(pendingSendArbitrationEntriesToDelete);
- ThreeTuple<bool, bool, Array<Slot>*> sendSlotsReturn = sendSlotsToServer(slot, newSize, newKey != NULL);
+ ThreeTuple<bool, bool, Array<Slot> *> sendSlotsReturn = sendSlotsToServer(slot, newSize, newKey != NULL);
if (sendSlotsReturn.getFirst()) {
return returnData;
}
-ThreeTuple<bool, bool, Array<Slot>*> Table::sendSlotsToServer(Slot slot, int newSize, bool isNewKey) {
+ThreeTuple<bool, bool, Array<Slot> *> Table::sendSlotsToServer(Slot slot, int newSize, bool isNewKey) {
bool attemptedToSendToServerTmp = attemptedToSendToServer;
attemptedToSendToServer = true;
bool inserted = false;
bool lastTryInserted = false;
- Array<Slot>* array = cloud.putSlot(slot, newSize);
+ Array<Slot> *array = cloud.putSlot(slot, newSize);
if (array == NULL) {
array = new Array<Slot>();
array->set(0, slot);
}
}
- return new ThreeTuple<bool, bool, Array<Slot>*>(inserted, lastTryInserted, array);
+ return new ThreeTuple<bool, bool, Array<Slot> *>(inserted, lastTryInserted, array);
}
/**
/**
* Checks for malicious activity and updates the local copy of the block chain.
*/
-void Table::validateAndUpdate(Array<Slot>* newSlots, bool acceptUpdatesToLocal) {
+void Table::validateAndUpdate(Array<Slot> *newSlots, bool acceptUpdatesToLocal) {
// The cloud communication layer has checked slot HMACs already before decoding
if (newSlots.length == 0) {
newCommit.createCommitParts();
// Append all the commit parts to the end of the pending queue waiting for sending to the server
- ArbitrationRound * arbitrationRound = new ArbitrationRound(newCommit, new Hashset<Abort *>());
+ ArbitrationRound *arbitrationRound = new ArbitrationRound(newCommit, new Hashset<Abort *>());
pendingSendArbitrationRounds.add(arbitrationRound);
if (compactArbitrationData()) {
status.setStatus(TransactionStatus.StatusAborted);
}
} else {
- Hashset<Abort*> addAbortSet = new Hashset<Abort* >();
+ Hashset<Abort *> addAbortSet = new Hashset<Abort * >();
// Create the abort
// If we got here then this is a brand new commit and needs full processing
// Get what commits should be edited, these are the commits that have live values for their keys
- Hashset<Commit*> * commitsToEdit = new Hashset<Commit*>();
+ Hashset<Commit *> *commitsToEdit = new Hashset<Commit *>();
for (KeyValue kv : commit.getKeyValueUpdateSet()) {
commitsToEdit.add(liveCommitsByKeyTable.get(kv.getKey()));
}
return false; // did not speculate
}
- Hashset<int64_t> * incompleteTransactionArbitrator = new Hashset<int64_t>();
+ Hashset<int64_t> *incompleteTransactionArbitrator = new Hashset<int64_t>();
bool didSkip = true;
for (int i = startIndex; i < transactionSequenceNumbersSorted.size(); i++) {
/**
* Process this slot, entry by entry. Also update the latest message sent by slot
*/
-void Table::processSlot(SlotIndexer indexer, Slot slot, bool acceptUpdatesToLocal, Hashset<int64_t> * machineSet) {
+void Table::processSlot(SlotIndexer indexer, Slot slot, bool acceptUpdatesToLocal, Hashset<int64_t> *machineSet) {
// Update the last message seen
updateLastMessage(slot.getMachineID(), slot.getSequenceNumber(), slot, acceptUpdatesToLocal, machineSet);
/**
* Update the last message that was sent for a machine Id
*/
-void Table::processEntry(LastMessage entry, Hashset<int64_t>* machineSet) {
+void Table::processEntry(LastMessage entry, Hashset<int64_t> *machineSet) {
// Update what the last message received by a machine was
updateLastMessage(entry.getMachineID(), entry.getSequenceNumber(), entry, false, machineSet);
}
// Create a list of clients to watch until they see this rejected message entry.
- Hashset<int64_t>* deviceWatchSet = new Hashset<int64_t>();
+ Hashset<int64_t> *deviceWatchSet = new Hashset<int64_t>();
for (Map.Entry<int64_t Pair<int64_t Liveness> > lastMessageEntry : lastMessageTable.entrySet()) {
// Machine ID for the last message entry
* Check that the last message seen is correct and that there is no mismatch of our own last message or that
* other clients have not had a rollback on the last message.
*/
-void Table::updateLastMessage(int64_t machineId, int64_t seqNum, Liveness liveness, bool acceptUpdatesToLocal, Hashset<intr64_t> * machineSet) {
+void Table::updateLastMessage(int64_t machineId, int64_t seqNum, Liveness liveness, bool acceptUpdatesToLocal, Hashset<intr64_t> *machineSet) {
// We have seen this machine ID
machineSet.remove(machineId);
// Get the set of rejected messages that this machine Id is has not seen yet
- Hashset<RejectedMessage*>* watchset = rejectedMessageWatchVectorTable.get(machineId);
+ Hashset<RejectedMessage *> *watchset = rejectedMessageWatchVectorTable.get(machineId);
// If there is a rejected message that this machine Id has not seen yet
if (watchset != NULL) {
* rejected message entry and which have not.
*/
void Table::addWatchVector(int64_t machineId, RejectedMessage entry) {
- Hashset<RejectedMessage*>* entries = rejectedMessageWatchVectorTable.get(machineId);
+ Hashset<RejectedMessage *> *entries = rejectedMessageWatchVectorTable.get(machineId);
if (entries == NULL) {
// There is no set for this machine ID yet so create one
- entries = new Hashset<RejectedMessage*>();
+ entries = new Hashset<RejectedMessage *>();
rejectedMessageWatchVectorTable.put(machineId, entries);
}
entries.add(entry);
/**
* Check if the HMAC chain is not violated
*/
-void Table::checkHMACChain(SlotIndexer indexer, Array<Slot> * newSlots) {
+void Table::checkHMACChain(SlotIndexer indexer, Array<Slot> *newSlots) {
for (int i = 0; i < newSlots.length; i++) {
Slot currSlot = newSlots[i];
Slot prevSlot = indexer.getSlot(currSlot.getSequenceNumber() - 1);