<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>European Conference on Ambient Intelligence,
Rome, Italy</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Exploiting Edge Computing for Adaptive Data Update in Internet of Things Networks</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marcello Pediconi marcello.pediconi@aenduo.com</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Andrea Lacava</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Andrea Petroni</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Department of Information Engineering, Electronics and Telecommunications La Sapienza University of Rome</institution>
          ,
          <addr-line>Italy Aenduo s.r.l., Rome</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Francesca Cuomo</institution>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Gianluigi Nero</institution>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Pierluigi Locatelli</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <volume>1</volume>
      <fpage>3</fpage>
      <lpage>11</lpage>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>With the advent of the pervasive Internet of
Things (IoT) era it is expected to have
billions of entities simultaneously connected to
the network, sharing heterogeneous data to
support disparate applications. Such scenario
will therefore open new challenges as for
network management and information exchange
rules. In this context, the increasing data
volume may especially lead Cloud-based services
to be su ering from overload and data
trafc consumption increase when serving a huge
number of devices. A potential approach to
address this problem is to edge computing,
including all those enabling technologies able
to move large part of computing close to the
data sources, proving several bene ts in terms
of latency reduction, bandwidth optimization
and security [RGXZ17][MTPC19]. Another
aspect impacting the performance is the
optimization of the amount of data volumes
transmitted by the IoT devices. This task is
accomplished by speci c data synchronization
protocols and algorithms that are responsible
for information exchange between devices and
cloud. In this direction, we consider a
decentralized IoT cloud framework where devices
connect to the data center through an IoT
gateway. Moreover, we present a mechanism
for data synchronization that considers
Octodi , a well known tool for data compression,
combined with an adaptive algorithm speci
cally tailored to limited, variable, IoT tra c
volumes. By investigating the performance of
the proposed architecture, we show how the
tra c amount generated by IoT cloud-services
can be conveniently reduced.
1</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>People's lives and habits will reach new breakthroughs
thanks to the introduction of the Internet of Things
(IoT). Being surrounded anytime and anywhere by
billions of things communicating and sharing information
with one another represents the latest step of the
interaction between humans and technology.</p>
      <p>Such a revolutionary paradigm involves very
heterogeneous devices, from wearables, smartphones and
computers associated to daily, personal activities, up
to sensors and machinery systems employed for
monitoring and control smart buildings, industry and cities
[AGM+15]. In this direction, as each IoT device
output is characterized by speci c structures and
features, di erent kind of data are going to be
simultaneously transmitted through the network. Some
examples are represented by the small size spot measures
typically produced by sensors for environmental
monitoring, otherwise high quality and large size videos
and pictures shared between computers. Moreover,
data tra c is driven by the speci c application that it
is related to, requiring appropriate quality of service.
For instance, activities like video streaming need to be
supported by high rates and low latency, while many
others are oriented to energy saving, especially when
battery power devices are involved. In general, taking
into account all of these concerns is important in order
to minimize the overall tra c load, but when dealing
with the IoT it becomes essential as the presence of a
large number of devices entails a signi cant growth of
the amount of data volumes.</p>
      <p>The e cient management of network resources is
recognized to be very challenging, especially in
cloudbased networks where the presence of a huge amount of
devices simultaneously performing data
synchronization may cause bandwidth saturation. Therefore, it
follows that e ective protocols for remote data
update are necessary to minimize the amount of data
exchanged through the network and, consequently, to
optimize the overall tra c load. Moreover, the
reduction of information to be transmitted returns also to
energy saving for all that IoT devices that are typically
battery powered.</p>
      <p>Unfortunately, data synchronization algorithms
