110 |
my $code = read_file $path; |
my $code = read_file $path; |
111 |
Sack::Merge->clean; |
Sack::Merge->clean; |
112 |
delete( $info->{view} ); |
delete( $info->{view} ); |
113 |
|
delete( $info->{merge} ); |
114 |
to_all { code => $code, view => $path }; |
to_all { code => $code, view => $path }; |
115 |
}; |
}; |
116 |
|
|
186 |
if ( my $s = $info->{view}->{$view} ) { |
if ( my $s = $info->{view}->{$view} ) { |
187 |
my @nodes = sort keys %$s; |
my @nodes = sort keys %$s; |
188 |
my $total = 0; |
my $total = 0; |
189 |
$html .= qq|<table><tr><th>node</th><th>rows</th><th>shards</th><th>∑</th></tr>|; |
my $total_merged = 0; |
190 |
|
$html .= qq|<table><tr><th>node</th><th>rows</th><th>shards</th><th>∑</th><th>merge</th><th>∑</th></tr>|; |
191 |
foreach my $node ( @nodes ) { |
foreach my $node ( @nodes ) { |
192 |
my $h = ''; |
my $h = ''; |
193 |
my $shard = 0; |
my $shard = 0; |
195 |
my $affected = $s->{$node}->{$path}; |
my $affected = $s->{$node}->{$path}; |
196 |
my $n = '?'; |
my $n = '?'; |
197 |
$n = $1 if $path =~ m{/(\w)\w+/\d+}; |
$n = $1 if $path =~ m{/(\w)\w+/\d+}; |
198 |
$h .= qq|<tt title="$affected $path">$n</tt>|; |
my $class = $affected == 0 ? 'style="color: #888"' : ''; |
199 |
|
$h .= qq|<tt title="$affected $path"$class>$n</tt>|; |
200 |
$shard += $affected; |
$shard += $affected; |
201 |
$total += $affected; |
$total += $affected; |
202 |
} |
} |
203 |
$html .= qq|<tr><td><tt>$node</tt></td><td>$shard</td><td>$h</td><td>$total</td></tr>\n|; |
my $merge = $info->{merge}->{$view}->{$node}; |
204 |
|
$total_merged += $merge; |
205 |
|
$html .= qq|<tr><td><tt>$node</tt></td><td>$shard</td><td>$h</td><td>$total</td><td>$merge</td><td>$total_merged</td></tr>\n|; |
206 |
} |
} |
207 |
|
|
208 |
$html .= qq|</table>|; |
$html .= qq|</table>|; |
299 |
} else { |
} else { |
300 |
warn "no more shards for [", $data->{port}, "]\n"; |
warn "no more shards for [", $data->{port}, "]\n"; |
301 |
} |
} |
302 |
} elsif ( defined $data->{out} ) { |
} elsif ( exists $data->{out} ) { |
303 |
Sack::Merge->add( $data->{out} ); |
my $added = Sack::Merge->add( $data->{out} ) if defined $data->{out}; |
304 |
$info->{view}->{ $data->{view} }->{ $data->{port} } = $data->{on_shard}; |
$info->{merge}->{ $data->{view} }->{ $data->{port} } = $added; |
305 |
|
$info->{view }->{ $data->{view} }->{ $data->{port} } = $data->{on_shard}; |
306 |
} else { |
} else { |
307 |
warn "UNKNOWN ",dump($data); |
warn "UNKNOWN ",dump($data); |
308 |
} |
} |