mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 21:19:59 +00:00
Merge branch '3.0' into mysql-8
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
Changelog for Percona Toolkit
|
||||
|
||||
v3.0.7
|
||||
|
||||
* Fixed Bug PT-244 : pt-online-schema-change --data-dir option broken for partitioned table
|
||||
* Feature PT-633 : Added --mysql-only option to pt-stalk for RDS
|
||||
* Fixed bug PT-1256: pt-table-sync does not use the character set for the table it is synchronizing
|
||||
* Fixed bug PT-1455: pt-osc is stuck when the table that is being altered is filtered out in the slave
|
||||
* Fixed bug PMM-1905: Explain fails if encounters negative "ntoreturn"
|
||||
|
||||
v3.0.6 released 2017-12-20
|
||||
|
||||
* Fixed bug PT-234: Genaral log parser cannot handle timestamps with tz
|
||||
|
@@ -5372,15 +5372,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -5597,6 +5598,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -5633,7 +5674,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4711,15 +4711,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4936,6 +4937,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4972,7 +5013,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -3775,15 +3775,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4000,6 +4001,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4036,7 +4077,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4328,15 +4328,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4553,6 +4554,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4589,7 +4630,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4379,15 +4379,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4604,6 +4605,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4640,7 +4681,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
53
bin/pt-find
53
bin/pt-find
@@ -3093,15 +3093,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -3318,6 +3319,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -3354,7 +3395,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -3280,15 +3280,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -3505,6 +3506,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -3541,7 +3582,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4980,15 +4980,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -5205,6 +5206,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -5241,7 +5282,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -5777,15 +5777,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -6002,6 +6003,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -6038,7 +6079,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
53
bin/pt-kill
53
bin/pt-kill
@@ -6185,15 +6185,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -6410,6 +6411,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -6446,7 +6487,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -56,7 +56,7 @@ BEGIN {
|
||||
{
|
||||
package Percona::Toolkit;
|
||||
|
||||
our $VERSION = '3.0.6';
|
||||
our $VERSION = '3.0.7';
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
@@ -4281,7 +4281,8 @@ sub recurse_to_slaves {
|
||||
PTDEBUG && _d('Connected to', $dp->as_string($slave_dsn));
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
print STDERR "Cannot connect to ", $dp->as_string($slave_dsn), "\n"
|
||||
#TODO REMOVE DEBUG
|
||||
print STDERR "1> Cannot connect to ", $dp->as_string($slave_dsn), "\n"
|
||||
or die "Cannot print: $OS_ERROR";
|
||||
return;
|
||||
}
|
||||
@@ -5001,7 +5002,7 @@ sub wait {
|
||||
my $lag = $get_lag->($lagged_slaves[$i]->{cxn});
|
||||
PTDEBUG && _d($lagged_slaves[$i]->{cxn}->name(),
|
||||
'slave lag:', $lag);
|
||||
if ( !defined $lag || $lag > $max_lag ) {
|
||||
if ( defined $lag && $lag > $max_lag ) {
|
||||
$lagged_slaves[$i]->{lag} = $lag;
|
||||
}
|
||||
else {
|
||||
@@ -7413,15 +7414,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -7638,6 +7640,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -7674,7 +7716,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
@@ -8693,7 +8735,8 @@ sub main {
|
||||
# to stop lagging. If any replica is stopped, the tool
|
||||
# waits forever until the replica is started."
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1402051
|
||||
PTDEBUG && _d('Cannot connect to', $cxn->name(), ':',
|
||||
#TODO REMOVE DEBUG
|
||||
PTDEBUG && _d('2> Cannot connect to', $cxn->name(), ':',
|
||||
$EVAL_ERROR);
|
||||
# Make ReplicaLagWaiter::wait() report slave is stopped.
|
||||
return undef;
|
||||
@@ -9134,7 +9177,8 @@ sub main {
|
||||
}
|
||||
};
|
||||
|
||||
if ( $slaves && scalar @$slaves ) {
|
||||
my $table_is_replicated;
|
||||
if ( $slaves && scalar @$slaves && $table_is_replicated) {
|
||||
foreach my $slave (@$slaves) {
|
||||
my ($pr, $pr_first_report);
|
||||
if ( $o->get('progress') ) {
|
||||
@@ -10393,15 +10437,15 @@ sub create_new_table {
|
||||
}
|
||||
if ( $o->get('data-dir') && !$o->got('remove-data-dir') ) {
|
||||
if ( (-d $o->get('data-dir')) && (-w $o->get('data-dir')) ){
|
||||
$sql =~ s/DATA DIRECTORY='.*?'//;
|
||||
$sql .= sprintf(" DATA DIRECTORY='%s' ",$o->get('data-dir'));
|
||||
$sql = insert_data_directory($sql, $o->get('data-dir'));
|
||||
PTDEBUG && _d("adding data dir ".$o->get('data-dir'));
|
||||
PTDEBUG && _d("New query\n$sql\n");
|
||||
} else {
|
||||
die $o->get('data-dir') . " is not a directory or it is not writable";
|
||||
}
|
||||
}
|
||||
if ( $o->got('remove-data-dir') ) {
|
||||
$sql =~ s/DATA DIRECTORY='.*?'//;
|
||||
$sql =~ s/DATA DIRECTORY\s*=\s*'.*?'//;
|
||||
PTDEBUG && _d("removing data dir");
|
||||
}
|
||||
PTDEBUG && _d($sql);
|
||||
@@ -10440,6 +10484,21 @@ sub create_new_table {
|
||||
. "no longer need, then re-run the tool.\n";
|
||||
}
|
||||
|
||||
sub insert_data_directory {
|
||||
my ($sql, $data_dir) = @_;
|
||||
$sql =~ s/DATA DIRECTORY\s*=\s*'.*?'//;
|
||||
|
||||
my $re_ps=qr/(\/\*!50100 )?(PARTITION|SUBPARTITION)/;
|
||||
|
||||
if ($sql=~ m/$re_ps/) {
|
||||
my $insert_pos=$-[0];
|
||||
$sql = substr($sql, 0, $insert_pos - 1). " DATA DIRECTORY = '$data_dir' " .substr($sql, $insert_pos);
|
||||
} else {
|
||||
$sql .= " DATA DIRECTORY = '$data_dir' ";
|
||||
}
|
||||
return $sql;
|
||||
}
|
||||
|
||||
sub swap_tables {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(orig_tbl new_tbl Cxn Quoter OptionParser Retry tries stats);
|
||||
@@ -12828,7 +12887,7 @@ Default character set.
|
||||
|
||||
=item * D
|
||||
|
||||
dsn: database; copy: yes
|
||||
dsn: database; copy: no
|
||||
|
||||
Database for the old and new table.
|
||||
|
||||
@@ -12979,6 +13038,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
pt-online-schema-change 3.0.6
|
||||
pt-online-schema-change 3.0.7
|
||||
|
||||
=cut
|
||||
|
@@ -12457,15 +12457,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -12682,6 +12683,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -12718,7 +12759,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -3597,15 +3597,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -3822,6 +3823,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -3858,7 +3899,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4306,15 +4306,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4531,6 +4532,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4567,7 +4608,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
24
bin/pt-stalk
24
bin/pt-stalk
@@ -128,6 +128,7 @@ OPT_ERRS=0 # How many command line option errors
|
||||
OPT_VERSION="" # If --version was specified
|
||||
OPT_HELP="" # If --help was specified
|
||||
OPT_ASK_PASS="" # If --ask-pass was specified
|
||||
OPT_MYSQL_ONLY="" # If --mysql-only was specified
|
||||
PO_DIR="" # Directory with program option spec files
|
||||
|
||||
usage() {
|
||||
@@ -795,7 +796,10 @@ collect() {
|
||||
local d="$1" # directory to save results in
|
||||
local p="$2" # prefix for each result file
|
||||
|
||||
local mysqld_pid=$(_pidof mysqld | awk '{print $1; exit;}')
|
||||
local mysqld_pid=""
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
mysqld_pid=$(_pidof mysqld | awk '{print $1; exit;}')
|
||||
fi
|
||||
|
||||
if [ "$CMD_PMAP" -a "$mysqld_pid" ]; then
|
||||
if $CMD_PMAP --help 2>&1 | grep -- -x >/dev/null 2>&1 ; then
|
||||
@@ -824,7 +828,7 @@ collect() {
|
||||
fi
|
||||
|
||||
local tail_error_log_pid=""
|
||||
if [ "$mysql_error_log" ]; then
|
||||
if [ "$mysql_error_log" -a ! "$OPT_MYSQL_ONLY" ]; then
|
||||
log "The MySQL error log seems to be $mysql_error_log"
|
||||
tail -f "$mysql_error_log" >"$d/$p-log_error" &
|
||||
tail_error_log_pid=$!
|
||||
@@ -865,6 +869,7 @@ collect() {
|
||||
local strace_pid=$!
|
||||
fi
|
||||
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
ps -eaF >> "$d/$p-ps" &
|
||||
top -bn${OPT_RUN_TIME} >> "$d/$p-top" &
|
||||
|
||||
@@ -896,6 +901,7 @@ collect() {
|
||||
|
||||
$CMD_MYSQLADMIN $EXT_ARGV ext -i$OPT_SLEEP_COLLECT -c$cnt >>"$d/$p-mysqladmin" &
|
||||
local mysqladmin_pid=$!
|
||||
fi
|
||||
|
||||
local have_lock_waits_table=""
|
||||
$CMD_MYSQL $EXT_ARGV -e "SHOW TABLES FROM INFORMATION_SCHEMA" \
|
||||
@@ -915,7 +921,7 @@ collect() {
|
||||
fi
|
||||
|
||||
while [ $((curr_time - start_time)) -lt $OPT_RUN_TIME ]; do
|
||||
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
disk_space $d > $d/$p-disk-space
|
||||
check_disk_space \
|
||||
$d/$p-disk-space \
|
||||
@@ -949,6 +955,7 @@ collect() {
|
||||
(echo $ts; df -k) >> "$d/$p-df" &
|
||||
(echo $ts; netstat -antp) >> "$d/$p-netstat" &
|
||||
(echo $ts; netstat -s) >> "$d/$p-netstat_s" &
|
||||
fi
|
||||
(echo $ts; $CMD_MYSQL $EXT_ARGV -e "SHOW FULL PROCESSLIST\G") \
|
||||
>> "$d/$p-processlist" &
|
||||
if [ "$have_lock_waits_table" ]; then
|
||||
@@ -1414,6 +1421,7 @@ stalk() {
|
||||
# Start collecting, maybe.
|
||||
# ##################################################################
|
||||
log "Collect $ITER triggered"
|
||||
log "MYSQL_ONLY: $OPT_MYSQL_ONLY"
|
||||
|
||||
# Send email to whomever that collect has been triggered.
|
||||
if [ "$OPT_NOTIFY_BY_EMAIL" ]; then
|
||||
@@ -1424,7 +1432,6 @@ stalk() {
|
||||
|
||||
if [ "$OPT_COLLECT" ]; then
|
||||
local prefix="${OPT_PREFIX:-$(date +%F-%T | tr ':-' '_')}"
|
||||
|
||||
# Check if we'll have enough disk space to collect. Disk space
|
||||
# is also checked every interval while collecting.
|
||||
local margin="20971520" # default 20M margin, unless:
|
||||
@@ -2093,6 +2100,13 @@ Plugin writers should keep in mind that the file destination prefix currently
|
||||
in use should be accessed through the C<$prefix> variable, rather than
|
||||
C<$OPT_PREFIX>.
|
||||
|
||||
=item --mysql-only
|
||||
|
||||
Trigger only MySQL related captures, ignoring all others. The only not MySQL related
|
||||
value being collected is the disk space, because it is needed to calculate the
|
||||
available free disk space to write the result files.
|
||||
This option is useful for RDS instances.
|
||||
|
||||
=item --port
|
||||
|
||||
short form: -P; type: int
|
||||
@@ -2362,7 +2376,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
pt-stalk 3.0.6
|
||||
pt-stalk 3.0.7
|
||||
|
||||
=cut
|
||||
|
||||
|
@@ -797,15 +797,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -1022,6 +1023,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -1058,7 +1099,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -55,7 +55,7 @@ BEGIN {
|
||||
{
|
||||
package Percona::Toolkit;
|
||||
|
||||
our $VERSION = '3.0.6';
|
||||
our $VERSION = '3.0.7';
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
@@ -2137,6 +2137,7 @@ sub parse {
|
||||
}
|
||||
}
|
||||
|
||||
$self->{dsn_props} = \%final_props;
|
||||
return \%final_props;
|
||||
}
|
||||
|
||||
@@ -2319,6 +2320,20 @@ sub get_dbh {
|
||||
}
|
||||
}
|
||||
|
||||
if ($self->{dsn_props}->{D} && $self->{dsn_props}->{t}) {
|
||||
PTDEBUG && _d("DSN has a schema and table: $self->{dsn_props}->{D}.$self->{dsn_props}->{t}");
|
||||
PTDEBUG && _d("Trying to set the default charset for the connection");
|
||||
my (undef, $create_table) = eval { $dbh->selectrow_array("SHOW CREATE TABLE $self->{dsn_props}->{D}.$self->{dsn_props}->{t}") };
|
||||
|
||||
if ($create_table && $create_table =~ m/DEFAULT CHARSET=(\S+)\s*/) {
|
||||
PTDEBUG && _d("Detected table's character set: $1");
|
||||
PTDEBUG && _d("Executing: SET NAMES '$1'");
|
||||
$dbh->do("SET NAMES '$1'");
|
||||
} else {
|
||||
PTDEBUG && _d("Cannot get the default character set for the table");
|
||||
}
|
||||
}
|
||||
|
||||
PTDEBUG && _d('DBH info: ',
|
||||
$dbh,
|
||||
Dumper($dbh->selectrow_hashref(
|
||||
@@ -9200,15 +9215,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -9425,6 +9441,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -9461,7 +9517,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
@@ -10644,6 +10700,16 @@ sub sync_a_table {
|
||||
: $tbl_struct->{engine} eq 'InnoDB' ? 1
|
||||
: 0;
|
||||
|
||||
if ($tbl_struct->{charset}) {
|
||||
PTDEBUG && _d("Detected table's character set: $tbl_struct->{charset}");
|
||||
PTDEBUG && _d("Executing: SET NAMES '$tbl_struct->{charset}'");
|
||||
$src->{dbh}->do("SET NAMES '$tbl_struct->{charset}'");
|
||||
$src->{misc_dbh}->do("SET NAMES '$tbl_struct->{charset}'");
|
||||
$dst->{dbh}->do("SET NAMES '$tbl_struct->{charset}'");
|
||||
$dst->{misc_dbh}->do("SET NAMES '$tbl_struct->{charset}'");
|
||||
} else {
|
||||
PTDEBUG && _d("Cannot get the default character set for the table");
|
||||
}
|
||||
# Turn off AutoCommit if we're using transactions.
|
||||
$src->{dbh}->{AutoCommit} = !$use_txn;
|
||||
$src->{misc_dbh}->{AutoCommit} = !$use_txn;
|
||||
@@ -12977,6 +13043,6 @@ Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
pt-table-sync 3.0.6
|
||||
pt-table-sync 3.0.7
|
||||
|
||||
=cut
|
||||
|
@@ -4086,15 +4086,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4311,6 +4312,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4347,7 +4388,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -4504,15 +4504,16 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
);
|
||||
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -4729,6 +4730,46 @@ sub get_instance_id {
|
||||
}
|
||||
|
||||
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
|
||||
sub pingback {
|
||||
my (%args) = @_;
|
||||
my @required_args = qw(url instances);
|
||||
@@ -4765,7 +4806,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
8
config/deb/postinst
Normal file
8
config/deb/postinst
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -e /etc/percona-toolkit/.percona.toolkit.uuid ]; then
|
||||
mkdir -p /etc/percona-toolkit
|
||||
perl -e 'printf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;' > /etc/percona-toolkit/.percona.toolkit.uuid
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
@@ -42,6 +42,11 @@ find $RPM_BUILD_ROOT -type f -name 'percona-toolkit.pod' -exec rm -f {} ';'
|
||||
rm -rf $RPM_BUILD_ROOT/usr/share/perl5
|
||||
chmod -R u+w $RPM_BUILD_ROOT/*
|
||||
|
||||
%post
|
||||
if [ ! -e /etc/percona-toolkit/.percona.toolkit.uuid ]; then
|
||||
mkdir -p /etc/percona-toolkit
|
||||
perl -e 'printf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;' > /etc/percona-toolkit/.percona.toolkit.uuid
|
||||
fi
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
@@ -1,13 +1,7 @@
|
||||
Release Notes
|
||||
*************
|
||||
|
||||
v3.0.6 released 2017-12-20
|
||||
==========================
|
||||
|
||||
Release Notes
|
||||
*************
|
||||
|
||||
v3.0.6 released 2017-11-20
|
||||
v3.0.6 released 2018-01-04
|
||||
==========================
|
||||
|
||||
Percona Toolkit 3.0.6 includes the following changes:
|
||||
@@ -17,15 +11,23 @@ New Features
|
||||
* :jirabug:`PT-221`: Improve ``pt-table-sync`` support for ``MyRocks``
|
||||
* :jirabug:`PT-218`: ``pt-stalk`` now checks the ``RocksDB`` status
|
||||
* :jirabug:`PT-214`: ``pt-mysql-summary`` contains the ``RocksDB`` section
|
||||
* :jirabug:`PT-205`: ``pt-osc`` shows a message if trying to set the engine to ``rocksdb`` and ``binlog_format != row``
|
||||
* :jirabug:`PT-204`: ``pt-table-checksum`` skips ``RocksDB`` tables
|
||||
* :jirabug:`PT-205`: ``pt-osc`` shows a message if trying to set the engine to
|
||||
``rocksdb`` and ``binlog_format != row``.
|
||||
* :jirabug:`PT-204`: ``pt-table-checksum`` skips ``RocksDB`` tables.
|
||||
|
||||
Bug fixes
|
||||
Known Issues
|
||||
|
||||
* :jirabug:`PT-234`: The genaral log parser cannot handle timestamps which include time zones
|
||||
* :jirabug:`PT-238`: The information message implemented for :jirabug:`PT-204` has a typo when referring to the ``--ignore-engines`` parameter. This problem is planned to be fixed in the next release.
|
||||
* :jirabug:`PT-240`: It has been detected that the implementation of :jirabug:`PT-205` is not complete and ``pt-osc`` may fail when altering tables. This problem is planned to be fixed in the next release.
|
||||
|
||||
Bug Fixes
|
||||
|
||||
* :jirabug:`PT-234`: The general log parser cannot handle timestamps which include time zones
|
||||
* :jirabug:`PT-229`: ``pt-online-schema-change`` does not retry on a deadlock error when using ``Percona Server`` 5.7
|
||||
* :jirabug:`PT-225`: ``pt-table-checksum`` ignores generated columns
|
||||
|
||||
|
||||
|
||||
v3.0.5 released 2017-11-20
|
||||
==========================
|
||||
|
||||
|
@@ -48,6 +48,14 @@ eval {
|
||||
require HTTP::Micro;
|
||||
};
|
||||
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
|
||||
# Return the version check file used to keep track of
|
||||
# MySQL instance that have been checked and when. Some
|
||||
# systems use random tmp dirs; we don't want that else
|
||||
@@ -55,13 +63,6 @@ eval {
|
||||
# per system is the goal, so prefer global sys dirs first.
|
||||
{
|
||||
my $file = 'percona-version-check';
|
||||
my $home = $ENV{HOME} || $ENV{HOMEPATH} || $ENV{USERPROFILE} || '.';
|
||||
my @vc_dirs = (
|
||||
'/etc/percona',
|
||||
'/etc/percona-toolkit',
|
||||
'/tmp',
|
||||
"$home",
|
||||
);
|
||||
|
||||
sub version_check_file {
|
||||
foreach my $dir ( @vc_dirs ) {
|
||||
@@ -326,6 +327,49 @@ sub get_instance_id {
|
||||
return $name, $id;
|
||||
}
|
||||
|
||||
|
||||
# This function has been implemented solely to be able to count individual
|
||||
# Toolkit users for statistics. It uses a random UUID, no client info is
|
||||
# being gathered nor stored
|
||||
sub get_uuid {
|
||||
my $uuid_file = '/.percona-toolkit.uuid';
|
||||
foreach my $dir (@vc_dirs) {
|
||||
my $filename = $dir.$uuid_file;
|
||||
my $uuid=_read_uuid($filename);
|
||||
return $uuid if $uuid;
|
||||
}
|
||||
|
||||
my $filename = $ENV{"HOME"} . $uuid_file;
|
||||
my $uuid = _generate_uuid();
|
||||
|
||||
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
|
||||
print $fh $uuid;
|
||||
close $fh;
|
||||
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
sub _generate_uuid {
|
||||
return sprintf+($}="%04x")."$}-$}-$}-$}-".$}x3,map rand 65537,0..7;
|
||||
}
|
||||
|
||||
sub _read_uuid {
|
||||
my $filename = shift;
|
||||
my $fh;
|
||||
|
||||
eval {
|
||||
open($fh, '<:encoding(UTF-8)', $filename);
|
||||
};
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
my $uuid;
|
||||
eval { $uuid = <$fh>; };
|
||||
return if ($EVAL_ERROR);
|
||||
|
||||
chomp $uuid;
|
||||
return $uuid;
|
||||
}
|
||||
|
||||
# #############################################################################
|
||||
# Protocol handlers
|
||||
# #############################################################################
|
||||
@@ -387,7 +431,7 @@ sub pingback {
|
||||
my $client_content = encode_client_response(
|
||||
items => $items,
|
||||
versions => $versions,
|
||||
general_id => md5_hex( hostname() ),
|
||||
general_id => get_uuid(),
|
||||
);
|
||||
|
||||
my $client_response = {
|
||||
|
@@ -49,8 +49,11 @@ collect() {
|
||||
local d="$1" # directory to save results in
|
||||
local p="$2" # prefix for each result file
|
||||
|
||||
local mysqld_pid=""
|
||||
# Get pidof mysqld.
|
||||
local mysqld_pid=$(_pidof mysqld | awk '{print $1; exit;}')
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
mysqld_pid=$(_pidof mysqld | awk '{print $1; exit;}')
|
||||
fi
|
||||
|
||||
# Get memory allocation info before anything else.
|
||||
if [ "$CMD_PMAP" -a "$mysqld_pid" ]; then
|
||||
@@ -90,7 +93,7 @@ collect() {
|
||||
fi
|
||||
|
||||
local tail_error_log_pid=""
|
||||
if [ "$mysql_error_log" ]; then
|
||||
if [ "$mysql_error_log" -a ! "$OPT_MYSQL_ONLY" ]; then
|
||||
log "The MySQL error log seems to be $mysql_error_log"
|
||||
tail -f "$mysql_error_log" >"$d/$p-log_error" &
|
||||
tail_error_log_pid=$!
|
||||
@@ -141,6 +144,7 @@ collect() {
|
||||
|
||||
# Grab a few general things first. Background all of these so we can start
|
||||
# them all up as quickly as possible.
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
ps -eaF >> "$d/$p-ps" &
|
||||
top -bn${OPT_RUN_TIME} >> "$d/$p-top" &
|
||||
|
||||
@@ -179,6 +183,7 @@ collect() {
|
||||
# in the loop tends not to work very well.
|
||||
$CMD_MYSQLADMIN $EXT_ARGV ext -i$OPT_SLEEP_COLLECT -c$cnt >>"$d/$p-mysqladmin" &
|
||||
local mysqladmin_pid=$!
|
||||
fi
|
||||
|
||||
local have_lock_waits_table=""
|
||||
$CMD_MYSQL $EXT_ARGV -e "SHOW TABLES FROM INFORMATION_SCHEMA" \
|
||||
@@ -200,7 +205,7 @@ collect() {
|
||||
fi
|
||||
|
||||
while [ $((curr_time - start_time)) -lt $OPT_RUN_TIME ]; do
|
||||
|
||||
if [ ! "$OPT_MYSQL_ONLY" ]; then
|
||||
# We check the disk, but don't exit, because we need to stop jobs if we
|
||||
# need to exit.
|
||||
disk_space $d > $d/$p-disk-space
|
||||
@@ -241,6 +246,7 @@ collect() {
|
||||
(echo $ts; df -k) >> "$d/$p-df" &
|
||||
(echo $ts; netstat -antp) >> "$d/$p-netstat" &
|
||||
(echo $ts; netstat -s) >> "$d/$p-netstat_s" &
|
||||
fi
|
||||
(echo $ts; $CMD_MYSQL $EXT_ARGV -e "SHOW FULL PROCESSLIST\G") \
|
||||
>> "$d/$p-processlist" &
|
||||
if [ "$have_lock_waits_table" ]; then
|
||||
|
@@ -27,10 +27,11 @@ innodb_lock_wait_timeout = 3
|
||||
general_log
|
||||
general_log_file = genlog
|
||||
lower_case_table_names = 0
|
||||
slow-query-log = 1
|
||||
slow-query-log = 0
|
||||
slow-query-log-file = /tmp/PORT/data/slow.log
|
||||
log_slow_admin_statements = 1
|
||||
long_query_time = 0
|
||||
#character-set-server = utf8
|
||||
|
||||
# fkc test
|
||||
binlog_format = STATEMENT
|
||||
|
@@ -63,9 +63,9 @@ func TestExplain(t *testing.T) {
|
||||
versions := []string{
|
||||
"2.6.12",
|
||||
"3.0.15",
|
||||
"3.2.16",
|
||||
"3.4.7",
|
||||
"3.5.11",
|
||||
"3.2.19",
|
||||
"3.4.12",
|
||||
"3.6.2",
|
||||
}
|
||||
|
||||
samples := map[string]string{
|
||||
|
@@ -78,109 +78,12 @@ func TestFingerprints(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
dir := vars.RootPath + samples + "/doc/out/"
|
||||
dirExpect := vars.RootPath + samples + "/expect/fingerprints/"
|
||||
files, err := ioutil.ReadDir(dir)
|
||||
if err != nil {
|
||||
t.Fatalf("cannot list samples: %s", err)
|
||||
}
|
||||
|
||||
expects := map[string]string{
|
||||
"aggregate_2.6.12": "AGGREGATE coll a",
|
||||
"aggregate_3.0.15": "AGGREGATE coll a",
|
||||
"aggregate_3.2.16": "AGGREGATE coll a",
|
||||
"aggregate_3.4.7": "AGGREGATE coll a",
|
||||
"aggregate_3.5.11": "AGGREGATE coll a",
|
||||
"count_2.6.12": "COUNT coll",
|
||||
"count_3.0.15": "COUNT coll",
|
||||
"count_3.2.16": "COUNT coll",
|
||||
"count_3.4.7": "COUNT coll",
|
||||
"count_3.5.11": "COUNT coll",
|
||||
"count_with_query_2.6.12": "COUNT coll a",
|
||||
"count_with_query_3.0.15": "COUNT coll a",
|
||||
"count_with_query_3.2.16": "COUNT coll a",
|
||||
"count_with_query_3.4.7": "COUNT coll a",
|
||||
"count_with_query_3.5.11": "COUNT coll a",
|
||||
"delete_2.6.12": "REMOVE coll a,b",
|
||||
"delete_3.0.15": "REMOVE coll a,b",
|
||||
"delete_3.2.16": "REMOVE coll a,b",
|
||||
"delete_3.4.7": "REMOVE coll a,b",
|
||||
"delete_3.5.11": "REMOVE coll a,b",
|
||||
"delete_all_2.6.12": "REMOVE coll a,b",
|
||||
"delete_all_3.0.15": "REMOVE coll a,b",
|
||||
"delete_all_3.2.16": "REMOVE coll a,b",
|
||||
"delete_all_3.4.7": "REMOVE coll a,b",
|
||||
"delete_all_3.5.11": "REMOVE coll a,b",
|
||||
"distinct_2.6.12": "DISTINCT coll a,b",
|
||||
"distinct_3.0.15": "DISTINCT coll a,b",
|
||||
"distinct_3.2.16": "DISTINCT coll a,b",
|
||||
"distinct_3.4.7": "DISTINCT coll a,b",
|
||||
"distinct_3.5.11": "DISTINCT coll a,b",
|
||||
"explain_2.6.12": "EXPLAIN",
|
||||
"explain_3.0.15": "EXPLAIN",
|
||||
"explain_3.2.16": "EXPLAIN",
|
||||
"explain_3.4.7": "EXPLAIN",
|
||||
"explain_3.5.11": "EXPLAIN",
|
||||
"eval_2.6.12": "EVAL",
|
||||
"eval_3.0.15": "EVAL",
|
||||
"eval_3.2.16": "EVAL",
|
||||
"eval_3.4.7": "EVAL",
|
||||
"eval_3.5.11": "EVAL",
|
||||
"find_empty_2.6.12": "FIND coll",
|
||||
"find_empty_3.0.15": "FIND coll",
|
||||
"find_empty_3.2.16": "FIND coll",
|
||||
"find_empty_3.4.7": "FIND coll",
|
||||
"find_empty_3.5.11": "FIND coll",
|
||||
"find_2.6.12": "FIND coll k",
|
||||
"find_3.0.15": "FIND coll k",
|
||||
"find_3.2.16": "FIND coll k",
|
||||
"find_3.4.7": "FIND coll k",
|
||||
"find_3.5.11": "FIND coll k",
|
||||
"find_andrii_2.6.12": "FIND coll c,k,pad",
|
||||
"find_andrii_3.0.15": "FIND coll c,k,pad",
|
||||
"find_andrii_3.2.16": "FIND coll c,k,pad",
|
||||
"find_andrii_3.4.7": "FIND coll c,k,pad",
|
||||
"find_andrii_3.5.11": "FIND coll c,k,pad",
|
||||
"find_with_sort_2.6.12": "FIND coll b,c",
|
||||
"find_with_sort_3.0.15": "FIND coll b,c",
|
||||
"find_with_sort_3.2.16": "FIND coll b,c",
|
||||
"find_with_sort_3.4.7": "FIND coll b,c",
|
||||
"find_with_sort_3.5.11": "FIND coll b,c",
|
||||
"findandmodify_2.6.12": "FINDANDMODIFY coll a",
|
||||
"findandmodify_3.0.15": "FINDANDMODIFY coll a",
|
||||
"findandmodify_3.2.16": "FINDANDMODIFY coll a",
|
||||
"findandmodify_3.4.7": "FINDANDMODIFY coll a",
|
||||
"findandmodify_3.5.11": "FINDANDMODIFY coll a",
|
||||
"geonear_2.6.12": "GEONEAR coll",
|
||||
"geonear_3.0.15": "GEONEAR coll",
|
||||
"geonear_3.2.16": "GEONEAR coll",
|
||||
"geonear_3.4.7": "GEONEAR coll",
|
||||
"geonear_3.5.11": "GEONEAR coll",
|
||||
"getmore_2.6.12": "GETMORE coll",
|
||||
"getmore_3.0.15": "GETMORE coll",
|
||||
"getmore_3.2.16": "GETMORE coll",
|
||||
"getmore_3.4.7": "GETMORE coll",
|
||||
"getmore_3.5.11": "GETMORE coll",
|
||||
"group_2.6.12": "GROUP coll a,b",
|
||||
"group_3.0.15": "GROUP coll a,b",
|
||||
"group_3.2.16": "GROUP coll a,b",
|
||||
"group_3.4.7": "GROUP coll a,b",
|
||||
"group_3.5.11": "GROUP coll a,b",
|
||||
"insert_2.6.12": "INSERT coll",
|
||||
"insert_3.0.15": "INSERT coll",
|
||||
"insert_3.2.16": "INSERT coll",
|
||||
"insert_3.4.7": "INSERT coll",
|
||||
"insert_3.5.11": "INSERT coll",
|
||||
"mapreduce_2.6.12": "MAPREDUCE coll a",
|
||||
"mapreduce_3.0.15": "MAPREDUCE coll a",
|
||||
"mapreduce_3.2.16": "MAPREDUCE coll a",
|
||||
"mapreduce_3.4.7": "MAPREDUCE coll a",
|
||||
"mapreduce_3.5.11": "MAPREDUCE coll a",
|
||||
"update_2.6.12": "UPDATE coll a",
|
||||
"update_3.0.15": "UPDATE coll a",
|
||||
"update_3.2.16": "UPDATE coll a",
|
||||
"update_3.4.7": "UPDATE coll a",
|
||||
"update_3.5.11": "UPDATE coll a",
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
t.Run(file.Name(), func(t *testing.T) {
|
||||
doc := proto.SystemProfile{}
|
||||
@@ -193,9 +96,21 @@ func TestFingerprints(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("cannot create fingerprint: %s", err)
|
||||
}
|
||||
expect := expects[file.Name()]
|
||||
if !reflect.DeepEqual(got.Fingerprint, expect) {
|
||||
t.Errorf("fp.Fingerprint(doc) = %s, want %s", got.Fingerprint, expect)
|
||||
fExpect := dirExpect + file.Name()
|
||||
if tutil.ShouldUpdateSamples() {
|
||||
err := tutil.WriteJson(fExpect, got)
|
||||
if err != nil {
|
||||
fmt.Printf("cannot update samples: %s", err.Error())
|
||||
}
|
||||
}
|
||||
var expect Fingerprint
|
||||
err = tutil.LoadJson(fExpect, &expect)
|
||||
if err != nil {
|
||||
t.Fatalf("cannot load expected data %s: %s", fExpect, err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(got, expect) {
|
||||
t.Errorf("fp.Fingerprint(doc) = %s, want %s", got, expect)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@@ -118,6 +118,7 @@ func (self ExampleQuery) Db() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// ExplainCmd returns bson.D ready to use in https://godoc.org/labix.org/v2/mgo#Database.Run
|
||||
func (self ExampleQuery) ExplainCmd() bson.D {
|
||||
cmd := self.Command
|
||||
|
||||
@@ -162,8 +163,16 @@ func (self ExampleQuery) ExplainCmd() bson.D {
|
||||
}
|
||||
} else {
|
||||
for i := range cmd {
|
||||
// drop $db param as it is not supported in MongoDB 3.0
|
||||
if cmd[i].Name == "$db" {
|
||||
switch cmd[i].Name {
|
||||
// PMM-1905: Drop "ntoreturn" if it's negative.
|
||||
case "ntoreturn":
|
||||
// If it's non-negative, then we are fine, continue to next param.
|
||||
if cmd[i].Value.(int64) >= 0 {
|
||||
continue
|
||||
}
|
||||
fallthrough
|
||||
// Drop $db as it is not supported in MongoDB 3.0.
|
||||
case "$db":
|
||||
if len(cmd)-1 == i {
|
||||
cmd = cmd[:i]
|
||||
} else {
|
||||
|
@@ -275,9 +275,9 @@ func TestAvailableMetrics(t *testing.T) {
|
||||
versions := []string{
|
||||
"2.6.12",
|
||||
"3.0.15",
|
||||
"3.2.16",
|
||||
"3.4.7",
|
||||
"3.5.11",
|
||||
"3.2.19",
|
||||
"3.4.12",
|
||||
"3.6.2",
|
||||
}
|
||||
|
||||
samples := []string{
|
||||
@@ -345,7 +345,6 @@ func TestAvailableMetrics(t *testing.T) {
|
||||
if !reflect.DeepEqual(got, expect) {
|
||||
t.Errorf("s.Queries() = %#v, want %#v", got, expect)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
t.Run("cmd_metric", func(t *testing.T) {
|
||||
|
@@ -20,20 +20,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(222),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(15),
|
||||
"w" : NumberLong(6)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 385,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:08.661Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -42,11 +42,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 385,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:18.509Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -38,11 +38,11 @@
|
||||
},
|
||||
"responseLength" : 388,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:31.293Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -40,9 +40,9 @@
|
||||
"nreturned" : 8,
|
||||
"responseLength" : 370,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"ts" : ISODate("2017-10-15T01:54:41.948Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -24,26 +24,26 @@
|
||||
"locks" : {
|
||||
"Global" : {
|
||||
"acquireCount" : {
|
||||
"r" : NumberLong(6)
|
||||
"r" : NumberLong(4)
|
||||
}
|
||||
},
|
||||
"Database" : {
|
||||
"acquireCount" : {
|
||||
"r" : NumberLong(3)
|
||||
"r" : NumberLong(2)
|
||||
}
|
||||
},
|
||||
"Collection" : {
|
||||
"acquireCount" : {
|
||||
"r" : NumberLong(3)
|
||||
"r" : NumberLong(2)
|
||||
}
|
||||
}
|
||||
},
|
||||
"nreturned" : 8,
|
||||
"responseLength" : 370,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 2,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"ts" : ISODate("2017-10-15T01:54:52.564Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -14,20 +14,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(33),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(3),
|
||||
"w" : NumberLong(5)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 48,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:08.889Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -36,11 +36,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 44,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:18.673Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -32,11 +32,11 @@
|
||||
},
|
||||
"responseLength" : 47,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:31.529Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"responseLength" : 29,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COUNT",
|
||||
"execStats" : {
|
||||
"stage" : "COUNT",
|
||||
@@ -49,7 +49,7 @@
|
||||
"nCounted" : 10,
|
||||
"nSkipped" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:42.157Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"responseLength" : 29,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COUNT",
|
||||
"execStats" : {
|
||||
"stage" : "COUNT",
|
||||
@@ -50,7 +50,7 @@
|
||||
"nCounted" : 10,
|
||||
"nSkipped" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:52.844Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -16,20 +16,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(75),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(6),
|
||||
"w" : NumberLong(6)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 48,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:09.039Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -38,11 +38,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 44,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:18.838Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -34,11 +34,11 @@
|
||||
},
|
||||
"responseLength" : 47,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:31.756Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"responseLength" : 29,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COLLSCAN",
|
||||
"execStats" : {
|
||||
"stage" : "COUNT",
|
||||
@@ -71,7 +71,7 @@
|
||||
"docsExamined" : 10
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:42.350Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"responseLength" : 29,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COLLSCAN",
|
||||
"execStats" : {
|
||||
"stage" : "COUNT",
|
||||
@@ -72,7 +72,7 @@
|
||||
"docsExamined" : 10
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:53.078Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -14,19 +14,19 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(144)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(11)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:09.246Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -36,11 +36,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.034Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -31,11 +31,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:32.020Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -32,7 +32,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "DELETE",
|
||||
@@ -105,7 +105,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:42.612Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -35,7 +35,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "DELETE",
|
||||
@@ -108,7 +108,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:53.333Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -14,19 +14,19 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(396)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(12)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:09.463Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -36,11 +36,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.206Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -31,11 +31,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:32.281Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -32,7 +32,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "DELETE",
|
||||
@@ -105,7 +105,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:42.820Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -35,12 +35,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { a: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "DELETE",
|
||||
"nReturned" : 0,
|
||||
"executionTimeMillisEstimate" : 10,
|
||||
"executionTimeMillisEstimate" : 0,
|
||||
"works" : 9,
|
||||
"advanced" : 0,
|
||||
"needTime" : 8,
|
||||
@@ -108,7 +108,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:53.615Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -14,20 +14,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(362),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(6),
|
||||
"w" : NumberLong(9341)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 199,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:09.687Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -36,11 +36,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 206,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.380Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -32,11 +32,11 @@
|
||||
},
|
||||
"responseLength" : 209,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:32.523Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"responseLength" : 90,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { b: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
@@ -85,7 +85,7 @@
|
||||
"seenInvalidated" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:43.048Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"responseLength" : 90,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { b: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
@@ -86,7 +86,7 @@
|
||||
"seenInvalidated" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:53.874Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -8,22 +8,22 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"R" : NumberLong(0),
|
||||
"W" : NumberLong(42972)
|
||||
"R" : NumberLong(1234),
|
||||
"W" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"R" : NumberLong(0),
|
||||
"W" : NumberLong(8),
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(6)
|
||||
"R" : NumberLong(9876),
|
||||
"W" : NumberLong(6789),
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 53,
|
||||
"millis" : 43,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:09.890Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -31,11 +31,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 53,
|
||||
"millis" : 37,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.572Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -27,11 +27,11 @@
|
||||
},
|
||||
"responseLength" : 38,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 56,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:32.759Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -25,8 +25,8 @@
|
||||
},
|
||||
"responseLength" : 38,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 48,
|
||||
"ts" : ISODate("2017-10-15T01:54:43.273Z"),
|
||||
"millis" : 42,
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"responseLength" : 38,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 40,
|
||||
"ts" : ISODate("2017-10-15T01:54:54.085Z"),
|
||||
"millis" : 42,
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -15,17 +15,17 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(101),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(6),
|
||||
"w" : NumberLong(11)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"nreturned" : 1,
|
||||
"responseLength" : 583,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"type" : "COLLSCAN",
|
||||
"works" : 12,
|
||||
@@ -39,7 +39,7 @@
|
||||
"docsTested" : 10,
|
||||
"children" : [ ]
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:10.058Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -39,11 +39,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 379,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.722Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -32,11 +32,11 @@
|
||||
},
|
||||
"responseLength" : 364,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:32.931Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -28,10 +28,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"responseLength" : 328,
|
||||
"responseLength" : 329,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"ts" : ISODate("2017-10-15T01:54:43.427Z"),
|
||||
"millis" : 42,
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -29,10 +29,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"responseLength" : 329,
|
||||
"responseLength" : 328,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"ts" : ISODate("2017-10-15T01:54:54.257Z"),
|
||||
"millis" : 42,
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -12,17 +12,17 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(213),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(38),
|
||||
"w" : NumberLong(3)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 86,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"type" : "FETCH",
|
||||
"works" : 3,
|
||||
@@ -60,7 +60,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:10.277Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 86,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
"nReturned" : 2,
|
||||
@@ -80,7 +80,7 @@
|
||||
"matchTested" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:19.953Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -33,7 +33,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 172,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
"nReturned" : 2,
|
||||
@@ -81,7 +81,7 @@
|
||||
"seenInvalidated" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:33.179Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -31,7 +31,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 154,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { k: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
@@ -84,7 +84,7 @@
|
||||
"seenInvalidated" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:43.713Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -32,7 +32,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 154,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { k: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "FETCH",
|
||||
@@ -85,7 +85,7 @@
|
||||
"seenInvalidated" : 0
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:54.507Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -52,21 +52,21 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(298),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(5),
|
||||
"w" : NumberLong(50)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 20,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:10.474Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -75,7 +75,7 @@
|
||||
},
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 20,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
"nReturned" : 0,
|
||||
@@ -89,7 +89,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:20.111Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -73,7 +73,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 100,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
"nReturned" : 0,
|
||||
@@ -87,7 +87,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:33.358Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -71,7 +71,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 82,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "EOF",
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
@@ -86,7 +86,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:43.922Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -72,7 +72,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 82,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "EOF",
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
@@ -87,7 +87,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:54.693Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -12,21 +12,21 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(189),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(14),
|
||||
"w" : NumberLong(9)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 20,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:10.630Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -35,7 +35,7 @@
|
||||
},
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 20,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
"nReturned" : 0,
|
||||
@@ -49,7 +49,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:20.246Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -33,7 +33,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 100,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
"nReturned" : 0,
|
||||
@@ -47,7 +47,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:33.530Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -31,7 +31,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 82,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "EOF",
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
@@ -46,7 +46,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:44.129Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -32,7 +32,7 @@
|
||||
"nreturned" : 0,
|
||||
"responseLength" : 82,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "EOF",
|
||||
"execStats" : {
|
||||
"stage" : "EOF",
|
||||
@@ -47,7 +47,7 @@
|
||||
"isEOF" : 1,
|
||||
"invalidates" : 0
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:54.870Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -18,17 +18,17 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(508),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(19),
|
||||
"w" : NumberLong(38)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 108,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"type" : "SORT",
|
||||
"works" : 7,
|
||||
@@ -95,7 +95,7 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:10.817Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -41,7 +41,7 @@
|
||||
},
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 108,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "SORT",
|
||||
"nReturned" : 2,
|
||||
@@ -117,7 +117,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:20.410Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -37,7 +37,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 194,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
"stage" : "SORT",
|
||||
"nReturned" : 2,
|
||||
@@ -116,7 +116,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:33.762Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -35,7 +35,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 176,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { c: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "SORT",
|
||||
@@ -119,7 +119,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:44.423Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -36,7 +36,7 @@
|
||||
"nreturned" : 2,
|
||||
"responseLength" : 176,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"planSummary" : "IXSCAN { c: 1 }",
|
||||
"execStats" : {
|
||||
"stage" : "SORT",
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:55.111Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -25,20 +25,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(465)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(0),
|
||||
"w" : NumberLong(18)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 131,
|
||||
"millis" : 6,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:11.011Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -48,11 +48,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 131,
|
||||
"millis" : 0,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:20.581Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -44,11 +44,11 @@
|
||||
},
|
||||
"responseLength" : 116,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:34.011Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -44,7 +44,7 @@
|
||||
},
|
||||
"responseLength" : 116,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COLLSCAN",
|
||||
"execStats" : {
|
||||
"stage" : "UPDATE",
|
||||
@@ -84,7 +84,7 @@
|
||||
"docsExamined" : 3
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:44.656Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -40,7 +40,7 @@
|
||||
},
|
||||
"responseLength" : 116,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"planSummary" : "COLLSCAN",
|
||||
"execStats" : {
|
||||
"stage" : "UPDATE",
|
||||
@@ -80,7 +80,7 @@
|
||||
"docsExamined" : 3
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:55.391Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -16,20 +16,20 @@
|
||||
"numYield" : 0,
|
||||
"lockStats" : {
|
||||
"timeLockedMicros" : {
|
||||
"r" : NumberLong(1945),
|
||||
"w" : NumberLong(0)
|
||||
"r" : NumberLong(1234),
|
||||
"w" : NumberLong(4321)
|
||||
},
|
||||
"timeAcquiringMicros" : {
|
||||
"r" : NumberLong(10),
|
||||
"w" : NumberLong(10)
|
||||
"r" : NumberLong(9876),
|
||||
"w" : NumberLong(6789)
|
||||
}
|
||||
},
|
||||
"responseLength" : 1406,
|
||||
"millis" : 1,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:11.181Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -38,11 +38,11 @@
|
||||
}
|
||||
},
|
||||
"responseLength" : 1398,
|
||||
"millis" : 2,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:20.751Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
||||
|
@@ -34,11 +34,11 @@
|
||||
},
|
||||
"responseLength" : 1401,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 10,
|
||||
"millis" : 42,
|
||||
"execStats" : {
|
||||
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:34.270Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"allUsers" : [ ],
|
||||
"user" : ""
|
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"responseLength" : 1383,
|
||||
"protocol" : "op_command",
|
||||
"millis" : 13,
|
||||
"millis" : 42,
|
||||
"planSummary" : "GEO_NEAR_2DSPHERE { loc: \"2dsphere\" }",
|
||||
"execStats" : {
|
||||
"stage" : "LIMIT",
|
||||
@@ -2088,7 +2088,7 @@
|
||||
{
|
||||
"stage" : "FETCH",
|
||||
"nReturned" : 0,
|
||||
"executionTimeMillisEstimate" : 0,
|
||||
"executionTimeMillisEstimate" : 10,
|
||||
"works" : 5,
|
||||
"advanced" : 0,
|
||||
"needTime" : 4,
|
||||
@@ -2102,7 +2102,7 @@
|
||||
"inputStage" : {
|
||||
"stage" : "IXSCAN",
|
||||
"nReturned" : 0,
|
||||
"executionTimeMillisEstimate" : 0,
|
||||
"executionTimeMillisEstimate" : 10,
|
||||
"works" : 5,
|
||||
"advanced" : 0,
|
||||
"needTime" : 4,
|
||||
@@ -3557,7 +3557,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:44.873Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
@@ -35,12 +35,12 @@
|
||||
},
|
||||
"responseLength" : 1383,
|
||||
"protocol" : "op_msg",
|
||||
"millis" : 11,
|
||||
"millis" : 42,
|
||||
"planSummary" : "GEO_NEAR_2DSPHERE { loc: \"2dsphere\" }",
|
||||
"execStats" : {
|
||||
"stage" : "LIMIT",
|
||||
"nReturned" : 10,
|
||||
"executionTimeMillisEstimate" : 10,
|
||||
"executionTimeMillisEstimate" : 0,
|
||||
"works" : 139,
|
||||
"advanced" : 10,
|
||||
"needTime" : 128,
|
||||
@@ -53,7 +53,7 @@
|
||||
"inputStage" : {
|
||||
"stage" : "PROJECTION",
|
||||
"nReturned" : 10,
|
||||
"executionTimeMillisEstimate" : 10,
|
||||
"executionTimeMillisEstimate" : 0,
|
||||
"works" : 139,
|
||||
"advanced" : 10,
|
||||
"needTime" : 128,
|
||||
@@ -3558,7 +3558,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts" : ISODate("2017-10-15T01:54:55.701Z"),
|
||||
"ts" : ISODate("2020-01-01T00:00:00Z"),
|
||||
"client" : "127.0.0.1",
|
||||
"appName" : "MongoDB Shell",
|
||||
"allUsers" : [ ],
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user