Wringing Performance out of Perl
Wringing Performance out of Perl
Grant Street GroupBegan as a financial advisor group
Grant Street GroupDiscovered the Internet in 1997
Grant Street GroupOnline Auctions of Property Tax LiensWeb-Based billing system for tax collectorsConversion of legacy tax-collector databasesOnline license / vehicle tag renewalsOnline payment processingAuctions of all types of bondsAnd lots, lots more!
Tax Lien Auctions
Tax Lien AuctionsAbsolute feeding frenzyOur bidders threatened to exhaust TIN numbers20 million bidders in 2011More than 30 billion bids altogetherAverage was a 500,000-way tieAbout 2,000 auctions closing simultaneously
Tax Lien AuctionsHow do we award auctions performantly?Random tie-breaking with Crypt::RandomRandom row-ID plus MySQL = S L O WTurns out we can do it much faster in Perl
Tax Lien AuctionsNet result: auction closing takes 20 secondsBreaking 2,000 ties, each 500,000-wayStress-testing indicates can scale by 4xThe IRS definitely cannot scale by 4x
Property Tax Online Payments
Property Tax Online PaymentsFlorida residents can pay the property taxHosted, customized sites per countyLargest counties have ~1,000,000 parcelsUsers are typical Florida residents
Property Tax Online Payments
Property Tax Online Payments
Property Tax Online Payments
Property Tax Online Payments
Wringing Performance out of Perl
Property Tax Online PaymentsBackend is MySQL and SphinxLightning-fast searches with PerlMapping IDs to table, column, PKParsing SHOW STATUS LIKE ‘sphinx%’Lots of useful metadata!
Property Tax Online PaymentsNet results:Sub-second turnaround times9 minute average time on site by payers4 minute average time on site overall
Customer Data Conversion
Customer Data ConversionLargest county in FL is a customerPopulation ~2.4M peopleTax roll of ~900K parcelsHistory of ~5.6M bills across 6 yearsFull database is large (by our standards)Data files are ~30-50GBFull conversion is ~160 hours, using PerlMight be ~8 hours using pure SQL
Customer Data ConversionProblem is we can’t use pure SQLRidiculous amounts of business logicUtterly different data modelsWe’re a Perl shop; Perl is our hammer
Customer Data ConversionHugely parallel data conversionSubdivide conversion into smaller stepsBuild hash of dependencies between stepsConstruct DAG of work units in MongoDBDistribute the actual workRun lots of Perl worker processesWorkers grab ready work unitsPerform the work unit sequentially
Customer Data ConversionThe end resultTotal conversion time ~3 hours with 80 workersNightly reloads now very practicalAble to resume incomplete loads
We’re Hiring Telecommuters

More Related Content

PPTX
Danielle\'s Visual Resume
PPTX
Mirsis Corporate Overview
PPTX
N card student_orientation_2011
PDF
Indian polity 11
PPTX
2013年度下期パートナー会 開発本部
PPTX
The Android Gunslinger
PDF
Guide Marketing For Facebook
PPTX
Mirsis Autocontrol İç Kontrol Yönetimi
Danielle\'s Visual Resume
Mirsis Corporate Overview
N card student_orientation_2011
Indian polity 11
2013年度下期パートナー会 開発本部
The Android Gunslinger
Guide Marketing For Facebook
Mirsis Autocontrol İç Kontrol Yönetimi

Viewers also liked (20)

PPT
PPTX
Diapositivas vacaciones 11 (1)
KEY
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
PPTX
Danielle\'s Visual Resume
PDF
PPS
PPTX
Visual Resume
PPS
álbum de fotografías -25 años-
PDF
Open im vol16_lt_hosi_factory
PDF
Brief alcohol in teen project university workshop v2 26-02-55
PDF
Subsalt Steep Dip Imaging Study with 3D Acoustic Modeling
PPTX
исследование рынка аутсорсинговых контактных центров украины
PDF
Air superiority for Android Apps
PDF
Photoessay
PPTX
BOM Team Prosperity
PDF
Matthew Brown's Visual resume
PPT
Hot skills исследование страховых компаний_2011
PDF
音声でPhilips Hueを操作してみる
PPSX
PDF
Yourprezi
Diapositivas vacaciones 11 (1)
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
Danielle\'s Visual Resume
Visual Resume
álbum de fotografías -25 años-
Open im vol16_lt_hosi_factory
Brief alcohol in teen project university workshop v2 26-02-55
Subsalt Steep Dip Imaging Study with 3D Acoustic Modeling
исследование рынка аутсорсинговых контактных центров украины
Air superiority for Android Apps
Photoessay
BOM Team Prosperity
Matthew Brown's Visual resume
Hot skills исследование страховых компаний_2011
音声でPhilips Hueを操作してみる
Yourprezi
Ad

Similar to Wringing Performance out of Perl (20)

