X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=version2%2Fsrc%2FC%2FTable.h;h=99abb55faf25417ed493280873f6e6d62c58d77a;hp=a97d12490e0da627cb244d32d537ca9d07ce3bd5;hb=d28d6cb0b30fcb629eb66feb8506c7e76a3652f8;hpb=b2bc9b5c707bd7d932d60cd4e8c1cb580b36b5b4 diff --git a/version2/src/C/Table.h b/version2/src/C/Table.h index a97d124..99abb55 100644 --- a/version2/src/C/Table.h +++ b/version2/src/C/Table.h @@ -60,10 +60,10 @@ private: /* Data Structures */ - Hashtable *committedKeyValueTable;// Table of committed key value pairs - Hashtable *speculatedKeyValueTable; // Table of speculated key value pairs, if there is a speculative value - Hashtable *pendingTransactionSpeculatedKeyValueTable; // Table of speculated key value pairs, if there is a speculative value from the pending transactions - Hashtable *liveNewKeyTable; // Table of live new keys + Hashtable *committedKeyValueTable;// Table of committed key value pairs + Hashtable *speculatedKeyValueTable; // Table of speculated key value pairs, if there is a speculative value + Hashtable *pendingTransactionSpeculatedKeyValueTable; // Table of speculated key value pairs, if there is a speculative value from the pending transactions + Hashtable *liveNewKeyTable; // Table of live new keys Hashtable *> *lastMessageTable; // Last message sent by a client machine id -> (Seq Num, Slot or LastMessage); Hashtable *> *rejectedMessageWatchVectorTable; // Table of machine Ids and the set of rejected messages they have not seen yet Hashtable *arbitratorTable;// Table of keys and their arbitrators @@ -74,7 +74,7 @@ private: Hashtable *liveTransactionBySequenceNumberTable; // live transaction grouped by the sequence number Hashtable *, Transaction *, uintptr_t, 0, pairHashFunction, pairEquals> *liveTransactionByTransactionIdTable; // live transaction grouped by the transaction ID Hashtable *> *liveCommitsTable; - Hashtable *liveCommitsByKeyTable; + Hashtable *liveCommitsByKeyTable; Hashtable *lastCommitSeenSequenceNumberByArbitratorTable; Vector *rejectedSlotVector; // Vector of rejected slots that have yet to be sent to the server Vector *pendingTransactionQueue; @@ -97,9 +97,10 @@ private: */ void setResizeThreshold(); bool sendToServer(NewKey *newKey); + NewKey * handlePartialSend(NewKey * newKey); bool updateFromLocal(int64_t machineId); Pair sendTransactionToLocal(Transaction *transaction); - ThreeTuple *> sendSlotsToServer(Slot *slot, int newSize, bool isNewKey); + bool sendSlotsToServer(Slot *slot, int newSize, bool isNewKey, bool * wasInserted, Array **array); /** * Returns false if a resize was needed */