Concurrency and Dropbox: Analysis of Solutions and Future Improvements
VerifiedAdded on 2023/04/21
|8
|2493
|326
Report
AI Summary
This journal paper delves into the complexities of concurrency control within shared storage systems, specifically addressing the challenges encountered in platforms like Dropbox. It begins by defining concurrency and its impact on data consistency, particularly in scenarios where multiple users access and modify files simultaneously. The paper explores various concurrency control mechanisms, including both centralized (simple server locking, server locking with rented callbacks) and distributed approaches (distributed locking using storage device embedded lock servers and timestamp ordering). The paper then discusses the specific concurrency problem arising in Dropbox, where simultaneous access to files can lead to inconsistencies. The paper explores approaches such as Finite State Machines and concurrency in Erlang. The core of the paper revolves around the deadlock problem, a critical issue in concurrent systems. It then analyzes the effectiveness of different solutions, including deadlock detection and avoidance strategies like mutexes and semaphores. The paper also discusses the pros and cons of Dropbox, and concludes by suggesting future improvements, such as enhanced security and smart sync features to optimize performance and data management. The paper provides valuable insights into the design and implementation of robust concurrent systems for cloud storage environments.

Journal Paper on Concurrency and Drop box
Abstract
Simultaneousness alludes to the limit of different parts or units of a program, computation, or
issue to be executed out-of-ask for or in inadequate demand, without affecting a definitive
outcome. This considers parallel execution of the concurrent units, which would altogether be
able to improve all around speed of the execution in multi-processor and multi-focus structures.
Shared capacity clusters empower a great many capacity gadgets to be shared and
straightforwardly gotten to by end has over exchanged framework region systems, promising
databases and file systems very versatile, solid stockpiling [2]. In such frameworks, nonetheless,
concurrent host I/Os can traverse different shared gadgets and access covering ranges possibly
prompting irregularities for excess codes and for information perused by end has. So as to
empower existing applications to run unmodified and improve the advancement of future ones,
we want a common shared cluster to give the deception of a solitary controller without the
versatility bottleneck and single purpose of disappointment of a genuine single controller. In this
paper, we show how quickly expanding capacity gadget knowledge combined with capacity's
exceptional attributes can be effectively abused to land at a superior answer for this stockpiling
the executives issue.
Introduction
In this journal, we look at four concurrency control plots and practice them to shared capacity
exhibits; two unified ones: simple server locking, and server locking with rented callbacks; and
two circulated ones’ dependent on gadget cooperation: conveyed bolting utilizing capacity
gadget installed lock servers and timestamp requesting utilizing approximately synchronized
tickers. Reproduction results demonstrate that both incorporated bolting plans experience the ill
effects of versatility confinements. Also, callback locking is especially suspect if applications
don't have much characteristic area and if the capacity framework presents false sharing [1].
Appropriated concurrent control with gadget support is alluring as it scales control limit with
capacity and execution limit and offers the chance to piggyback bolt/requesting messages on task
demands, taking out message inertness costs. Moreover, timestamp requesting utilizes less
system assets, is free from halts and has execution points of interest under high burden. We show
how timestamp requesting can be reached out with watchful activity history recording to
Abstract
Simultaneousness alludes to the limit of different parts or units of a program, computation, or
issue to be executed out-of-ask for or in inadequate demand, without affecting a definitive
outcome. This considers parallel execution of the concurrent units, which would altogether be
able to improve all around speed of the execution in multi-processor and multi-focus structures.
Shared capacity clusters empower a great many capacity gadgets to be shared and
straightforwardly gotten to by end has over exchanged framework region systems, promising
databases and file systems very versatile, solid stockpiling [2]. In such frameworks, nonetheless,
concurrent host I/Os can traverse different shared gadgets and access covering ranges possibly
prompting irregularities for excess codes and for information perused by end has. So as to
empower existing applications to run unmodified and improve the advancement of future ones,
we want a common shared cluster to give the deception of a solitary controller without the
versatility bottleneck and single purpose of disappointment of a genuine single controller. In this
paper, we show how quickly expanding capacity gadget knowledge combined with capacity's
exceptional attributes can be effectively abused to land at a superior answer for this stockpiling
the executives issue.
Introduction
In this journal, we look at four concurrency control plots and practice them to shared capacity
exhibits; two unified ones: simple server locking, and server locking with rented callbacks; and
two circulated ones’ dependent on gadget cooperation: conveyed bolting utilizing capacity
gadget installed lock servers and timestamp requesting utilizing approximately synchronized
tickers. Reproduction results demonstrate that both incorporated bolting plans experience the ill
effects of versatility confinements. Also, callback locking is especially suspect if applications
don't have much characteristic area and if the capacity framework presents false sharing [1].
Appropriated concurrent control with gadget support is alluring as it scales control limit with
capacity and execution limit and offers the chance to piggyback bolt/requesting messages on task
demands, taking out message inertness costs. Moreover, timestamp requesting utilizes less
system assets, is free from halts and has execution points of interest under high burden. We show
how timestamp requesting can be reached out with watchful activity history recording to
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