originally developed for computer systems badly t
to the IoT since they are not able to handle
heterogeneous tra c volumes and their performance do not
consider device power consumption. An example is
given by the rsync algorithm [TM96] representing the
core of many, well known, cloud services like Dropbox.
Given two parties each one storing di erent version of
the same le (an old one and a newer one), the rsync
algorithm performs a single round synchronization by
recognizing the matching parts between the two le
versions, so that the information to be exchanged is
just that one necessary to make the old le version
updated. In general, good performance are obtained
when the size of les under processing is quite large, on
the other hand, the algorithm su ers from ine ciency
when dealing with small amount of data. So, rsync
may not represent the best solution in the IoT case
where few data are sporadically transmitted (for
instance, sensors for environmental monitoring sending
their spot measurements to the data center). Some
other algorithms have been proposed in the literature
with the aim to improve the performance of rsync, such
as that one presented in [YIS08] where reconciliation
techniques are applied to minimize the bandwidth
consumption. Other solutions consider instead multiple
round procedures in order to optimize the generated
tra c amount like in [SNT04], but unfortunately
undesired latency is introduced due to the bi-directional
communications occurring between the two parties
involved in the synchronization.</p>
      <p>More recently, the problem of data update has been
addressed with a view to IoT scenarios and
applications. In this context, the heterogeneity and variability
of IoT data are addressed in [ZL16] by proposing a
remote synchronization based on timestamp and bitmap
to improve the transmission e ciency. Furthermore,
the work in [PCS+18] introduces an rsync-inspired
algorithm where the knowledge of data characteristics
are exploited to adaptively tune the synchronization
parameters and optimize the amount of information
to be transmitted.</p>
      <p>Finally, the architecture itself characterizing the
cloud services may represent a limit for the
performance in the IoT context. Indeed, devices at the edge
of the network may be very far from the datacenter
node, so the process of remote data synchronization
could su er from long latency, bandwidth ine ciency,
bottlenecks and excessive device power consumption.
A potential solution to all those issues is the edge
computing [SCZ+16] that envisages the development of a
de-centralized structure where many computing tasks
are moved at the network edge, so closer to the IoT
devices. The exploitation of this novel approach is
described in [WZL+19] where a fog computing-based
technique is proposed for data synchronization in the
IoT.</p>
      <p>Following this direction, on the basing of principles
of edge computing, we investigate a cloud architecture
where devices are connected to an IoT gateway, placed
at the network edge, and performing remote les
synchronization by interacting with the main data center.
Speci cally, we consider a data synchronization
mechanism given by the combination of Octodi with a
rephrased version of the adaptive algorithm AC-rdi
introduced in [PCS+18], in order to evaluate the
bene ts of the presented solution on the network tra c
load and on the reduction of the processing time
requested by the synchronization procedure.</p>
      <p>The paper is organized as follows. In Sec. 2 the
network scenario is introduced, reporting the essentials of
Octodi and AC-rdi . The architecture and features
of the proposed le synchronization mechanism are
detailed in Sec. 3. Sec. 4 reports some numerical results,
and nally the conclusion is drawn in Sec. 5.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Reference framework</title>
      <p>Let us refer to an IoT scenario where multiple devices
(sensors, vehicles, machinery and so forth) periodically
access the network to store their data and
measurements on a cloud server. As previously mentioned, the
potentially large number of entities simultaneously
interacting with the cloud may create a bottleneck at the
server node, so we consider a de-centralized
architecture like that one described in Fig. 1 where many IoT
gateways (IoT GWs) placed at the network edge are
responsible for data collection and update. The
proposed scenario is realized on the basis of the principles
of edge computing, where data processing is performed
near the devices, reducing latency and providing
energy saving to battery powered IoT entities.
Therefore, each IoT GW is supposed to have a storage
capacity and computing power, so that data
synchronization can be operated minimizing the interaction with
the cloud central node (communications for network
control and management may be considered anyway).
Giving further details about the communication
protocols involving IoT GWs and the central node goes
behind the scope of this work, however we were
inspired by a medical IoT application were medical
devices communicate with short range links to a GW
that on its turn is interconnected to the Internet. We
focus the attention on remote data synchronization
aspects. In this direction, we report below the essentials
of Octodi and the adaptive algorithm in [PCS+18]
that are combined to implement the synchronization
mechanism.
2.1</p>
      <sec id="sec-3-1">
        <title>Octodi</title>
        <p>Octodi is an implementation of remote delta
