SlideShare a Scribd company logo
1 of 14
Download to read offline
Geo2Tag performance evaluation
               
                          Mark Zaslavskiy, Kirill Krinkin
                          FRUCT LETI Lab,
                          Open Source & Linux Lab



        FRUCT­12, Oulu, November, 2012
Motivation

●   Geo2Tag Location­Based Services platform 
    was started as project for students who want 
    to get an Open Source development 
    experience
●   With increasing number of functions which 
    are supported by platform performance 
    requirements also increased
●   Platform performance  evaluation was never 
    performed 
                                                    2
Goals

●   Investigate the most frequent REST requests to 
    platform performed by users;
●   Measure performance (processing time) of the 
    most frequent requests;
●   Determine bottlenecks in request processing;
●   Maximize performance of request processing 
    and DB synchronization;


                                                   3
Platform architecture
              Internet
                     HTTP/JSON
                                            Platform
     Platform Interface    Lighttpd

                FastCGI                 PostgreSQL
      Control program
                                 qSQL
                                            DB




 Request                            Interaction
processing                       with the database
                                                       4
Client­server interaction modeling

●   The most frequent REST requests were found 
    using modeling of LocationClient app 
    behavior
●   Modeling was performed using Markov 
    chains theory
●   Request executions were used as non­
    absorbing states of  Markov chain
●   Client application shutting down  was used as 
    absorbing state of Markov chain              5
Client­server interaction modeling

●   During numerical experiments average 
    number of each request executions before 
    absorbtion were calculated
●   Modeling was performed for different initial 
    states and tagging frequency
●    As a result of modeling WriteTag and 
    LoadTags requests had the biggest average 
    number of executions for all conditions 

                                                    6
Control program profiling

●   For determining bottlenecks during 
    request processing profiling performed
●   For each write request  whole processing 
    time and DB interaction time were 
    measured 
●   In average DB interaction takes ~95% of 
    request processing time
●   DB interaction is bottleneck!              7
Control program profiling




                            8
Platform optimizations
●   DB synchronization optimizations:
     – Thread synchronization refactoring (less 
        locks – more performance)
     – Algorithm for making decisions about 
        need of DB synchronization 
●   DB structure optimization 
     – Number of tables for tags storage were 
        decreased to one – WriteTag processing 
        speed increased
                                              9
DB synchronization 
●   Algorithm which determines does system need DB 
    synchronization or not
      –   Periodical check with user­defined period 
            (UPDATE_INTERVAL)
      –   Comparison between actual number of transactions to DB 
            and transactions number counted by platform
      –   If difference is more than  TRANSACTION_DIFF value 
            than synchronization is performed, else nothing happens
      –   Variation of UPDATE_INTERVAL and 
            TRANSACTION_DIFF allows to achieve different ratios 
            “performance/data consistency”

                                                               10
Request performance measurement
●   Performance were measured for WriteTag and 
    LoadTag requests in system before and after 
    optimization
●   Processing time and errors data were collected
●   For LoadTag set of experiments were performed with 
    different number of tags in DB – from 0 to 54000 with 
    step of 1000 tags. For each tag value 10000 LoadTags 
    requests where performed 
●   For WriteTag performance measurement was 
    performed as sequentially increase of tags number in 
    system from 0 to 12000 by sending WriteTag request 11
Results comparison
●   Maximum, minimum, average, variance of request 
    processing time and number of errors where 
    compared for both systems  
●   LoadTags
      – Maximum processing time decreased
●   WriteTag
      – Average time decreased by 47.5%
      – Maximum time decreased tenfold
      – Variance of time decreased hundredfold



                                                12
Conclusions
●   During performance evaluation where achieved 
    next results:
      – Math model of client application was created
      – Bottleneck of request processing was found
      – Performance of request processing was 
         optimized
●   Future plans:
      – Support NoSQL or GIS­oriented DB
      – Support lock­free algorithms and data 
         structures

                                                   13
Questions & Answers


Mark Zaslavskiy, Kirill Krinkin
{mark.zaslavskiy, kirill.krinkin}@gmail.com
Open Source & Linux Lab, 
http://osll.furct.org, osll@fruct.org

More Related Content

What's hot

Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
Minsk MongoDB User Group
 

What's hot (20)

Monolithic to microservices
Monolithic to microservicesMonolithic to microservices
Monolithic to microservices
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
 
What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31What we learnt at carousell tw for golang gathering #31
What we learnt at carousell tw for golang gathering #31
 
An Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media PlatformAn Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media Platform
 
hbaseconasia2019 Test-suite for Automating Data-consistency checks on HBase
hbaseconasia2019 Test-suite for Automating Data-consistency checks on HBasehbaseconasia2019 Test-suite for Automating Data-consistency checks on HBase
hbaseconasia2019 Test-suite for Automating Data-consistency checks on HBase
 
PRMA - Introduction
PRMA - IntroductionPRMA - Introduction
PRMA - Introduction
 
OSDC 2015: Tudor Golubenco | Application Performance Management with Packetbe...
OSDC 2015: Tudor Golubenco | Application Performance Management with Packetbe...OSDC 2015: Tudor Golubenco | Application Performance Management with Packetbe...
OSDC 2015: Tudor Golubenco | Application Performance Management with Packetbe...
 