guarantee effective disappointment recuperation without inciting I/Os under ordinary task. This
brings the overhead of simultaneousness control and recuperation to an irrelevant couple of
percent along these lines understanding the adaptability capability of the common cluster I/O
design.
Since calculations in a concurrent framework can cooperate with one another while being
executed, the quantity of conceivable execution ways in the framework can be very substantial,
and the subsequent result can be vague. Concurrent utilization of shared assets can be a
wellspring of indeterminacy prompting issues, for example, deadlocks, and asset starvation.
Structure of simultaneous frameworks frequently involves finding dependable strategies for
organizing their execution, information trade, memory designation, and execution planning to
limit reaction time and amplify throughput.
Background
Concurrency Problem
When the two users have an access to the same folder in the drop box, and each wants to read or
even write on the same file in that folder, there comes a coincidence due to the simultaneous
occurrence. The problem becomes concurrent and the algorithm is executed in a partial way
which is out of order. The problem of concurrency has been illustrated using different
approaches which include:
Finite State Machines (FSM)
FSM is a numerical model of figuring. It is a theoretical machine that can be in exactly one of a
set number of states at some arbitrary time. The FSM can change beginning with one state then
onto the following due to some outside wellsprings of information; the change beginning with
one state then onto the following is known as an advancement [4]. A FSM is portrayed by a
once-over of its communicates, its fundamental state, and the conditions for each change.
Limited state machines are of two sorts – deterministic state machines and non-deterministic
state machines. A deterministic state machine can be built identical to any non-deterministic one.
Synchronous data flow is an extraordinary instance of data flow where the stream of control is
brings the overhead of simultaneousness control and recuperation to an irrelevant couple of
percent along these lines understanding the adaptability capability of the common cluster I/O
design.
Since calculations in a concurrent framework can cooperate with one another while being
executed, the quantity of conceivable execution ways in the framework can be very substantial,
and the subsequent result can be vague. Concurrent utilization of shared assets can be a
wellspring of indeterminacy prompting issues, for example, deadlocks, and asset starvation.
Structure of simultaneous frameworks frequently involves finding dependable strategies for
organizing their execution, information trade, memory designation, and execution planning to
limit reaction time and amplify throughput.
Background
Concurrency Problem
When the two users have an access to the same folder in the drop box, and each wants to read or
even write on the same file in that folder, there comes a coincidence due to the simultaneous
occurrence. The problem becomes concurrent and the algorithm is executed in a partial way
which is out of order. The problem of concurrency has been illustrated using different
approaches which include:
Finite State Machines (FSM)
FSM is a numerical model of figuring. It is a theoretical machine that can be in exactly one of a
set number of states at some arbitrary time. The FSM can change beginning with one state then
onto the following due to some outside wellsprings of information; the change beginning with
one state then onto the following is known as an advancement [4]. A FSM is portrayed by a
once-over of its communicates, its fundamental state, and the conditions for each change.
Limited state machines are of two sorts – deterministic state machines and non-deterministic
state machines. A deterministic state machine can be built identical to any non-deterministic one.
Synchronous data flow is an extraordinary instance of data flow where the stream of control is