compression developed by Microsoft. It relies on the rdi
algorithm that is a particular version of rsync [TM96].
By referring to Fig. 2, Octodi generates a delta le
containing all the information necessary to update the
old le version stored at server side up to the latest one
provided at the client side. By identifying the IoT GW
as the client and the cloud as the server (Fig. 2), the
main steps of the procedure are summarized as follows
(see [Git ] for further details):
1. The cloud organizes its old version of the le FOLD
in blocks of size equal to dc, referred as chunks
in the rest of the paper. Then, chunks are
compressed, checksums (named signatures in the
fol</p>
        <p>lowings) are generated and a resulting list of
signatures SOLD are sent to the IoT GW.
2. The IoT GW uses the list of signatures SOLD to
compute the di erences between its latest le
version FNEW and FOLD stored at cloud side. The
output delta le , containing the information
about the di erences, is transmitted to the cloud.
3. The cloud applies the changes reported in to</p>
        <p>FOLD, nally obtaining an exact copy of FNEW.
It is worth highlighting that transmitting the
signatures SOLD (generated from an Adler32-based rolling
checksum and a hash functions SHA1) instead of the
entire le basis FOLD brings bene ts in terms of
bandwidth saving. A similar optimization is given by
transferring the smaller le in place of the whole FNEW.
However, the performance of Octodi strictly depends
on a convenient choice of dc, that is the parameter that
drives not only the split of FOLD, but also the di
erences computation at the IoT GW side. In fact, if
the dimension of dc is not su ciently smaller than the
entire le size, the processing at IoT GW side may
generate a le containing overhead information that is
unnecessary to the cloud for le update. So, additional
and undesired data tra c is generated. In Octodi the
chunk size is set by default to 2048 bytes, even though
values from 128 to 31744 bytes are accepted. The
analysis of the original rsync reported in [TM96] identi es
the optimal value for the chunk size as equal to 512 or
1024 bytes.
2.2</p>
        <p>Adaptive data synchronization algorithm
All the rsync-based algorithms are known to be very
e cient especially when processing rather large size
data (signi cantly larger than the chunk size). On
the other hand, as previously outlined, providing good
performance becomes harder when small les are
handled. In fact, the rsync algorithm works according to a
xed chunk size, the value of which may be sometimes
inappropriate especially when dealing with
heterogeneous data. This occurrence is typical in the IoT, so a
static approach to data synchronization is ine ective.
In this direction, the algorithm AC-rdi introduced
in [PCS+18] shows how the chunk size can be
conveniently tuned in order to match the characteristics of
the le under processing. Speci cally, the algorithm
considers the following steps:
1. The di erences between two le versions FNEW
and FOLD are computed, generating the output
le as performed in rsync (and, therefore, as in
Octodi ) to be transmitted from the client to the
server for completing the update.
2. By analyzing the le it is possible to infer
information about the portions of FNEW and FOLD
that are matching. So, basing on the distribution
of the matching blocks along the le, a new
optimal chunk size is estimated to be used in the next
synchronization procedures.</p>
        <p>More in detail, the le is composed of i) a sequence
of literal bytes, that is all the information recognized as
new and that have to be necessarily sent to the server
for its le version update, ii) a list of tokens, that is
the indexes referring to the position of matching blocks
within the le. The set of tokens represents the input
for the algorithm responsible for the chunk size
optimization. By analyzing the list of tokens, a rough
estimate of the matching blocks spatial distribution is
obtained. So, loosely speaking, the presence of
matching blocks placed one next to the other leads the chunk
size to be incremented. On the other hand, a sparse
distribution of matching blocks makes the chunk size
basically reduced. Finally, the new estimated chunk
size is saved in the header of the le and
transmitted to the cloud in order to be set up for the next
synchronization procedure.</p>
        <p>So, the parameters ruling the synchronization
