offload the RSA keypair generation? #372

Closed
opened 2008-03-28 19:59:24 +00:00 by warner · 2 comments

We're monitoring the allmydata.com user-facing web-api server, and we're
noticing that it is doing a significant amount of RSA key generation. Each
time somebody creates a directory, the reactor is stalled for a second or two
while the CPU cranks through the generation of the kilobit primes. This will
reduce responsiveness: not just for the dirnode creation taking place, but
for all others users.

We're thinking about pushing the keypair generation off to a separate
process. The interface would be to drop a "key-generation.furl" in your
node's basedir. If present, a simple foolscap protocol would be used to ask
this server for a key. The server could pre-generate a batch of keys when
it's idle. The server would probably run on the same server as the web-api
machine, but it could use a different core if that host is SMP.

We're monitoring the allmydata.com user-facing web-api server, and we're noticing that it is doing a significant amount of RSA key generation. Each time somebody creates a directory, the reactor is stalled for a second or two while the CPU cranks through the generation of the kilobit primes. This will reduce responsiveness: not just for the dirnode creation taking place, but for all others users. We're thinking about pushing the keypair generation off to a separate process. The interface would be to drop a "key-generation.furl" in your node's basedir. If present, a simple foolscap protocol would be used to ask this server for a key. The server could pre-generate a batch of keys when it's idle. The server would probably run on the same server as the web-api machine, but it could use a different core if that host is SMP.
warner added the
code
major
enhancement
0.9.0
labels 2008-03-28 19:59:24 +00:00
warner added this to the 1.1.0 milestone 2008-03-28 19:59:24 +00:00
Author

rob implemented this several weeks ago and it's been working correctly on the prodnet webapi servers.

rob implemented this several weeks ago and it's been working correctly on the prodnet webapi servers.
warner added the
fixed
label 2008-04-23 19:18:55 +00:00

Milestone 1.0.1 deleted

Milestone 1.0.1 deleted
zooko added this to the 1.1.0 milestone 2008-05-05 21:08:36 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#372
No description provided.