adequately standard to be totally unsurprising at gather time. When one user reads and writes the
file, it creates a settled, pre-determined number of tokens on every one of its yields. The way that
these numbers are settled influences it workable for a scheduler to decide the read/to compose
grouping at the time the model is instated. Consequently, SDF models are very effective, in that
there is no multi-threading required, and run-time overhead comprises just of a straightforward
dispatcher that executes the pre-figured timetable [3].
FSM Diagram
Concurrency in Erlang
In Erlang, each string of execution is known as a procedure. process is generally used when the
strings of execution share no information with one another and the expression thread when they
share information somehow or another. Strings of execution in Erlang share no information, that
is the reason they are called procedures.
Procedures in Erlang are not quite the same as the procedures and strings as many people know
about. Erlang forms are lightweight, work in (memory) separation from different procedures, and
are planned by the Erlang's Virtual Machine. The creation time of procedure is low, the memory
impression of a just produced procedure is extremely little, and a solitary Erlang VM can have a
great many procedures running [5].
In Erlang model the lightweight concurrency is used whereby the user is required to most likely
proficiently make the same number of procedures as his requirement for the application and he is
file, it creates a settled, pre-determined number of tokens on every one of its yields. The way that
these numbers are settled influences it workable for a scheduler to decide the read/to compose
grouping at the time the model is instated. Consequently, SDF models are very effective, in that
there is no multi-threading required, and run-time overhead comprises just of a straightforward
dispatcher that executes the pre-figured timetable [3].
FSM Diagram
Concurrency in Erlang
In Erlang, each string of execution is known as a procedure. process is generally used when the
strings of execution share no information with one another and the expression thread when they
share information somehow or another. Strings of execution in Erlang share no information, that
is the reason they are called procedures.
Procedures in Erlang are not quite the same as the procedures and strings as many people know
about. Erlang forms are lightweight, work in (memory) separation from different procedures, and
are planned by the Erlang's Virtual Machine. The creation time of procedure is low, the memory
impression of a just produced procedure is extremely little, and a solitary Erlang VM can have a
great many procedures running [5].
In Erlang model the lightweight concurrency is used whereby the user is required to most likely
proficiently make the same number of procedures as his requirement for the application and he is
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

required to be capable productively to make and erase them when essential. This implies forms
are light and little and there is no need a procedure pool to spare time.
Result/Possible Approaches
Dead Locks
A deadlock occurs when every person from a social group is busy and doesn't allow the other
part, including the party that person is in, to continue, like when something is much often
producing a deadlock [8]. Deadlock is a run of the mill issue in multiprocessing structures,
parallel figuring, and appropriated systems, where programming and hardware locks are used to
conference shared resources and execute procedure synchronization.
Solution to deadlock
Recognition
Under the stop recognition, halts are allowed to occur. By then the state of the system is broke
down to distinguish that a stop has occurred and therefore it is redressed. A figuring is used that
tracks resource segment and method states, it moves back and restarts somewhere around one of
the methodology to empty the recognized gridlock [6]. Recognizing a halt that has simply
happened is viably possible since the benefits that every technique has blasted or conceivably by
and by requested are known to the advantage scheduler of the working system.
How Dead Lock Detection contribute in solving the issue
After a deadlock is identified, it very well may be amended by using the accompanying
strategies:
Strategy termination: something like one methods drew in with the stop may be rashly finished.
One could rashly end all battling methodology related with the halt. This ensures stop is settled
with confirmation and speed. Be that as it may, the expense is high as deficient figuring will be
lost. Or then again, one could rashly end one technique at some random minute until the gridlock
is settled. This philosophy has high overhead in light of the way that after each rashly end a
computation must choose if the system is still in stop. A few parts must be considered while
picking a probability for end, for instance, need and age of the system [9].
are light and little and there is no need a procedure pool to spare time.
Result/Possible Approaches
Dead Locks
A deadlock occurs when every person from a social group is busy and doesn't allow the other
part, including the party that person is in, to continue, like when something is much often
producing a deadlock [8]. Deadlock is a run of the mill issue in multiprocessing structures,
parallel figuring, and appropriated systems, where programming and hardware locks are used to
conference shared resources and execute procedure synchronization.
Solution to deadlock
Recognition
Under the stop recognition, halts are allowed to occur. By then the state of the system is broke
down to distinguish that a stop has occurred and therefore it is redressed. A figuring is used that
tracks resource segment and method states, it moves back and restarts somewhere around one of
the methodology to empty the recognized gridlock [6]. Recognizing a halt that has simply
happened is viably possible since the benefits that every technique has blasted or conceivably by
and by requested are known to the advantage scheduler of the working system.
How Dead Lock Detection contribute in solving the issue
After a deadlock is identified, it very well may be amended by using the accompanying
strategies:
Strategy termination: something like one methods drew in with the stop may be rashly finished.
One could rashly end all battling methodology related with the halt. This ensures stop is settled
with confirmation and speed. Be that as it may, the expense is high as deficient figuring will be
lost. Or then again, one could rashly end one technique at some random minute until the gridlock
is settled. This philosophy has high overhead in light of the way that after each rashly end a
computation must choose if the system is still in stop. A few parts must be considered while
picking a probability for end, for instance, need and age of the system [9].
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