mechanism are tuned basing on the characteristics and
spatial distribution of changes occurring in the le.
Preliminary results have shown the e ectiveness of this
approach especially when dealing with data of a size
in the order of few kilobytes (that case may represent
a typical output of an IoT sensor for environmental
monitoring).
3</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Adaptive Octodi synchronization</title>
      <p>Interestingly, the chunk size adaptation rule driving
AC-rdi can be easily combined with any
synchronization mechanism relying on the principles of rsync.
In this direction, the study here proposed is on the
integration of AC-rdi , conveniently modi ed, with
Octodi tool.</p>
      <p>First, it is worth highlighting that AC-rdi is
performed on the current le update procedure, and
returns an optimized parameter (the chunk size) to be
applied in the next synchronization event. So, the
processing performed at the IoT GW side considers two
steps, that is the computation of les di erences by
generating the le and then the chunk size
optimization. A reference architecture describing this
mechanism is essentially given by the cascade of the block
for delta computing (named di computing ) and the
block for chunk size optimization, as depicted in Fig.
3. The processing operated by the cloud, that is le
compression and update, essentially is the same as in
the original Octodi . Given the storage and
processing capacity supposed for the IoT GW we assume that
this node as able to store both FNEW and FOLD in its
memory. So, the le can be computed internally,
that is without the need to receive the old le version
reference from the cloud. In this way, the downlink
communication from the cloud to the IoT GW could
be signi cantly reduced, saving therefore network
trafc. The cloud would always deal with the le update
operations, while data compression and transmission
would only concern sporadic cases like for example
failure events where the connection with the IoT GW
needs to be restored. The computing requested by the
IoT GW is instead summarized in the following steps.
The synchronization starts when the IoT GW collects
all the information related to FNEW and FOLD. The
di erences between the two les are processed and the
corresponding output le is generated. The
adaptive chunking is then performed using the information
(the tokens list) stored in , returning the new chunk
size estimate dopt. Finally, both the le and dopt
are sent to the cloud to let it perform its le version
update. It is worth highlighting that the cloud must
receive from the IoT GW the information about dopt
so that it can correctly set up the parameters for the
next synchronization procedure.</p>
      <p>To implement the AC-rdi in the Octodi
framework the algorithm has been rephrased in some parts,
with the corresponding pseudocode being detailed
below. Speci cally, the input is represented by the
current chunk size and a vector gathering the token
indexes, dold and Pt respectively. By computing the
distance between consecutive token indexes (row 10) the
distribution of matching chunks along the le is
inferred and multiple partial estimates of the optimal
chunk size are obtained (row 13-18). The new chunk
dopt is returned by the average on the partial
estiAlgorithm 1 AC-rdi Algorithm
1: Input: Pt Token index vector; dold current chunk
size
mates collected in Wm. The speed of adaptation of
the new chunk size is ruled by two step sizes, namely</p>
      <p>UP and DOWN. However, in order to avoid
excessive variations of the output, dopt is allowed to range
from half the old chunk size dold and 2 times dold.
Furthermore, as described in the previous section, the
chunk size driving Octodi can assume values from 128
to 31744 bytes, so the output of AC-rdi is anyway
forced to meet this constraint even when the actually
estimated dopt is out of the considered range.
4</p>
    </sec>
    <sec id="sec-5">
      <title>Numerical results</title>
      <p>The e ectiveness of remote synchronization algorithms
strictly depends on the characteristics of data under
processing and on the changes that they may be
subject to. It is worth noting that the measurements
produced by devices are typically gathered into les
characterized by an header and a payload or, in more
speci c cases, into structured formats like for instance
JSON and XML. The knowledge of how the
information to be transmitted is organized could be helpful in
order to conveniently set up the synchronization
mechanism, however the heterogeneity of data and devices
in the IoT may not always allow the achievement of
optimal performance.</p>
      <p>In this direction, we have investigated the e ciency
