Most Powerful Open Source ERP

Scalability Minimal Theory

A document to explain the basic concepts of scalability to people who have no idea of hardware and its relation to software.
  • Last Update:2012-07-26
  • Version:001
  • Language:en

Scalability Minimal Theory

You will learn:

  • The Speed of Light
  • The Speed of Light
  • The Latency of Network
  • The Speed of Disk
  • Solutions to slowness

10 Users, 10 ZEO Clients

Why are Software Slow ?

  • How long does it take at least ?

The Frequency of CPU: 2Ghz

The Speed of Light: 300,000 km/s

The Frequency of RAM: 200 Mhz

Why are Software Slow ?

  • 1e12 * 6.82 e-9 = 6820 s = about 2 hours
  • 16e9 * 6.82 e-9 = 109 s = 2 min

The Speed of Light: 300,000 km/s

Why are Software Slow ?

  • 1e12 * 23.16 = 23160 s = 6.4 hours
  • 16e9 * 23.16 = 370 s = 6 minutes

The Latency of Network: 1 µs to 1ms

Why are Software Slow ?

  • 1e12 * 3316.5 = 38 days
  • 16e9 * 3316.5 = 14 hours

The Speed of Disks: 10,000 rpm

Why are Software Slow ?

  • 1e12 * 3000023.16 = 95 years
  • 16e9 * 3000023.16 = 1.5 year

The Latency of SSD: 200 µs or better

Why are Software Slow ?

  • 1e12 * 200023.16 = 6 years
  • 16e9 * 200023.16 = 37 days

Access Conflict (Serialized)

Why are Software Slow ?

  • 1e12 * 66011.5 = 2 years
  • 16e9 * 66011.5 = 12 days

Solving Access Conflict by Sharding

Why are Software Slow ?

  • 1e12 * 13211.5 = 152 days
  • 16e9 * 13211.5 = 2.42 days

Solving Access Conflict by Caching

Why are Software Slow ?

  • 1e12 * 6.82 e-9 = 6820 s = about 2 hours
  • 16e9 * 6.82 e-9 = 109 s = 2 min

Solving Access by Beautiful Code

  • 1e12 * 6.32 e-9 = 6320 s = about 2 hours
  • 16e9 * 6.32e-9 = 101 s = 2 min

Solving Access by Better Algorithm

  • 1e6 * 99010.5 = 1.65 minute

Better Algorithm for 90% cases

(1.65 minutes * 90 + 2 years * 10) / 100 = 2.4 months

Be Radical

  • 0 s

What About ERP5 (1)

  • Postpone
    1. Ajax Menus
    2. Ajax Display
    3. Activities
  • Acces Conflict
    1. ID Generation
    2. Acces to Same Btree (HBTree)

What About ERP5 (2)

  • Caching
    1. portal_caches
    2. HTTP cache
  • Sharding
    1. developer-Scalability.Minimal.Theory.html5.why.software.slow.
    2. Multiple Data.fs
    3. NEO

What About ERP5 (3)

  • Algorithm
    1. SQL Optimization
    2. Catalog vs. ZODB