Asset acquisition: assets allotted to different procedures might be progressively appropriated and
apportioned to different procedures until the deadlock is broken.
How to avoid deadlocks
The mutexes should be locked I the same order always – since the deadlock problem occurs
when two strings are hanging tight for one another inconclusively.
Solution Idea/Algorithm
Semaphore
A semaphore is a variable or dynamic information type used to control access to a common
resource by different methods in a synchronous structure, for instance, [8] a playing out various
assignments working system. A semaphore is only a variable. This variable is used to deal with
fundamental portion issues and to achieve process synchronization in the multi taking care of
condition. An unimportant semaphore is a plain factor that is changed depending upon
programming engineer portrayed conditions.
Semaphores are a useful mechanical assembly in the balancing activity of simultaneous
conditions; regardless, their usage is by no means whatsoever, a confirmation that a program is
free from these issues [6]. Semaphores which grant an emotional resource check are called
counting semaphores, while semaphores which are restricted to the characteristics 0 and 1.
Possible approaches
Locking
apportioned to different procedures until the deadlock is broken.
How to avoid deadlocks
The mutexes should be locked I the same order always – since the deadlock problem occurs
when two strings are hanging tight for one another inconclusively.
Solution Idea/Algorithm
Semaphore
A semaphore is a variable or dynamic information type used to control access to a common
resource by different methods in a synchronous structure, for instance, [8] a playing out various
assignments working system. A semaphore is only a variable. This variable is used to deal with
fundamental portion issues and to achieve process synchronization in the multi taking care of
condition. An unimportant semaphore is a plain factor that is changed depending upon
programming engineer portrayed conditions.
Semaphores are a useful mechanical assembly in the balancing activity of simultaneous
conditions; regardless, their usage is by no means whatsoever, a confirmation that a program is
free from these issues [6]. Semaphores which grant an emotional resource check are called
counting semaphores, while semaphores which are restricted to the characteristics 0 and 1.
Possible approaches
Locking