of the proposed adaptive chunking based Octodi ,
referred as A-Octodi in the rest of the paper,
comparing its performance with those provided by the
classical Octodi working with static parameters, referred
as S-Octodi . Speci cally, by running the remote le
synchronization on simulated data, we show how the
exibility characterizing A-Octodi results to be
useful for optimizing of the network tra c load, but also
for reducing the processing time.</p>
      <p>We preliminary considered the remote le
synchronization as run on simulated les, the dimension of
which has been initially chosen to be about 50 kB.
Such a value is in line with the typical output
generated by some IoT devices. Speci cally, the
performance of A-Octodi and S-Octodi have been
measured in terms of generated tra c percentage, given
by:</p>
      <p>T% =</p>
      <p>dim( )
dim(FNEW )
100
that is the ratio between the amount of data
actually transmitted (the le ) and the dimension of the
entire latest le version (the le FNEW). The results
come from the average on 100 simulations (that is, 100
le synchronization procedures), considering di erent
le update percentages expressing how much of the
current le has changed with respect to its previous
version.</p>
      <p>The spatial distribution of updates within the le
have been rst modeled as uniform and organized in
blocks of variable size (from tens to hundreds of bytes).
This kind of distribution represents the worst case for
S-Octodi and, in general, for all the synchronization
mechanisms working with static parameters since the
updates essentially occur randomly in the le. The
synchronization mechanisms have been implemented
with di erent starting chunk sizes, but while these
values remain static in S-Octodi , the adaptation
provided by A-Octodi make them change as the
simulations go on. S-Octodi considers by default the chunk
size as equal to 2048 bytes. By looking at the results
reported in Fig. 4 it is possible to appreciate how the
use of such static value provides bad performance as
the generated tra c percentage is in the order of 35%,
increasing up to the 50% as the le update percentage
grows (error bars referring to a 95% con dence interval
are highlighted for all the measurements). The reason
is that the chunk size is too large with respect to the
le size, therefore it is very hard to recognize matching
blocks of bytes. On the other hand, with A-Octodi ,
by adapting the chunk size to an optimal value, the
amount of generated tra c results to be signi cantly
1
3</p>
      <p>File u5pdate percenta1g0e (%)
