MGMLaboratory
Back

Menu

01Home
02About Us
03Projects
04Publications
05Member
06Articles
07Contact

Let's Talk

Open in Mail app

Socials

Malang (ID) --:--Privacy PolicyTerms of Service

November 24, 20232 min read

Splitting Dijkstra Between the Phone and the ServerSplitting Dijkstra Between the Phone and the Server

Dynamic load distribution turns where a route is computed into a runtime decision, and that changes what you have to protect.

  • Conference
  • Publications

Written by

  • SRShirasaka RenIT & Infrastructure · Student Member

In this article

  1. 01Two signals drive the decision
  2. 02The trade you are making
  3. 03Design for a waiting time, not a benchmark

Every navigation feature hides a decision: where does the computation run? Put all of it on the phone and weak devices suffer. Put all of it on the server and the network becomes the bottleneck, along with the bill.

The client-server approach in this study treats that decision as something to make continuously, rather than once at build time.

01/03

Two signals drive the decision

The first signal is calculation complexity. A short route across a small graph is cheap. A long one across a dense network is not, and the cost shifts as the graph changes.

The second signal is device capability. Because memory capacity turned out to be the strongest influence on Dijkstra's calculation time, the client's hardware profile is worth measuring rather than assuming.

Cabling at the rear of a data center rack. Image: Derrick Coetzee, CC0, via Wikimedia Commons.
Fig. 01Cabling at the rear of a data center rack. Image: Derrick Coetzee, CC0, via Wikimedia Commons.

02/03

The trade you are making

Moving work to the server buys consistent performance on cheap hardware. It also buys a dependency. The route search now needs a working connection, and the server takes on load from every client that cannot cope on its own.

The paper is careful about that second half. Adjusting the Dijkstra calculations in real time is what keeps the arrangement from collapsing when demand spikes. Prevent the server from overloading, and the experience stays steady for everyone.

03/03

Design for a waiting time, not a benchmark

The stated goal is a waiting time that never exceeds one second. Working backwards from that is more useful than optimizing an average. If the target is a wait no user notices, the interesting question is not which device is fastest. It is which devices miss the target, and what the system does about them.

A Transjakarta bus on corridor 2. Image: Sulthan Naufal, CC BY 4.0, via Wikimedia Commons.
Fig. 02A Transjakarta bus on corridor 2. Image: Sulthan Naufal, CC BY 4.0, via Wikimedia Commons.

That framing travels well. Any feature that pairs a phone with a backend has a class of devices that will be too slow for it, and a decision to make about whether to help them or leave them behind.

Source

  1. Justico et al. (2023). Dynamic Load Distribution of Shortest-Path Finding in Client-Server Public Transit System. 2023 International Conference on Modeling and E-Information Research, Artificial Learning and Digital Applications (ICMERALDA).

    DOI10.1109/ICMERALDA60125.2023.10458151 (opens in a new tab)

Next articleWhat Two Routing Algorithms Teach Us About Transit Apps(Keep scrolling)(Read it next)(Loading)