PPTX
Registry Solutions Case Study - .CO Internet SAS
PDF
Investor presentation novelty lab November 2013
PDF
Argentina Electronic Invoicing and Tax Reporting Requirements
PPTX
Blockchain technology bitcoin & beyond
PPTX
Slow is the New Down - Global Ecommerce
PPT
Billions of Rows, Millions of Insights, Right Now
PDF
Paybis - Crypto as payment method
PPTX
E commerce ppt new by ajit verma
PPT
Document Automation
PDF
Connecting Kafka to Cash (CKC) (Lyndon Hedderly, Confluent) Kafka Summit Lond...
PDF
Single Global Currency
PPTX
S=s kick off shortsea xml - internet
PDF
the coming hyperscaling platform in property management
PDF
Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...
PPTX
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PDF
Implementation of Hybris Billing at PostNL
PPT
E-Business in Rural Communities
PPTX
Ecommerce Load Test
PDF
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
PDF
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Registry Solutions Case Study - .CO Internet SAS
Investor presentation novelty lab November 2013
Argentina Electronic Invoicing and Tax Reporting Requirements
Blockchain technology bitcoin & beyond
Slow is the New Down - Global Ecommerce
Billions of Rows, Millions of Insights, Right Now
Paybis - Crypto as payment method
E commerce ppt new by ajit verma
Document Automation
Connecting Kafka to Cash (CKC) (Lyndon Hedderly, Confluent) Kafka Summit Lond...
Single Global Currency
S=s kick off shortsea xml - internet
the coming hyperscaling platform in property management
Prassnitha Sampath - Real Time Big Data Analytics with Kafka, Storm & HBase -...
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
Implementation of Hybris Billing at PostNL
E-Business in Rural Communities
Ecommerce Load Test
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
Assisting millions of active users in real-time - Alexey Brodovshuk, Kcell; K...
Ad

Recently uploaded (20)

PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PPTX
Modernising the Digital Integration Hub
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Architecture types and enterprise applications.pdf
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPT
What is a Computer? Input Devices /output devices
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
CloudStack 4.21: First Look Webinar slides
PPTX
The various Industrial Revolutions .pptx
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PPTX
Chapter 5: Probability Theory and Statistics
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Abstractive summarization using multilingual text-to-text transfer transforme...
Flame analysis and combustion estimation using large language and vision assi...
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
Modernising the Digital Integration Hub
1 - Historical Antecedents, Social Consideration.pdf
Architecture types and enterprise applications.pdf
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
The influence of sentiment analysis in enhancing early warning system model f...
Zenith AI: Advanced Artificial Intelligence
NewMind AI Weekly Chronicles – August ’25 Week III
Final SEM Unit 1 for mit wpu at pune .pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
What is a Computer? Input Devices /output devices
A proposed approach for plagiarism detection in Myanmar Unicode text
CloudStack 4.21: First Look Webinar slides
The various Industrial Revolutions .pptx
UiPath Agentic Automation session 1: RPA to Agents
Credit Without Borders: AI and Financial Inclusion in Bangladesh
Chapter 5: Probability Theory and Statistics
From MVP to Full-Scale Product A Startup’s Software Journey.pdf

Wringing Performance out of Perl

  • 3. Grant Street GroupBegan as a financial advisor group
  • 4. Grant Street GroupDiscovered the Internet in 1997
  • 5. Grant Street GroupOnline Auctions of Property Tax LiensWeb-Based billing system for tax collectorsConversion of legacy tax-collector databasesOnline license / vehicle tag renewalsOnline payment processingAuctions of all types of bondsAnd lots, lots more!
  • 7. Tax Lien AuctionsAbsolute feeding frenzyOur bidders threatened to exhaust TIN numbers20 million bidders in 2011More than 30 billion bids altogetherAverage was a 500,000-way tieAbout 2,000 auctions closing simultaneously
  • 8. Tax Lien AuctionsHow do we award auctions performantly?Random tie-breaking with Crypt::RandomRandom row-ID plus MySQL = S L O WTurns out we can do it much faster in Perl
  • 9. Tax Lien AuctionsNet result: auction closing takes 20 secondsBreaking 2,000 ties, each 500,000-wayStress-testing indicates can scale by 4xThe IRS definitely cannot scale by 4x
  • 11. Property Tax Online PaymentsFlorida residents can pay the property taxHosted, customized sites per countyLargest counties have ~1,000,000 parcelsUsers are typical Florida residents
  • 17. Property Tax Online PaymentsBackend is MySQL and SphinxLightning-fast searches with PerlMapping IDs to table, column, PKParsing SHOW STATUS LIKE ‘sphinx%’Lots of useful metadata!
  • 18. Property Tax Online PaymentsNet results:Sub-second turnaround times9 minute average time on site by payers4 minute average time on site overall
  • 20. Customer Data ConversionLargest county in FL is a customerPopulation ~2.4M peopleTax roll of ~900K parcelsHistory of ~5.6M bills across 6 yearsFull database is large (by our standards)Data files are ~30-50GBFull conversion is ~160 hours, using PerlMight be ~8 hours using pure SQL
  • 21. Customer Data ConversionProblem is we can’t use pure SQLRidiculous amounts of business logicUtterly different data modelsWe’re a Perl shop; Perl is our hammer
  • 22. Customer Data ConversionHugely parallel data conversionSubdivide conversion into smaller stepsBuild hash of dependencies between stepsConstruct DAG of work units in MongoDBDistribute the actual workRun lots of Perl worker processesWorkers grab ready work unitsPerform the work unit sequentially
  • 23. Customer Data ConversionThe end resultTotal conversion time ~3 hours with 80 workersNightly reloads now very practicalAble to resume incomplete loads