Handle Server Performance Tuning
Jason Petrone
Corporation for National Research Initiatives
Handle System Workshop ’2 – p. 1/14Full Screen___________
Reducing Trips to Global
� �� �� � � �� ����� �� � �
����
Handle System Workshop ’2 – p. 2/14
Reducing Trips to Global
NA Resolution
� �� �� �� �� ����� �� ��
���
Handle System Workshop ’2 – p. 2/14
Reducing Trips to Global
NA Resolution
NA Perms
� �� �� �� �� ����� �� ��
���
Handle System Workshop ’2 – p. 2/14
Reducing Trips to Global
NA Resolution
NA Perms
Pub Key
� �� �� �� �� ����� �� ��
���
Handle System Workshop ’2 – p. 2/14
Reducing Trips to Global
NA Resolution
NA Perms
Pub Key
� �� �� � � �� ����� �� � �
���
420ms × 3 = 1.26s
Handle System Workshop ’2 – p. 2/14
Reducing Trips to Global
Keep public keys on local server, not global
Handle System Workshop ’2 – p. 3/14
Reducing Trips to Global
Keep public keys on local server, not global
Disable NA admins
Handle System Workshop ’2 – p. 3/14
Reducing Trips to Global
Keep public keys on local server, not global
Disable NA admins
Give server admins full access
Handle System Workshop ’2 – p. 3/14
Reducing Trips to Global
Keep public keys on local server, not global
Disable NA admins
Give server admins full access
Enable trace_resolution on server to verify
Handle System Workshop ’2 – p. 3/14
Reducing Trips to Global
Keep public keys on local server, not global
Disable NA admins
Give server admins full access
Enable trace_resolution on server to verify
Configure client for local NAs (undocumented)
Handle System Workshop ’2 – p. 3/14
Setting a Preferred Global
Multiple global servers(2 in Reston, 2 in Los Angeles)ping 209.225.25.25 avg:35.096ms
ping 198.32.1.37 avg:86.807ms
ping 198.32.1.73 avg:87.091ms
ping 132.151.1.179 avg:0.717ms
Handle System Workshop ’2 – p. 4/14
Setting a Preferred Global
Multiple global servers(2 in Reston, 2 in Los Angeles)ping 209.225.25.25 avg:35.096ms
ping 198.32.1.37 avg:86.807ms
ping 198.32.1.73 avg:87.091ms
ping 132.151.1.179 avg:0.717ms
Set via Java properties:java -Dhdllib.preferredGlobal=132.151.1.179
orSystem.setProperty("preferredGlobal", "132.151.1.179");
Handle System Workshop ’2 – p. 4/14
Using a Caching Server
System
Handle
Handle System Workshop ’2 – p. 5/14
Using a Caching Server
Stripped down handle server
Handle System Workshop ’2 – p. 6/14
Using a Caching Server
Stripped down handle server
Improves resolution for many clients
Handle System Workshop ’2 – p. 6/14
Using a Caching Server
Stripped down handle server
Improves resolution for many clients
Can be used for localization/appropriate copy
Handle System Workshop ’2 – p. 6/14
Using a Caching Server
Stripped down handle server
Improves resolution for many clients
Can be used for localization/appropriate copy
Configuration setting for every client
Handle System Workshop ’2 – p. 6/14
Storage
Stock Handle Server Storage(jdb)
Fast for resolution and administration on smalldatabases
Handle System Workshop ’2 – p. 7/14
Storage
Stock Handle Server Storage(jdb)
Fast for resolution and administration on smalldatabases
Administration begins to slow down around 300,000handles
Handle System Workshop ’2 – p. 7/14
JDB Storage - Handle Creation
0
0.2
0.4
0.6
0.8
1
0 200000 400000 600000 800000 1e+06
Sec
onds
Records
’jdb’
Handle System Workshop ’2 – p. 8/14
Custom Storage
But Its Okay Because. . . You can do it your way!
Handle System Workshop ’2 – p. 9/14
Custom Storage
But Its Okay Because. . . You can do it your way!
In config.dct set:storage type = "custom"
storage class = "MyHdlDB"
Handle System Workshop ’2 – p. 9/14
Custom Storage
But Its Okay Because. . . You can do it your way!
In config.dct set:storage type = "custom"
storage class = "MyHdlDB"
Write MyHdlDB, implementing thenet.handle.hdllib.HandleStorage interface
Handle System Workshop ’2 – p. 9/14
BSD DB Storage
Fast, Free, Proven
Handle System Workshop ’2 – p. 10/14
BSD DB Storage
Fast, Free, Proven
What we use for the DOI handle servers
Handle System Workshop ’2 – p. 10/14
BSD DB Storage
Fast, Free, Proven
What we use for the DOI handle servers
But... Written in C and hard to install
Handle System Workshop ’2 – p. 10/14
BSD DB Storage - Handle Creation
0
0.2
0.4
0.6
0.8
1
0 200000 400000 600000 800000 1e+06
Sec
onds
Records
’jdb’’bsd’
Handle System Workshop ’2 – p. 11/14
RDBMS Storage
Still in development
Handle System Workshop ’2 – p. 12/14
RDBMS Storage
Still in development
Not likely to improve handle server performance
Handle System Workshop ’2 – p. 12/14
RDBMS Storage
Still in development
Not likely to improve handle server performance
Better for offline administration and query
Handle System Workshop ’2 – p. 12/14
RDBMS Storage
0
0.2
0.4
0.6
0.8
1
0 100000 200000 300000 400000 500000 600000 700000 800000 900000
Sec
onds
Records
’jdb’’bsd’
’mysql’’oracle’
Handle System Workshop ’2 – p. 13/14
Summary
Reducing trips to global
Setting a preferred global
Using a caching server
Using alternate storage
Handle System Workshop ’2 – p. 14/14