2004 USENIX Annual Technical Conference

USENIX Association
Proceedings of the General Track:
2004 USENIX Annual Technical Conference
Boston, MA, USA
June 27–July 2, 2004
© 2004 by The USENIX Association
All Rights Reserved
For more information about the USENIX Association:
Phone: 1 510 528 8649
FAX: 1 510 548 5738
Email: [email protected]
WWW: http://www.usenix.org
Rights to individual papers remain with the author or the author's employer.
Permission is granted for noncommercial reproduction of the work for educational or research purposes.
This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein.
!
"
!#$
%
!# "& '()*(
# %
+ #
! +
% #% %
% # #% $
,
#%%
% % # # % -$
$- .#%%/
%
0 #
% % $
% +$%
# #%%
%
1
%
% 2 -$
+$%
# #% 3# Æ
# $ % 4 5 %%
%
%
% + % #%$
%
%
, 3# &
- % 2 -
$# 3# 6
#
#%% % -
% #
#
#
% % ! $
#% 6 % 7*8 97:; !" #""!$ % &
"!'$ () * $ + , ,- () +.
#% % # .
/ #% $
# % <
"
1% 97);
#% ! =:>:
#
-
*'8 % $
? @
%
# A
#%%
% #%%
% # $
B $
9C DE 7' 'E ') '> C7;
$# 6 #% 9D* D7 E( E' '7 C'; # # % $
9(> DC )(; $
% $
#% 97( 7>; -
$
- % 9D) :(; 1
A
#%
F % %
#% % #% % %# "
#%%
% # %
% # #% -
#
G +%
$
#% + # 6 %$ 1 # $
#%%
% % #
-
$- #%%
%
#% #% " #%%
% % # #%
% #%% " #% $ #% % $-
" # #%% %# $
#%% $
% % -
" % 6 %# # $
%
% #% 1% # # $
% #%%
% 1
% % % 1$
% % $
9E (* (D E7 EC E) E> :7 '(
CC C> )D; % % # $
#%%
% !
G2 # % #% A 6 % # % # H% ($D %I
5
% $
# J $
9(( D> 7* 7E '* 'D; 9> 7D ': CD; %%
% 9' EE :* '' C*; J # % 6
# #$ 1 $
#%%
% % %
" %
% 2 -
# $
#%%
% " Æ
$ -$
% 3# %4 -
3# # % J % %
J #6 $
$-
, &
- % # 2 -
$
$# $
6
# -
- # #%%
% - -
%# % # 1
-
% # $
% % % #%% %
,
% -
% # $
#
#%
1
%
D #
#% E
3# 7 :
# % # ' -
C +$
# %# %%
% # #%%
) #
-
2 #
% K #%%
% #
" #%%
% # #L #
F-
% $
% $
% #%%
% $
$
# ,% 9C: C'; &L 977; F 9D(; F$
% 9(> DC )(; F- $
$
4 B
9E*; "4 9E:;
& 4 "!F 9D) :(; $
97( 7> (: :E :) 'E; 6 # #% 9D' ( (7 7C :';
,
$
$
$
6 % #%
#% % $
#%% %# 1 %$
#% %
% #% #% % % % $
#%%
% # 1 + #% % % #% #
$
+%
6 $ 2 A
#% # -
#%% -
#%% 1
6
Æ
# # #
$
% % $ $
L
% # -
% # % -$
$
$
, % A
+-
% % $
9(D E7 EC E) E> C> '(; $
9E :7 )D; $
9(* )*; % A 6
1 $
% # #%%
%
$
$
# -
9(( D> 7E '* 'D;
3 - & $
M
# 9(( 7E; 6
# $
% %
% N 6
# #%%
% %$
%
5% 9:; # % # "
# -
1 #
$$ # % # % 1
$
# $
% % ,
$# % % $
6
$
% $
% %
1 % % $
% 9D: :D; $
# % % % % #
1% % $
#
L
97 ED :C; % $
+$%
# $
9); #
# % $
#
% # 6
% 1 $
% $
$$ H11I
#%%
%
3 5 %
#%%
% 9DD; $
# % % # 1 % $
% -
%%
%
5 % # " #
$
% 3 N % #6 $-
9:>; %% %
% %
# % % $
#
+$%
$
2 $
- 1
6 # # 35 $
$ %
M
9(C; 2 % 2 1
6
% # H15I
% # # % 2 3# %
+ A M
3
#%%
% H
I %
$
M
HI $
M
#
%%
% /
%/ 3# % %
# #
% #%% - A 1 -
% $
# %
% +$
%
# $
% #%%
%
!
!" #$
3# #
#%%
%
K ! K ! $
-
+ # -
$
% #
1 % % #
K ! # -
$
+ # -
$
1 # 3# Æ
$
-
+ -
1 + -
$
4 -
2 " # 6 + -
3# $
% 1
$
%
+ $$
,
% $
# + $
% $-
F + # #$
+ %$
- %
-
% # # A - %
# %
+ % " # -
% % %% $-
.
/
%
, $
% %
$ -
# % %
-$
% - %
%
-
A
% $
# L
#%$
%
% %# % -
# % #
% #%%K
3
% (K %
% % -
$
G# # % % %
3
% ( % %
( " ' % # -
( 1 #%
-
( ' # $
# % #%% % +
% -
$
" ' % & $" '
% $ ( 3# # $
2 # % % $ #%%
% -
% # $
% H
#$
%# I " % #%% # -
#
% % % $
3
% ( - % % -
G# #%% 6
% % 2 % 1
-$
% # -
# % -
%
-
" 1 % $
! # % $
% %
4 1 H I %$
+ # % $ %
Active State
Active State
checkpoint
Shadow State
ard
replay
disc
Active State
X
Shadow State
X
Active State
Shadow State
3
% DK 4 1 +% D
1 % # #%%
% + # % H - I " + " 6 " # #
-
% 3
% D A " # $
-
% %
# $
-
% #%%
% 9C); " % # -$
# # % #% # #$
-
1 # -
" # #
# % 1 $
% $$
" $
% $
$$
, $ + % # %% 1
#$
+ 3
%
+
# % * # %
H
I 1
$
A -
3
%
+ % # %
% #
G
0 $$
% -
$
3 -
$
' %
+
% )$
)
# $ 6
$
1
# $ $
$
#% 3 - % % &
- + % 1 $
$ H I % # # % # % -$
1 +$%
$
# $ % 2 #
-
1 $
$
+ $
# 9D (' () 'C C*;
3# + #
$ % " $
% -
&
$
# 3# $
-
# % # 1
# % 1 $
6
%G
% #
2 % $
#%%
% % % #
$
Æ
3
$
# 6
$
%
1$
% Æ # $
%
1
% 6
#
% # % 1 %
$ -$
$ % # # $- $#$ 3$
Æ
% # $ % % *+
, + " #$%$## # %
J # 1 # 1 $
-
1 $
# H &
- %I $
% 4 $
1
$$
& 1 %
-
- $ #
+ #
# - -
# % A 1 A 1 A $
# 3 O % 1 4 # " % " #
%
% % -
% %
% 4
% # 1
$
% $
# % % % % # %
# # % % # H
I #
% $
% # , # $
% &
- $
% # % &
- %
# K " % $$ % #
$ $ $
-# % # % $
%
% + % %
% B2 "P $
% H 6
I # $
% &,B % H&,B4I ,
$$ % # $
% % # $ #
$
# -
% # # $
% H$
"@& "2 I % # % # % -$
½ " Æ -
- A -
-
, -
% #$
# -
% # % $ $-
# + # ' # #%
-
<
$
# % $ $
-
#
# " "B
% $
# %
5$
% # % % # , & ))+
, $ ( " -
-
$
% $-
A 3
+ # % # # % +4 # %
+
/0 -
+- +
1
1 , - +2
- +
½
3# - -$
% % %
"
3# #%%
-
$
% %
" Æ - -
# - $
# % % 3# #%% %
##
#% # % 3# $ " % $
1 % $
% $ % 1 $
% $
" # % $
A %
1 " 3# $
# 2 %% % %
6
# % + $
% # %
# " 3# # % -
" %%
% +% E " %%
% %
% $A " + #
% %
$A %%
User−level process
Log
System call
handler
Hijacker
Original
Handler
, &%%
% A A K
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
3
% EK ! " #! $
3
$ J M
$ $
<$ J %
B J - -
" $ J $
% 6 !
J %
% , % A 3$
# # $
% %
$
-
" %
.
/ # % $
%
# % 3 -
HI + $
#A + # 1 A # # 3$
# 6
3# % $A
,
# # -
#
% % %$
% %
" J
%$
1
# # % # % # %
1 % % N $
# 4 -
# + # 2 # $
4 %
-
# 3 #
% + # % + #
+ -
%
$
#
% # # -%
% , (
)( # $
(
&
- A O J M "B 5 1 % # % 5 +
%
+ % % , % 6 % H!I % % %
" % % + 4 + # % + # % +
2 + # + 3 + % + # # # %
+ B
%
# % % % 2 % $
+ % + % %
+ % 6 + %
# % %
$%
% # &
-
% % -
# % 1
%
+ %
# $
% %
1
+ # $
% % + # #
% #%%
0
% +$
% % + # 6
% %
# #
% $
L + # %%
% #
% %
% % 1
A -
% # 6
% # %
" 3# $
# " $
+$ $
#
Æ
% 6
% $
# % ,% ($
,
6 # $
% % $
% &%$
%
% % # $
%%
% % $
#%% % % # %
6
F
% % 3 $ % % $
% $
# 9(E; 1 #
# % % %
-
$
% %
# -
# $
# %
$
# 9(E; ,
#
$ # 9::;
,, % # +
- $
% % -$
% # # # % # 1 # %
% # %$
A -
1 % % - %
$-
%
-
% # % # F 9'';
% 3# % $
1 # $
1 , %
% $
% 3# - % % " % , % # % ,- *+
, 3#4 &
-$D7DD 1 $
$ + - " &
- $ # % # %
% %$
% % -
(D) 1 -
$
- # " + % , 9C(; $ # %%
% #
% 1 # .
L/
# # % # + # % + % # %% # - % % % %
# 1
#
%
# " % 1
+ $
%
%
%% A % # 5 % #$
#
$
% 3 3# # # %
# % - .!
, 3#
% # 1
% #
()@0 B$
"M :(D5 &D :(D5
-
!
$ /
1 #
# #
, % $
# % % # # % 3
% 7HI #
$
K D:$('** # 75
7**5 $$
# $
$
+ # 1 HI $
# % %
H I 1
#
# $
$
2 $
D)$D)** # D)$C:** 1 % # % # % G
1
% #$
# % 3
% 7H#I
#L
# $
$
, 1
# # $ #
% $
# # 1
% -
$
-
!
$ *
" %%
% % %%
% " % "
%%
% + #%
% 1
+ # " ,
%%
% A %
3# #A
Variation of system call latency with size of process data memory
8000
900
min
max
average
800
Time (microseconds)
700
Time (microseconds)
checkpoint
write n discard
write n replay
read n release
read n replay
7000
600
500
400
300
6000
5000
4000
3000
2000
200
1000
100
0
0
Checkpoint
Discard
Replay
%& ' ( )* +, ! -
3
3.5
4
4.5
5
5.5
6
6.5
7
logbase10 (0.25 * Data Size in Bytes)
%& ' ( )., )**+,
3
% 7K + #
/ ( !
Without logging
With logging
Without logging
With logging
12000
Response Time (microseconds)
Response Time (microseconds)
12000
10000
8000
6000
4000
2000
0
10000
8000
6000
4000
2000
0
0
5
10
15
20
Number of system calls
%& ,
-! %, &
25
30
0
5
10
15
20
25
30
Number of system calls
%& 0-! %0 &
3
% :K # %& ! ! 1 % %%
% % % $
% # # 7 5 D 5 1
A %
# 3
%$
% $ ' % , + #A$ 1 5 < $
% H5I % $
% H<I # - % #A
3 < $ - 1
#AN L " # % #A $
" -
Æ
1 $ +
L
% %%
% $ # -
1 % % # O % " # # 7 5 3 + A %
3
% : # #- 1
#-
% # -
# 3# "$
#
% # $
6 % +
%%
% 1 # # 1 A # % - $$
%%
% 1
E* $
3
% CK ( 1 %.,& ! !
%
1 A % #A %%
% 3
% C # %%
%
700
Reads
Writes
Log File Size(KB)
600
500
400
300
200
100
0
4500
5000
5500
6000 6500 7000 7500
Number of system calls
8000
8500
9000
With logging
Without logging
4000
4000
Response Time (microseconds)
Response Time (microseconds)
4500
With logging
Without logging
4500
3500
3000
2500
2000
1500
1000
3500
3000
2500
2000
1500
1000
500
500
0
0
0
100
200
300
Amount of data read (*4KB)
400
%& ,
-! %, &
500
0
100
200
300
400
500
Amount of data written (*4KB)
%& 0-! %0 &
3
% 'K # %& ! ( ! 5 < - % 1 O % + # % 3# % % 5 -
# %%
% %
-
1 -
# 6$
%
% )* 9CE; #$$# 6 % # F
" $ 6 % + $
$+ .
% / 1 % $ ( #$ , + % # :5 :5
# # L
6 :5
2 1 6 %
% $+
%K + +$%
# # #
$
# # $ 6 # 1 N A$$ ()@0 B
"M $ -
(**# &< B $
" -
# % %%%
#$ # % B! " % (**# , -$ -
% A$$ H()0 % (**#
:(D5 I % , #$ +$%
# A
% 4 #
% %
$
1 &
- 3
% ) % H
I % % 6 3# #
, L # % % " 011B 6 A # % %
+ A # % 011B 6 -
% $ $
% ,
# % 011B # 3# (*8 1 3# $ % % % % # #
0 6 #
% # # A # #$
# % 3# " 3$
1 # +% $ # # #
,
" A - -$
6 F % # # %
%
#
# 3
% > $
0 - #
$ 3# -
% % # #
% , +% % +% # +%
" 1
-
# A
# 6 % 6
-
1.3e+07
0.4
Baseline
With rollback support
Response time in seconds
1.2e+07
Throughput in Bps
Baseline
With rollback support
0.35
1.25e+07
1.15e+07
1.1e+07
1.05e+07
0.3
0.25
0.2
0.15
0.1
1e+07
0.05
9.5e+06
0
20
40
60
80
100
Number of clients
120
140
0
160
0
20
%& 2
40
60
80
100
Number of clients
120
140
160
%& # 3
% )K 2
+
3 - "
! "
1 2 1
! $ 2 4 -
1.3e+07
0.4
Baseline
With rollback support
Response time in seconds
1.25e+07
1.2e+07
Throughput in Bps
Baseline
With rollback support
0.35
1.15e+07
1.1e+07
1.05e+07
0.3
0.25
0.2
0.15
0.1
1e+07
0.05
9.5e+06
0
20
40
60
80
100
Number of clients
120
140
0
160
0
20
%& 2
40
60
80
100
Number of clients
120
140
160
%& # 3
% >K 2
3 - 2 1
! $ 2 4 -
6
6
Baseline
With rollback support
4
3
2
1
0
Baseline
With rollback support
5
CPU 1-minute load average
CPU 1-minute load average
5
4
3
2
1
0
20
40
60
80
100
Number of clients
120
140
160
%& +
0
0
20
40
60
80
100
Number of clients
120
140
160
%& +
3
% (*K 5-
/ 3 - 2 ! % #6
$ % $
0 # % $
$
A -
2 1 6
$
B! % % #$
1 % $
# % 6 $
6 3
% (* 1 % -$
% 6 H 6
# I < % # D$7 # # % , -
#$ # #
" # +%$
B! %
+ " %$
- 6
% 1
#$
# !
- # 6 % 6 " $
-
#
1 # H I % # +%$
-
#
% # B! +%
0 & #$ !
% 3# % $
% # $
#%%
% , + %# $
J # %
# $
#%% % B% #
% #
% % $
# % 1 # % $
# % " + #
# # % # !
% 3# %# # #$
% -
% < $
#%% % # # % % -
#%% % B% 6 % 1
%$
% #
-
% " %# % ' 1 % $
% #
%
-
% % 1
#
6 # $
% % -
% -$
-
%
$
%# 1 %# # % % " #
%
#%% # %# 3 % % %# 1 # # , %# $
1 #
" %
% 2 -
3# +$%
# $
#%%
%
3# Æ
$
A -
1 3# % $
#%% % -
$
$
# % 6
5
#%%
% #
#
# %
% # $-
% $
9C); " # -
%
% 6
# , #
% 3# # $
9:'; ,
% 3# 3# % % , -
% - # $ # $
#
% 6 # F 9();
3# % # &
- %# # G % #%%
%
2
"
, $
%%
, $
# 2 % Q$
% B
L
@
#
L
.#..3.
678 9 3 + ' , / + # , 0( ' ' # +! ! : ;<)=;)< 7>>7
6;8 3 +(
2- : ! "#$
" $
7>>?
6<8 3( 3 @ ' ! !
/ : '
! 0 ;***
6)8 3 , + $ : %%% 7>>A
6B8 3 , C ,
D( 3 !
: & !
'( 7E >*=>> 7>A<
6?8 3 , ,
D $ 5 $
0:F ! #
E%7&G7=;) $ 7>A>
6E8 ,! # " + # 5 ! G / :
)$
* * +* $
'+( 0 ;**;
6A8 D 3 $ ! : & , # +! ;**<
6>8 + , " / ! !(
- ! : ;***
67*8 / + ' " D '
'
G 2 - ! 2 ! + '
C
! 7>>A
6778 / + 2 0 3! D #
' " 2 # 1 G ! : - $
+ E)=A< +
7=B 5
7>>? 3 + /
67;8 H C / . " G - : &&. !/%%% '0!(
7=77 3 + / 7>>E
67<8 C ' ! : "!%#0
# )A=B>
3
7>>A
67)8 C-' " + # $G #
'
# /-/ '
: #
! "+1 2 7)B=7B) 7>>7
67B8 . ' + # 2 . .! . +.! C + +- ! " 2( .
2 / / / %%% A7%;&G;))=;?< 7>><
67?8 5 / ' 9 . D Æ!
!
! : 7*A=
77B 7>>?
67E8 D '
2 . + 3 , / +
#G ! ! ! " $
0-3 <B% :&G;77=;;) ;**;
67A8 0 + (! " 3 H ' , C
3 ! -! -
! ! - '40( <)%<&G<EB=)*A
;**;
67>8 ' # ' H 3 ,
G 3 !
: BE=E; ;**7
6;*8 ' C D
C H + 2 "G 3
1 : 5 3
%
' 7>>)
6;78 ' ' " : ! ! %%% 3
7>%7&G);=B7
I;**;
6;;8 $ , :G 3 ! ! "+1 1*
;)%7&G77;=
7;< C 7>A>
6;<8 $ 0 $
2!- C ! "+1 1 <B%B&G;7>=;<; ;***
6;)8 $ . " + " 0 C # : +
;**;
6;B8 D #
! ! ! : 1 ;**;
6;?8 . D / , ' 9 J
! : #
! <7?=<;? 7>>7
6;E8 , H F ' 3 ! !-1 ! : $
! "+1 6776 $
'+( ;**;
6;A8 + " 2 ! : 8 6776 8 8 $
3
%
;>7=<*7 5 $" +! ;**;
6;>8 # H + D #! J
! #
$
'#( ?%7&GA;=7*A 7>AA
6<*8 # , C! /
!G $ !
: 4%19 7>>;
6<78 . 2 /
+ 1 7>>A
6<;8 H . 0 . 0 $
G ! : 5#$
6 7>>B
6<<8 H H ! ! : $
&& 5$#
'5#( )B>=)?< 7>>B
6<)8 ' C @ #! ! : - ! 7E7=7A7 3
7>AA
6<B8 .3:-: 3
#"G G IIII
I
I
6<?8 .
. " 1 : 5 '( ;**;
6<E8 . " C 0
C / - : ! "+1 $
E>=AA + 7>>*
6<A8 . " C 0
C / 3 Æ $
:
;*%<&G7B>=7A* C
7>>7
6<>8 . " C 0
C / "-! %%% #
$
7>>)
6)*8 , " '
$
! <7%<&G<**=<7; + 7>AA
6)78 3 " H ( 2 # '
- ! : 5 3
%
;7E=;<; ;**7
6);8 ' " / + ! ! : ;***
6)<8 ' " / + $ #
9 : ; $
'$&.( <7B 0-3 >;=7*7 0 H 5B=A 7>>E
3 + /
6))8 + "
K C # D
2 " $ C +
C ! : : ! :- "
$
E?=AB ;**;
6)B8 +
,
! C
! ;***
6)?8 C + +- ! + " !(
: # < +$
;?>=;EA 3 7>>7
6)E8 " + C-' 3 Æ - 3
3! ' : 5
$
+ ;<B=;))
7>>7
6)A8 0 :
2! %0: 2& ' !
LB>B ! 0: 2 0 # ;**;-7* ;**;
6)>8 D 0
+/ G ! 1 ! : + 7;A=7<> ;**;
6B*8 # , 0( 5 ! -! : 7>><
6B78 C 5 + " !
5 ;**;
6B;8 ' 3 / #!- %&G + 1 J
,! 2 # ,II '-*;-77EB ;**;
6B<8 ' / / C . 3 /- 3
--$! # ' %%% #
77%7*&G7*BA=7*E; ;***
6B)8 C / . " + 3 /
' %%% #
>%7*&G>E;=MM 7>>A
6BB8 + /
C 2 #G -
: =7 ;**<
6B?8 + /
C 2 #G 2" '
3 3 '
# +
: =7
'( C
;**<
6BE8 # #
+ , " ,3 G : ! 7B=;A , 5 ;**7
6BA8 + # . ' , #/!G $
! : / #I#! ! ! #
7E%;&G7<<=7B; 7>>>
6B>8 + #
, #! -! : ! "+1 &&; $
;BA=;?? C
: 7>>? 3 + /
6?*8 H , , 3 ! ! : 4%19 #$
7>>A
6?78 . D-+ ! 2 # -2#-7;?-AE ' / ! 7>AE
6?;8 + !! +
/ .
' C . " ! : 7>><
6?<8 + ,
D 0 / 2 3 G 3 ! ! #
$
7B%)&G<>7=)77 7>>E
6?)8 5--4! :
! "+1 >& +
'+( C
7>A>
6?B8 + ( H ' G
: 7>>?
6??8 C ! 0 (! - ! : #3$? 5$#
;B*=;?7 C
;B=;E 7>>?
:
6?E8 ' , C C ' 2! !
!
! :
5#$6 6 5 #
<?7=<E7 / 7>>B
6?A8 0 G 3 ! :
4%19 # 7>><
6?>8 C + '
G 3 !
: ! "+1 +
'+( C
7>AA
6E*8 # 3 H 5 ! ! ! #
<%<&G;*)=;;? 3
7>AB
6E78 !
GII!
I
6E;8 3 2 + "! Æ : + 7>>)
6E<8 D 2 + G 2 1 $ 7>>B
6E)8 /
2 D 5 : ;
)$
* $
* +* '+( 2 ,!
$" 5 ;**7
6EB8 ' ' ' :
! : %%% - 7B?=7?> ;**7
6E?8 ' C $ , 3 3 3 1 : 13
<=7E ' 3 $
! ;***
6EE8 H / H H 0 (! : : 5#
7>>E
6EA8 H H . $
. D / ! ! %%% #
)?%7*&G77<E=77)7 5 7>>E
6E>8 H H .-/ 9 /-H .
: 5#$6 7>>B
6A*8 + @ 09!G 3 - ! ! : ? $
$
+ A?=>E C 5 )=E 7>>) 3 + :D3# :D5/ :D/"30 : !
6A78 H F ' 1 : ! "5# 5 3
B7=?* ;**;
6A;8 H @
/ + . " $ !- : = !
C
7>>>