In a normal Vector clock algorithm, the vector clock is piggybacked along with the request itself. What if the vector clock gets updated much before the actual request comes ? As in the vector clock and requests are updated independently and the request gets delayed for some reason.
What if vector clock update reaches much before the actual update?
160 Views Asked by Nitesh Dudhey At
2
There are 2 best solutions below
0
vasha
On
You need strict ordering, but a request, vector clock or even parts of a request can arrive separately. Just like when you send a message on TCP, it is broken down to many packets and each packet arrives separately. On other end you wait till all parts are there before processing them.
So, in your question, on the receiving side, you have to wait until the request and the associated vector clock has arrived. They must becoming one after other with nothing else in-between on the same channel (connection), so that the receiver knows which request is related to which vector clock. Once all of it is received, it can process the request and the clock in an atomic update.
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in DISTRIBUTED-SYSTEM
- How to avoid duplicates with the pull-based subscribe model?
- Micrometer & Prometheus with Java subprocesses that can't expose HTTP
- SQL connection throws error when adding DistributedSession, SessionMiddleware
- How to use NFS locks or any other mechanism to keep data in sync on multiple mountpoints
- The two data nodes return different results
- How to run an MPI program across multiple docker containers without manually ssh'ing
- How do I parallelize writing a list of Pyspark dataframes across all worker nodes?
- Does AWS use distributed systems?
- How to version control a source code which communicates with database?
- Searching for succ(p+1) in Chord systems
- How to design a long running process that can continue after an outtage?
- akka.cluster.ddata.Replicator$Internal$DeltaPropagation message from clusterReceptionist replicator is dropped because it exceeds the size limit
- In the storage-computing separation deployment mode, why does one of the three nodes have no disk space?
- Out-of-order AppendEntries in Raft
- Automatic Load Balancer with Locust 2.20.0 on Windows - High Ping and Scaling Challenges
Related Questions in DISTRIBUTED-ALGORITHM
- Implementation of distributed greedy algorithm for finding maximum independent set
- What if vector clock update reaches much before the actual update?
- Julia Distributed, failed to modify the global variable of the worker
- Julia Distributed slow down to half the single core performance when adding process
- Julia Parallel Distributed
- Two phase commit: what happens if the coordinator dies between sending two confirmations
- How to implement distributed algorithm of leader election using JBotsim library
- Space complexity of distributed algorithm
- distributed algorithm in C
- implement Broadcast Tree on OMNET++
- is there tool to build distributed search techniques?
- What is the difference between consistent hashing and cone hashing?
- How to classify a failure detector?
- What is the diameter of a graph with just one node?
- What is wrong with this algorithm execution in Java?
Related Questions in VECTOR-CLOCK
- Logical Time, Lamport Timestamps and Vector Clocks in distributed systems
- What if vector clock update reaches much before the actual update?
- Is it possible for a vector clock to be greater than another but they are not ancestor related?
- How does the messenger maintain the sequencing of the messages during chat and when users log in again?
- Sorting list of vector clocks (total order)?
- Can I have conflict in Riak with using a vclock getting by a get
- Why this property of VC(a)<VC(b) ==> a->b of Vector Clocks always holds?
- SQL Server vector clock
- Why does the gossip protocol in akka need to deliver it's state twice for the state change to be registered?
- How to determine Last write win on concurrent Vector clocks?
- Dynamic vector clock reconstruction with multiple nodes
- How to generate unique timestamps in PostgreSQL?
- Is the MongooseJS "versionKey" (__v field) a "vector clock"?
- Atomic, scalable, monotonic counter with boundary
- Vector Clock different implementations
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There is lots of ambiguity in the question, but let me try...
Each node has its own version clock, representing every node in the system. A node can change state (version clock) in two cases:
You could imagine that every node has two apis: one for external requests and one for requests from other nodes.
For the second (external) request, the node would update its own component of version clock stored on the node itself. That's it. Nothing more, nothing less. As an optimization, it could stop updating the clock until it sends data to any other node - own component needs to be updates AT LEAST once in between inter-node communication.
Now when this node sends updates to other nodes, this is where the version clock info is sent along. And the receiver do proper logic around version clock management.