gRPC - RPC rebirth?
gRPC - RPC rebirth?gRPC - RPC rebirth?
gRPC - RPC rebirth?
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
 
202104 technical challenging and our solutions - golang taipei
202104   technical challenging and our solutions - golang taipei202104   technical challenging and our solutions - golang taipei
202104 technical challenging and our solutions - golang taipei
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
 
REST vs gRPC: Battle of API's
REST vs gRPC: Battle of API'sREST vs gRPC: Battle of API's
REST vs gRPC: Battle of API's
 
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
MQTT and Apache Kafka: The Solution to Poor Internet Connectivity in Africa (...
 
Grokking Techtalk #37: Data intensive problem
 Grokking Techtalk #37: Data intensive problem Grokking Techtalk #37: Data intensive problem
Grokking Techtalk #37: Data intensive problem
 
Introducing Confluent labs Parallel Consumer client | Anthony Stubbes, Confluent
Introducing Confluent labs Parallel Consumer client | Anthony Stubbes, ConfluentIntroducing Confluent labs Parallel Consumer client | Anthony Stubbes, Confluent
Introducing Confluent labs Parallel Consumer client | Anthony Stubbes, Confluent
 
Grokking TechTalk 9 - Building a realtime & offline editing service from scra...
Grokking TechTalk 9 - Building a realtime & offline editing service from scra...Grokking TechTalk 9 - Building a realtime & offline editing service from scra...
Grokking TechTalk 9 - Building a realtime & offline editing service from scra...
 
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
FBScanner: IBSurgeon's tool to solve all types of performance problems with F...
 
Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
 
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, ConfluentKafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
Kafka’s New Control Plane: The Quorum Controller | Colin McCabe, Confluent
 
Monitoring Apache Kafka
Monitoring Apache KafkaMonitoring Apache Kafka
Monitoring Apache Kafka
 

Viewers also liked

Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
OSLL
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
OSLL
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
OSLL
 
Porting smart m3 to the MeeGo
Porting smart m3 to the MeeGoPorting smart m3 to the MeeGo
Porting smart m3 to the MeeGo
OSLL
 
Access to CAS Riak with Erlang
Access to CAS Riak with ErlangAccess to CAS Riak with Erlang
Access to CAS Riak with Erlang
OSLL
 

Viewers also liked (20)

Exer._Mask_Variations
Exer._Mask_VariationsExer._Mask_Variations
Exer._Mask_Variations
 
Na opening photos acrobat
Na opening photos acrobatNa opening photos acrobat
Na opening photos acrobat
 
Na acrobat pdf
Na acrobat pdfNa acrobat pdf
Na acrobat pdf
 
NA_EXER_LAYER_MASK_COMP
NA_EXER_LAYER_MASK_COMPNA_EXER_LAYER_MASK_COMP
NA_EXER_LAYER_MASK_COMP
 
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
Doctor search service with Geo2tag, Bezyazychnyy, Krinkin
 
O período regencial
O período regencialO período regencial
O período regencial
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
 
O imperialismo definições
O imperialismo   definiçõesO imperialismo   definições
O imperialismo definições
 
Middle Ages primary level presentation
Middle Ages primary level presentationMiddle Ages primary level presentation
Middle Ages primary level presentation
 
Na pp
Na ppNa pp
Na pp
 
Porting smart m3 to the MeeGo
Porting smart m3 to the MeeGoPorting smart m3 to the MeeGo
Porting smart m3 to the MeeGo
 
A 1ª guerra mundial
A 1ª guerra mundialA 1ª guerra mundial
A 1ª guerra mundial
 
Advices
AdvicesAdvices
Advices
 
Size and resolution1
Size and resolution1Size and resolution1
Size and resolution1
 
Reinos africanos
Reinos africanosReinos africanos
Reinos africanos
 
A crise de 1929 prof nélia-2016
A crise de 1929 prof nélia-2016A crise de 1929 prof nélia-2016
A crise de 1929 prof nélia-2016
 
Governo rodrigues alves
Governo rodrigues alvesGoverno rodrigues alves
Governo rodrigues alves
 
Access to CAS Riak with Erlang
Access to CAS Riak with ErlangAccess to CAS Riak with Erlang
Access to CAS Riak with Erlang
 
Fruct13 geo2tag-training
Fruct13 geo2tag-trainingFruct13 geo2tag-training
Fruct13 geo2tag-training
 

Similar to Geo2tag performance evaluation, Zaslavsky, Krinkin

[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
Anna Ossowski
 
performancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdfperformancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdf
MAshok10
 

Similar to Geo2tag performance evaluation, Zaslavsky, Krinkin (20)

How Kafka and Modern Databases Benefit Apps and Analytics
How Kafka and Modern Databases Benefit Apps and AnalyticsHow Kafka and Modern Databases Benefit Apps and Analytics
How Kafka and Modern Databases Benefit Apps and Analytics
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
 
The new (is it really ) api stack
The new (is it really ) api stackThe new (is it really ) api stack
The new (is it really ) api stack
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
[Virtual Meetup] Using Elasticsearch as a Time-Series Database in the Endpoin...
 
Performance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei RadovPerformance testing in scope of migration to cloud by Serghei Radov
Performance testing in scope of migration to cloud by Serghei Radov
 
Journey and evolution of Presto@Grab
Journey and evolution of Presto@GrabJourney and evolution of Presto@Grab
Journey and evolution of Presto@Grab
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles Judith
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the Wire
 
Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2Webinar: What's New in MongoDB 3.2
Webinar: What's New in MongoDB 3.2
 
Server side scalable web performance
Server side scalable web performanceServer side scalable web performance
Server side scalable web performance
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
 
adap-stability-202310.pptx
adap-stability-202310.pptxadap-stability-202310.pptx
adap-stability-202310.pptx
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...
 
3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of Agile3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of Agile
 
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
 
Performance testing
Performance testingPerformance testing
Performance testing
 
performancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdfperformancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdf
 

More from OSLL

More from OSLL (20)

SLAM Constructor Framework for ROS
SLAM Constructor Framework for ROSSLAM Constructor Framework for ROS
SLAM Constructor Framework for ROS
 
Студентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работеСтудентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работе
 
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
 
MOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern EducationMOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern Education
 
Работа с геоданными в MongoDb
Работа с геоданными в MongoDbРабота с геоданными в MongoDb
Работа с геоданными в MongoDb
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool
 
Block-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contraBlock-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contra
 
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Raspberry Pi robot with ROS
Raspberry Pi robot with ROSRaspberry Pi robot with ROS
Raspberry Pi robot with ROS
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux ContainersVirtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Geo2tag performance evaluation, Zaslavsky, Krinkin

  • 1. Geo2Tag performance evaluation   Mark Zaslavskiy, Kirill Krinkin FRUCT LETI Lab, Open Source & Linux Lab FRUCT­12, Oulu, November, 2012
  • 2. Motivation ● Geo2Tag Location­Based Services platform  was started as project for students who want  to get an Open Source development  experience ● With increasing number of functions which  are supported by platform performance  requirements also increased ● Platform performance  evaluation was never  performed  2
  • 3. Goals ● Investigate the most frequent REST requests to  platform performed by users; ● Measure performance (processing time) of the  most frequent requests; ● Determine bottlenecks in request processing; ● Maximize performance of request processing  and DB synchronization; 3
  • 4. Platform architecture Internet HTTP/JSON Platform Platform Interface Lighttpd FastCGI PostgreSQL Control program qSQL DB Request Interaction processing with the database 4
  • 5. Client­server interaction modeling ● The most frequent REST requests were found  using modeling of LocationClient app  behavior ● Modeling was performed using Markov  chains theory ● Request executions were used as non­ absorbing states of  Markov chain ● Client application shutting down  was used as  absorbing state of Markov chain  5
  • 6. Client­server interaction modeling ● During numerical experiments average  number of each request executions before  absorbtion were calculated ● Modeling was performed for different initial  states and tagging frequency ●  As a result of modeling WriteTag and  LoadTags requests had the biggest average  number of executions for all conditions  6
  • 7. Control program profiling ● For determining bottlenecks during  request processing profiling performed ● For each write request  whole processing  time and DB interaction time were  measured  ● In average DB interaction takes ~95% of  request processing time ● DB interaction is bottleneck! 7
  • 9. Platform optimizations ● DB synchronization optimizations: – Thread synchronization refactoring (less  locks – more performance) – Algorithm for making decisions about  need of DB synchronization  ● DB structure optimization  – Number of tables for tags storage were  decreased to one – WriteTag processing  speed increased 9
  • 10. DB synchronization  ● Algorithm which determines does system need DB  synchronization or not – Periodical check with user­defined period  (UPDATE_INTERVAL) – Comparison between actual number of transactions to DB  and transactions number counted by platform – If difference is more than  TRANSACTION_DIFF value  than synchronization is performed, else nothing happens – Variation of UPDATE_INTERVAL and  TRANSACTION_DIFF allows to achieve different ratios  “performance/data consistency” 10
  • 11. Request performance measurement ● Performance were measured for WriteTag and  LoadTag requests in system before and after  optimization ● Processing time and errors data were collected ● For LoadTag set of experiments were performed with  different number of tags in DB – from 0 to 54000 with  step of 1000 tags. For each tag value 10000 LoadTags  requests where performed  ● For WriteTag performance measurement was  performed as sequentially increase of tags number in  system from 0 to 12000 by sending WriteTag request 11
  • 12. Results comparison ● Maximum, minimum, average, variance of request  processing time and number of errors where  compared for both systems   ● LoadTags – Maximum processing time decreased ● WriteTag – Average time decreased by 47.5% – Maximum time decreased tenfold – Variance of time decreased hundredfold 12
  • 13. Conclusions ● During performance evaluation where achieved  next results: – Math model of client application was created – Bottleneck of request processing was found – Performance of request processing was  optimized ● Future plans: – Support NoSQL or GIS­oriented DB – Support lock­free algorithms and data  structures 13