Committer: vsukhanov
LJSUP-7646: do not cache db connection in LJ::User object. DBI::Role's cache is enough.U trunk/cgi-bin/LJ/User.pm
Modified: trunk/cgi-bin/LJ/User.pm =================================================================== --- trunk/cgi-bin/LJ/User.pm 2010-12-17 08:29:46 UTC (rev 17961) +++ trunk/cgi-bin/LJ/User.pm 2010-12-17 08:43:46 UTC (rev 17962) @@ -388,7 +388,8 @@ # user is writable, else 0 sub writer { my $u = shift; - return LJ::get_cluster_master($u) || 0; + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u); + return $dbcm || 0; } sub userpic { @@ -585,7 +586,7 @@ return $LJ::CACHE_CLUSTER_IS_INNO{$u->{clusterid}} if defined $LJ::CACHE_CLUSTER_IS_INNO{$u->{clusterid}}; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my (undef, $ctable) = $dbcm->selectrow_array("SHOW CREATE TABLE log2"); die "Failed to auto-discover database type for cluster \#$u->{clusterid}: [$ctable]" @@ -599,7 +600,7 @@ my $u = shift; return 1 unless $u->is_innodb; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->begin_work; @@ -613,7 +614,7 @@ my $u = shift; return 1 unless $u->is_innodb; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->commit; @@ -627,7 +628,7 @@ my $u = shift; return 1 unless $u->is_innodb; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->rollback; @@ -641,7 +642,7 @@ sub prepare { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->prepare(@_); @@ -659,7 +660,7 @@ my $uid = $u->{userid}+0 or croak "Database update called on null user object"; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; $query =~ s!^(\s*\w+\s+)!$1/* uid=$uid */ !; @@ -676,7 +677,7 @@ sub selectrow_array { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $set_err = sub { @@ -698,7 +699,7 @@ sub selectcol_arrayref { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->selectcol_arrayref(@_); @@ -713,7 +714,7 @@ sub selectall_hashref { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->selectall_hashref(@_); @@ -727,7 +728,7 @@ sub selectall_arrayref { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->selectall_arrayref(@_); @@ -741,7 +742,7 @@ sub selectrow_hashref { my $u = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; my $rv = $dbcm->selectrow_hashref(@_); @@ -767,7 +768,7 @@ my $u = shift; my $text = shift; - my $dbcm = $u->{'_dbcm'} ||= LJ::get_cluster_master($u) + my $dbcm = $u->{'_dbcm'} || LJ::get_cluster_master($u) or croak $u->nodb_err; return $dbcm->quote($text); @@ -1185,7 +1186,7 @@ return undef unless $nodeid =~ /^\d+$/; return undef unless $u->writer; - my $dbcm = $u->{_dbcm}; + my $dbcm = $u->writer; my $memkey = [$u->{'userid'}, "talk2:$u->{'userid'}:$nodetype:$nodeid"]; my $lockkey = $memkey->[1]; @@ -1211,7 +1212,7 @@ my ($u, $errref, $sql, @args) = @_; return undef unless $u->writer; - my $dbcm = $u->{_dbcm}; + my $dbcm = $u->writer; my $memkey = [$u->{'userid'}, "log2lt:$u->{'userid'}"]; my $lockkey = $memkey->[1];