Identity/AttachedServices/DeploymentPlanning/UserModel: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with " == Overview == Herein we will construct a high-level aggregate model of how users will interact with the PICL backend services. It's an attempt to inform capacity and loadt...")
 
No edit summary
Line 3: Line 3:


Herein we will construct a high-level aggregate model of how users will interact with the PICL backend services.  It's an attempt to inform capacity and loadtest planning based on some real data from existing services, some educated guesswork, and some hand-waving.
Herein we will construct a high-level aggregate model of how users will interact with the PICL backend services.  It's an attempt to inform capacity and loadtest planning based on some real data from existing services, some educated guesswork, and some hand-waving.
== The Numbers ==


Assumptions:
Assumptions:
Line 10: Line 8:
* roughly similar per-user behaviour as current sync (e.g. data volume, change rates).
* roughly similar per-user behaviour as current sync (e.g. data volume, change rates).
* roughly similar per-user keysigning/authentication overheads as current persona.
* roughly similar per-user keysigning/authentication overheads as current persona.
* err on the side of cautionl; overestimate in the face of ambiguity.
* err on the side of caution; overestimate in the face of ambiguity.


Raw data and some preliminary analysis can be found in https://id.etherpad.mozilla.org/picl-user-model
Raw data and some preliminary analysis can be found in https://id.etherpad.mozilla.org/picl-user-model


=== Accounts and Devices ===
== Users and Devices ==


Due to the enormously more effective Setup/Signin UI, we should be ready to support the following at launch time:
Due to the enormously more effective Setup/Signin UI, we should be ready to support the following very soon after launch time:


* 20 million total user accounts.
* 20 million total user accounts.
Line 36: Line 34:




=== Account Operations ===
== Account Operations ==


==== Create Account ===
=== Create Account ===


During the changeover, we expect an influx of account setup activity as users migrate over.
During the changeover, we expect an influx of account setup activity as users migrate over.


* Let's say two weeks to get to 20 million user accounts.
* Let's say two weeks to get to 20 million user accounts.
** 17 create-account operations per second
** '''17 create-account operations per second'''
 
This should drop somewhat after initial release, so let's plan on that as peak capacity for now.
 
=== Register Device ===
 
There are 1.12 devices-per-user, which will all have to be registered when the users account is registered.  To allow for resets, upgrades, etc, that's also posit that each device needs to re-register itself once every two weeks:
 
* 19 register-device operations per second due to initial signup
* (20mil * 1.12) register-device operations every two weeks due to re-registration
** '''37 register-device operations per second'''
 
=== Sign Certificate ===
 
Certificates last for 1 hour.  Lets say each device is online and syncing for 12 hours each day, making 12 sign-certificate requests per device per day.


After the changeover, we expect account creation as a certain percentage of new firefox installs.
* (15mil * 1.12 * 12) sign-certificate requests per day
* Let's say 10% of total new firefox installs.
** '''2333 sign-certificate operations per second'''
** ?TODO? create-account operations per second


==== Register Device ====
=== Change Password ===


==== Sign Certificate ====
Rare.  Do we need to factor this in at this stage?


==== Change Password ====
=== Detach Device ===


==== Detach Device ====
Rare.  Do we need to factor this in at this stage?


==== Delete Account ====
=== Delete Account ===


=== Scrypt Helper ===
Rare.  Do we need to factor this in at this stage?


The scrypt helper is used by mobile devices during login and account creation.  Based on the the figures above, that means:
== Scrypt Helper ==


The scrypt helper is used by mobile devices during authentication aka "device registration".  At 37 register-device operations per second and 15% mobile devices, we have:


* '''5.5 scrypt-helper requests per second'''


=== History Data ===
=== History Data ===

Revision as of 04:37, 13 August 2013

Overview

Herein we will construct a high-level aggregate model of how users will interact with the PICL backend services. It's an attempt to inform capacity and loadtest planning based on some real data from existing services, some educated guesswork, and some hand-waving.

Assumptions:

  • ten times as many users on the new system as there are on current sync.
  • roughly similar per-user behaviour as current sync (e.g. data volume, change rates).
  • roughly similar per-user keysigning/authentication overheads as current persona.
  • err on the side of caution; overestimate in the face of ambiguity.

Raw data and some preliminary analysis can be found in https://id.etherpad.mozilla.org/picl-user-model

Users and Devices

Due to the enormously more effective Setup/Signin UI, we should be ready to support the following very soon after launch time:

  • 20 million total user accounts.
  • 15 million active users hitting the service in a 24-hour period.

This is only a small fraction of the firefox userbase, but it's a lot more than current sync.

The number of devices per user is a power-law-distribution in current sync, and we anticipate the same for PICL. Erring on the side of caution:

  • 90% of users have 1 device
  • 8% of users have 2 devices
  • 2% of users have 3 devices
  • negligible number of users with > 4 devices

The split between desktop and mobile device will mirror that seen in current sync:

  • 85% of devices are desktop
  • 15% of devices are mobile


Account Operations

Create Account

During the changeover, we expect an influx of account setup activity as users migrate over.

  • Let's say two weeks to get to 20 million user accounts.
    • 17 create-account operations per second

This should drop somewhat after initial release, so let's plan on that as peak capacity for now.

Register Device

There are 1.12 devices-per-user, which will all have to be registered when the users account is registered. To allow for resets, upgrades, etc, that's also posit that each device needs to re-register itself once every two weeks:

  • 19 register-device operations per second due to initial signup
  • (20mil * 1.12) register-device operations every two weeks due to re-registration
    • 37 register-device operations per second

Sign Certificate

Certificates last for 1 hour. Lets say each device is online and syncing for 12 hours each day, making 12 sign-certificate requests per device per day.

  • (15mil * 1.12 * 12) sign-certificate requests per day
    • 2333 sign-certificate operations per second

Change Password

Rare. Do we need to factor this in at this stage?

Detach Device

Rare. Do we need to factor this in at this stage?

Delete Account

Rare. Do we need to factor this in at this stage?

Scrypt Helper

The scrypt helper is used by mobile devices during authentication aka "device registration". At 37 register-device operations per second and 15% mobile devices, we have:

  • 5.5 scrypt-helper requests per second

History Data

Bookmarks Data

Passwords Data

Tabs Data