15
20
reduced down to the 15%-25%. The same simulations
have been run considering a starting chunk size equal
to 512 bytes that has resulted to be more suited to
the considered scenario, in fact S-Octodi returns an
average tra c percentage ranging from 13% to 30%.
However, the adaptive mechanism driving A-Octodi
allows the achievement of even better performance, as
the generated tra c percentage is reduced by the
6%7% with respect to S-Octodi . Finally, the remote le
synchronization has been performed using the
minimum chunk size allowed by Octodi , that is 128 bytes.
In this case A-Octodi provides essentially the same
performance of A-Octodi using a starting chunk size
equal to 512 bytes. This fact can be explained by
looking at Fig. 5 describing the adaption of the chunk size
as the simulations proceed (the values on the
vertical axis are reported on a logarithmic scale for
convenience). Speci cally, it is possible to observe that
when the initial chunk size is 512 bytes the value tends
to decrease (the same happens for the chunk size
initially equal to 2048 bytes), while if the starting chunk
size is 128 byte, the adaptation mechanism returns
increasing values. Therefore, as the chunk sizes tend to
converge, it is reasonable to measure the same
performance. Furthermore, we observe that, since the
optimal chunk size value equal to 150 bytes is quite close to
the minimum one allowed, S-Octodi and A-Octodi
return the same average tra c percentage when a 128
)s1024
e
t
y
b
(ze 512
i
s
k
n
huC256
128
bytes initial chunk size is considered.</p>
      <p>Finally, it is worth noting that when the di erences
between two les are computed returning the list of
matching blocks, the Octodi tool is able to compress
the corresponding tokens in a single interval if they are
listed in ascending order, reducing the information to
be sent. So, using a small chunk size may seem always
convenient since by doing so, even if the number of
generated tokens is higher than the case when a larger
chunk size is used, they can be however compressed .
So this is the reason why Octodi and A-Octodi
return the same generated tra c percentage. However,
in general the time for le processing and di erence
grows increases as the chunk size decreases.</p>
      <p>The bene ts coming from the use of an adaptive
approach with respect to the static one have been also
evaluated by comparing the time required for
processing. Of course the performance depend on the speci c
hardware employed to run the synchronization
procedure, so we have introduced the following metric:
RTp =</p>
      <p>Tp,adaptive</p>
      <p>Tp,static
(1)
that is the ratio between the average processing time
referring to the adaptive mechanism and the average
processing time for the static one. By doing so, the
performance comparison between adaptive and static
mechanism can be expressed independently from the
hardware used for tests. In this direction, Tab. 1
reports the results of RTp measured combining the
AOctodi and S-Octodi implementations. Speci cally,
having values less than 1 means that the adaptive
mechanism is less time consuming than the static one.
On the other hand, when values exceed 1, A-Octodi
requests more time than S-Octodi . However, this
latter results is not always negative. In fact, for example,
even though A-Octodi 512 is slower than S-Octodi 512,
the use of the adaptive approach provide a signi cant
tra c saving with respect to the static mechanism
(Fig. 4). Moreover it is also shown that, in general,
the use of a small chunk size leads to the recognition
of a larger number of matching blocks, but it makes
the di erence computing processing longer.</p>
      <p>In order to highlight the performance of the
considered synchronization mechanisms and the importance
of using a proper chunk size, we have performed other
simulations considering smaller les, with size equal
to 5 kB. By referring to Fig. 6 we observe how using
1
3
15</p>
      <p>20</p>
      <p>50 60
no. Simulations
10
20
30
70
80
a 2048 bytes chunk size results to be unsuitable,
with very low performance provided by S-Octodi .
Signi cant improvements are instead obtained when
considering A-Octodi . Actually, the chunk size equal
to 512 bytes is recognized to be too large as well,
in fact tra c percentage generated by S-Octodi is
quite high, around the 70%. In fact, the curves in Fig.
7 show how the optimal chunk size is essentially the
minimum one allowed by Octodi . So, when dealing
with very small size data it is convenient to reduce the
chunk size, as demonstrated by the results referring
to S-Octodi and A-Octodi implemented with an
initial chunk size equal to 128 bytes. Moreover, the
advantage given by an adaptive approach can be once
more appreciated by observing that the performance
of A-Octodi implemented with a 512 bytes initial
chunk size approaches the one provided using a
smaller chunk size. Interestingly, by referring Fig. 7,
the adaptive chunking seems not have e ects when
A-Octodi is implemented according to a 128 bytes
initial chunk size, since no changes are observed. At
rst glance, it would be inferred that the optimal
chunk size is exactly 128 bytes. However, taking into
account the constraint about the minimum chunk size
characterizing Octodi , the optimal chunk size could
be actually less than 128 bytes as well. So, in order
to investigate this issue, we simulated the behavior
of Octodi in Matlab removing the limit about the
allowed chunk size, and we found out that the optimal
value would be around 70 bytes, as demonstrated
by the dashed curves reported in Fig. 7. Finally,
Tab. 2 reports results referring to the time processing
ratio between adaptive and static mechanisms, and
it is possible to appreciate that the processing time
of A-Octodi is always less or at most equal to the
processing time characterizing A-Octodi . So, in this
context, we can conclude that when the dimension of
les is in the order of few kilobytes, the use of Octodi
tool may not be convenient for data synchronization
since the constraint about the minimum value of the
chunk size could not allow the achievement of best
performance in terms of tra c saving.</p>
      <p>The second scenario under investigation has
considered the le synchronization performed on input les
where the updates distribution was modeled according
to the following exponential probability density
function:
f (x; ) =
x3e x
0 &lt; x
1
with = 0:1 and the random variable x, representing
the index (position) of new bytes in the original le,
normalized to 1 (Fig. 8). By doing so, we refer to the
possibility of having updates occurring at the end of
the le more frequently than at the beginning, because
the more x is close to 1 the more the updates are
located in the nal part of the le. Figs. 9-10 reports the
results referring to the remote synchronization of 50
kB and 5 kB les, respectively. In general, we observe
the better results with respect to Figs. 4-6 since now
the updates are no more randomly distributed, but
concentrated at the end of the le. So it is reasonable
to nd a higher number of matching blocks,
resulting in a lower generated tra c amount. However, the
0
1
3
comparison between S-Octodi and A-Octodi
implemented with di erent chunk sizes highlights the same
trend, thus showing the e ectiveness of the proposed
adaptive approach even in this scenario. For the sake
of completeness, we also report in Figs. 11-12 the
performance of A-Octodi in terms of chunk size
adaptation for both le size cases. The chunk size
converges towards quite the same value reached in Figs.
5-7, approximately around 70 bytes. Tabs. 3-4 report
the results in terms of time processing ratio referring
to the 50 kB and 5 kB les synchronization analysis,
respectively. In that case we observe that the
processing time referring to A-Octodi is in general higher
than the processing time characterizing S-Octodi .
128
40</p>
      <p>50 60
no. Simulations
10
20
30
70
80</p>
      <p>However better performance are provided in terms of
generated tra c percentage, as shown in Figs. 9-11.</p>
      <p>Finally, we considered data synchronization
involving le of variable size. Speci cally, we run the
synchronization mechanism on 100 les with sizes
ranging from 40 kB to 80 kB. Each le is modi ed
with respect to its previous version according to an
update percentage randomly varying between 5% and
20%. The updates are represented by bytes addition,
removal and substitution. The generated tra c
percentage and the processing time ratio, averaged on
100 simulations, are reported in Tab. 5 as a function
of the synchronization mechanism employed, that is
static or adaptive, and of the chunk size. It is worth
highlighting that the values referring to A-Octodi
are quite uniform, thus meaning that the use of
the adaptive approach makes the performance less
sensitive to the choice of the initial chunk size. On
the other hand, when using a static mechanism, the
set up of xed, unsuitable chunk size may lead the
generated tra c percentage to be higher, as in the
case of S-Octodi 2048. The e ectiveness of A-Octodi
can be further appreciated by observing Fig. 13
reporting the chunk size adaptation along the 100
simulations. In fact, despite A-Octodi is initialized
with di erent values, the chunk size tends to adapt
toward the same optimal value around 200 bytes.
A-Octodi 128
S-Octodi 128
A-Octodi 512
S-Octodi 512
A-Octodi 2048
S-Octodi 2048</p>
      <p>Summarizing, the implementation of the adaptive
chunking in the Octodi framework has allowed the
realization of a remote synchronization mechanism
characterized by low sensitivity to the characteristics of the
les under processing. This aspect turns out to be
signi cant in the IoT context where heterogeneous data
are typically handled.
5</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>This paper proposed an analysis of remote data update
solutions to be used in IoT scenario. Speci cally, one
of the most known le synchronization tools, namely
Octodi , has been combined with a recently proposed
algorithm for adaptive chunking. The performance of
the resulting mechanism has been evaluated,
highlighting the provided tra c saving with respect to the
classic Octodi version working with a static approach.
The proposed solution aims at catching the bene ts of
an edge computing for IoT that helps to reduce the
network load on the one side and the IoT power
consumption on the other side.</p>
      <sec id="sec-6-1">
        <title>Acknowledgments</title>
        <p>This work was developed in partnership with
Aenduo s.r.l. and partially funded by the POR FESR
italian project \Life 2020 - Biomedical IoT" CUP
F87H18000390007.
[Git ]</p>
        <p>Github. Octopus Deploy - Octodi , https:
//github.com/OctopusDeploy/Octodi .
[MTPC19] E. G. Maria Verzegnassi, K. Tountas,
D. A. Pados, and F. Cuomo. Data
conformity evaluation: A novel approach for
iot security. In IEEE 5th World Forum on
Internet of Things (WF-IoT), pages 842{
846, April 2019.
[SCZ+16]
[SNT04]
[TM96]</p>
        <sec id="sec-6-1-1">
          <title>W. Shi, J. Cao, Q. Zhang, Y. Li, and</title>
          <p>L. Xu. Edge computing: Vision and
challenges. IEEE Internet of Things Journal,
3(5):637{646, Oct 2016.</p>
        </sec>
        <sec id="sec-6-1-2">
          <title>T. Suel, P. Noel, and D. Trenda lov. Improved le synchronization techniques for maintaining large replicated collections over slow networks. In Proceedings. 20th</title>
          <p>International Conference on Data
Engineering, pages 153{164, April 2004.</p>
        </sec>
        <sec id="sec-6-1-3">
          <title>Andrew Tridgell and Paul Mackerras. The rsync algorithm. 1996. Technical Report TR-CS-96-05.</title>
          <p>[YIS08]</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [AGM+15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Al-Fuqaha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Guizani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mohammadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Aledhari</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ayyash</surname>
          </string-name>
          .
          <article-title>Internet of things: A survey on enabling technologies, protocols, and applications</article-title>
          .
          <source>IEEE Communications Surveys Tutorials</source>
          ,
          <volume>17</volume>
          (
          <issue>4</issue>
          ):
          <volume>2347</volume>
          {
          <fpage>2376</fpage>
          ,
          <string-name>
            <surname>Fourthquarter</surname>
          </string-name>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [PCS+18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Petroni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Cuomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Schepis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Biagi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Listanti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Scarano</surname>
          </string-name>
          .
          <article-title>Adaptive data synchronization algorithm for iotoriented low-power wide-area networks</article-title>
          .
          <source>In Sensors</source>
          , volume
          <volume>18</volume>
          (
          <issue>11</issue>
          ),
          <year>Nov 2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [RGXZ17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Xu</surname>
          </string-name>
          , and
          <string-name>
            <surname>Y. Zhang.</surname>
          </string-name>
          <article-title>Serving at the edge: A scalable iot architecture based on transparent computing</article-title>
          .
          <source>IEEE Network</source>
          ,
          <volume>31</volume>
          (
          <issue>5</issue>
          ):
          <volume>96</volume>
          {
          <fpage>105</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [WZL+19]
          <string-name>
            <given-names>T.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Z. A.</given-names>
            <surname>Bhuiyan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Jia</surname>
          </string-name>
          .
          <article-title>Fogbased computing and storage o oading for data synchronization in iot</article-title>
          .
          <source>IEEE Internet of Things Journal</source>
          ,
          <volume>6</volume>
          (
          <issue>3</issue>
          ):
          <volume>4272</volume>
          {
          <fpage>4282</fpage>
          ,
          <year>June 2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>H.</given-names>
            <surname>Yan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Irmak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Suel</surname>
          </string-name>
          .
          <article-title>Algorithms for low-latency remote le synchronization</article-title>
          .
          <source>In IEEE INFOCOM 2008 - The 27th Conference on Computer Communications</source>
          , pages
          <volume>156</volume>
          {
          <fpage>160</fpage>
          ,
          <string-name>
            <surname>April</surname>
          </string-name>
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Zhijie</given-names>
            <surname>Lin</surname>
          </string-name>
          and
          <string-name>
            <given-names>Lei</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Data synchronization algorithm for iot gateway and platform</article-title>
          .
          <source>In 2016 2nd IEEE International Conference on Computer and Communications (ICCC)</source>
          , pages
          <fpage>114</fpage>
          {
          <fpage>119</fpage>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>