Controlling access to information by locks allotted to the information. Access of an exchange to
an information thing bolted by another exchange might be blocked (contingent upon lock type
and access task type) until lock discharge [10].
Timestamp requesting
Doling out timestamps to exchanges, and controlling or checking access to information by
timestamp request.
Duty requesting
Controlling or checking exchanges' sequential request of submit occasions to be good with their
individual priority request.
Discussion
Dropbox is an individual distributed storage administration (some of the time alluded to as an
online reinforcement administration) that is often utilized for record sharing and joint effort.
Utilizing Dropbox on your PC is much the same as utilizing some other organizer on your hard
drive, with the exception of the documents you haul into your Dropbox envelope consequently
adjust on the web and to some other PCs or cell phones connected to your record. Deadlock
happens when the two procedures in a set are queuing for an action that can be caused by some
other procedures in that set [7]. Dead lock is operating system problem that occurs when a set of
process is accessed two queries.
Critically evaluate all solutions – pros and cons
Pros –
Dropbox is easy to use. It requires little knowledge to understand how to use it.
an information thing bolted by another exchange might be blocked (contingent upon lock type
and access task type) until lock discharge [10].
Timestamp requesting
Doling out timestamps to exchanges, and controlling or checking access to information by
timestamp request.
Duty requesting
Controlling or checking exchanges' sequential request of submit occasions to be good with their
individual priority request.
Discussion
Dropbox is an individual distributed storage administration (some of the time alluded to as an
online reinforcement administration) that is often utilized for record sharing and joint effort.
Utilizing Dropbox on your PC is much the same as utilizing some other organizer on your hard
drive, with the exception of the documents you haul into your Dropbox envelope consequently
adjust on the web and to some other PCs or cell phones connected to your record. Deadlock
happens when the two procedures in a set are queuing for an action that can be caused by some
other procedures in that set [7]. Dead lock is operating system problem that occurs when a set of
process is accessed two queries.
Critically evaluate all solutions – pros and cons
Pros –
Dropbox is easy to use. It requires little knowledge to understand how to use it.
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

Dropbox allows sharing of a large amount of data. The sender can allocate the folder to be send
and place it in the public folder and thus sharing made more easy.
Dropbox is completely free. There are no upfront charges or any additional charges once you
start using the service.
Cons
Data privacy - Private data can be stolen or hacked thus disclosed to the wrong people.
The developers who developed the drop box can delete a working account and thus brings
inconveniences.
Future works / improvements
Future Works
Drop box developers will work on the security of each drop box account to ensure that no
intruder who can temper with personal data.
Improvements
Conveying the document server to the cloud with Smart Sync
Dropbox aspect of smart sync makes all the substance in a client's Dropbox account consistently
open from their work area record framework — and the substance takes up for all intents and
purposes no neighborhood circle space until it's required. This is the business' first cross-stage,
on-request distributed storage arrangement.
Brilliant Sync chips away at all documents and envelopes in a Dropbox Business account.
Matched with the as of late discharged Dropbox group organizers, Dropbox turns into a halfway
reasonable, secure center point for groups to cooperate on the entirety of their records. These
arrangements make cooperation simple and straightforward of course. Colleagues increase full
perceivability and phenomenal access to their whole Dropbox directly from their work area
document framework, regardless of how vast. Savvy Sync is accessible to Dropbox Business
groups in early access beginning today.
and place it in the public folder and thus sharing made more easy.
Dropbox is completely free. There are no upfront charges or any additional charges once you
start using the service.
Cons
Data privacy - Private data can be stolen or hacked thus disclosed to the wrong people.
The developers who developed the drop box can delete a working account and thus brings
inconveniences.
Future works / improvements
Future Works
Drop box developers will work on the security of each drop box account to ensure that no
intruder who can temper with personal data.
Improvements
Conveying the document server to the cloud with Smart Sync
Dropbox aspect of smart sync makes all the substance in a client's Dropbox account consistently
open from their work area record framework — and the substance takes up for all intents and
purposes no neighborhood circle space until it's required. This is the business' first cross-stage,
on-request distributed storage arrangement.
Brilliant Sync chips away at all documents and envelopes in a Dropbox Business account.
Matched with the as of late discharged Dropbox group organizers, Dropbox turns into a halfway
reasonable, secure center point for groups to cooperate on the entirety of their records. These
arrangements make cooperation simple and straightforward of course. Colleagues increase full
perceivability and phenomenal access to their whole Dropbox directly from their work area
document framework, regardless of how vast. Savvy Sync is accessible to Dropbox Business
groups in early access beginning today.
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

Conclusions
In conclusion, mutex algorithm are used to solve the dead lock issues which conflict
concurrently. Deadlock occurs when a process waiting for resources that are held by another
process. Most current operating systems ignore deadlocks thus the programmers are supposed to
handle. There is no approach which is more sufficient.
References
1. Farentinos, Chris. "Security dropbox with pivoting service bin." U.S. Patent 6,719,195, issued
April 13, 2014.
2. Bernstein, Philip A., Vassos Hadzilacos, and Nathan Goodman. "Concurrency control and
recovery in database systems." (2017).
3. Farentinos, Chris. "Security dropbox with pivoting service bin." U.S. Patent 6,719,195, issued
April 13, 2014.
4. Kindler, Ekkart, and Rolf Walter. "Message passing mutex." In Structures in Concurrency Theory,
pp. 205-219. Springer, London, 2015.
5. Chu, Cheng-Kang, Wen-Tao Zhu, Jin Han, Joseph K. Liu, Jia Xu, and Jianying Zhou. "Security
concerns in popular cloud storage services." IEEE Pervasive Computing 12, no. 4 (2013): 50-57.
6. Quick, Darren, and Kim-Kwang Raymond Choo. "Dropbox analysis: Data remnants on user
machines." Digital Investigation 10, no. 1 (2013): 3-18.
7. Park, David. "Concurrency and automata on infinite sequences." In Theoretical computer science,
pp. 167-183. Springer, Berlin, Heidelberg, 2011.
8. Presler-Marshall, Martin Joseph Clayton. "Protecting shared resources using mutex striping."
U.S. Patent 6,199,094, issued March 6, 2011.
9. Oliver, Richard J. "Read lock and write lock management system based upon mutex and
semaphore availability." U.S. Patent 6,029,190, issued February 22, 2010.
10. Westing, Arthur H. "Comprehensive human security and ecological realities." Environmental
Conservation 16, no. 4 (1989): 295-295.
In conclusion, mutex algorithm are used to solve the dead lock issues which conflict
concurrently. Deadlock occurs when a process waiting for resources that are held by another
process. Most current operating systems ignore deadlocks thus the programmers are supposed to
handle. There is no approach which is more sufficient.
References
1. Farentinos, Chris. "Security dropbox with pivoting service bin." U.S. Patent 6,719,195, issued
April 13, 2014.
2. Bernstein, Philip A., Vassos Hadzilacos, and Nathan Goodman. "Concurrency control and
recovery in database systems." (2017).
3. Farentinos, Chris. "Security dropbox with pivoting service bin." U.S. Patent 6,719,195, issued
April 13, 2014.
4. Kindler, Ekkart, and Rolf Walter. "Message passing mutex." In Structures in Concurrency Theory,
pp. 205-219. Springer, London, 2015.
5. Chu, Cheng-Kang, Wen-Tao Zhu, Jin Han, Joseph K. Liu, Jia Xu, and Jianying Zhou. "Security
concerns in popular cloud storage services." IEEE Pervasive Computing 12, no. 4 (2013): 50-57.
6. Quick, Darren, and Kim-Kwang Raymond Choo. "Dropbox analysis: Data remnants on user
machines." Digital Investigation 10, no. 1 (2013): 3-18.
7. Park, David. "Concurrency and automata on infinite sequences." In Theoretical computer science,
pp. 167-183. Springer, Berlin, Heidelberg, 2011.
8. Presler-Marshall, Martin Joseph Clayton. "Protecting shared resources using mutex striping."
U.S. Patent 6,199,094, issued March 6, 2011.
9. Oliver, Richard J. "Read lock and write lock management system based upon mutex and
semaphore availability." U.S. Patent 6,029,190, issued February 22, 2010.
10. Westing, Arthur H. "Comprehensive human security and ecological realities." Environmental
Conservation 16, no. 4 (1989): 295-295.
1 out of 8
Your All-in-One AI-Powered Toolkit for Academic Success.
+13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
Copyright © 2020–2026 A2Z Services. All Rights Reserved. Developed and managed by ZUCOL.