News for hackers. Stuff that matters.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by geuis on Tuesday February 01, 2011 @07:05PM (#2168141)
I keep hearing about this coming up, yet no one ask talked about why the data is irretrievable.

What it implies is that the internal tool(s) that the support staff uses was designed to do deletion instead of status changes. I imagine they have a web interface that fires off some backend script which a) runs sql deletes on an account ID and all tables and b) fires off scripts that physically deletes all photos across all servers.

Taking those implications in hand, it points to an incredibly poorly designed system for account management. Some years ago, there was an internal planning meeting where a decision was made to do this. Some people objected and were overruled. The ramifications of that project manager are still sticking it to people to this day.

I have a hard time believing that Flickr would have purposely engineered their systems in the manner I've described. Not impossible, but unlikely.

So I think its more likely that the data is still there, but that customer service has no method to resurrect it. Its probably a mix of internal policies and the lack of devoting a couple of engineers to fix the problem that is causing all of this.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by potatolicious on Tuesday February 01, 2011 @07:13PM (#2168164)
> "some backend script which a) runs sql deletes on an account ID and all tables and b) fires off scripts that physically deletes all photos across all servers."

Neither should happen. You never actually delete rows from your tables. You mark them as deleted, sure, but the data needs to be able to come back. Space is cheap, there are simply very few cases where outright deletion from a DB table is warranted.

I have a hard time believing Flickr would make a mistake like this. I agree with you - odds are if they actually let an engineer loose on this problem it'll be licked with a DB backfill in 20 minutes.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by abscondment on Tuesday February 01, 2011 @08:53PM (#2168503)
I bet that in cases of copyright infringement a logical delete isn't legally sufficient. Sure, you can leave the database pointers in place... but you're going to need to actually remove the infringing content. In that case, at least, a true delete tool would be needed. Like any Internet discussion about copyrights or other people's backend scripts, this is all purely speculative.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by InclinedPlane on Tuesday February 01, 2011 @09:54PM (#2168711)
I don't buy it. Simply making infringing data unavailable has to be legally sufficient, except in cases involving removing secret or confidential data (which would likely require a court case) there's no harm in having the data merely inaccessible. Moreover, it simply must be the case that this is how it works in practice.

Consider how deep this rabbit hole goes. If expunging any copies of copyrighted data were strictly necessary, then:

What of data existing on backup media? Should those be re-hydrated, the target data expunged, and then recreated in abridged form?

What of data existing in various content caches (such as memcached)? Should all of those systems be flushed of any possible contaminant?

What of the actual data on physical media? Deleting a file on any modern form of media does not expunge the data, it merely unlinks the location of the data on disk from the file system directory. It might be necessary, depending on filesystem and drive type, to scan all of the unused sectors on an entire disk to find out if the target data or any part of it existed.

As you see, quite quickly you get into absurdities. Nobody goes to that much trouble to delete merely copyright infringing data.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by enjo on Tuesday February 01, 2011 @09:55PM (#2168713)
I can't speak for Flickr, but I can tell you that one of their larger competitors simply does a logical delete. That seems to take care of any legal obligation.

I should note that this not true in the case of child porn. Once the feds give them the signal that is completely purged.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by phaylon on Wednesday February 02, 2011 @08:12AM (#2170084)
Also, depending on the country there might be specific privacy laws that matter.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by T-hawk on Wednesday February 02, 2011 @12:45PM (#2171170)
> You never actually delete rows from your tables. You mark them as deleted, sure, but the data needs to be able to come back. Space is cheap, there are simply very few cases where outright deletion from a DB table is warranted.

This comes with a cost, and it's not a small one. Every single query that ever touches this table, in every single piece of code owned by the company, written or maintained by every single developer (consultant or transient or offshore, none of which ever got training sessions on this requirement) needs to be enhanced to respect "where isDeleted <> true".

It's well understandable if the expected cost to recover after the fact from an occasional issue is smaller than the cost of implementing and maintaining that in the first place.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by derobert on Wednesday February 02, 2011 @01:19PM (#2171342)
No, that's what views are for.

A sane approach would be to do all your table access via views, and the view definitions have the 'where is_deleted = 0' or whatever. Then your database handles it.

Updates to the view work as well, in pretty much every database system, including MySQL even.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by T-hawk on Thursday February 03, 2011 @12:33PM (#2175626)
That just shifts the problem. Every piece of code and every developer now needs to know to hit that view rather than directly hit the table. Except the code that actually deals with deleting and undeleting which has to hit the table directly (or another view or sp.) And you still have the original problem in writing and managing the views themselves - every developer writing or maintaining one of those views needs to know to respect "where is_deleted = 0".

Using views adds a layer of abstraction. That's often a good idea and a step in the right direction, but does come at the cost of increasing the overall complexity of the system. It's an incremental step to the positive, but no revolutionary solution.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by smackfu on Wednesday February 02, 2011 @12:59PM (#2171241)
You never delete, and then people bitch that they can't really leave the service. See: Facebook.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by citadrianne on Tuesday February 01, 2011 @09:24PM (#2168604)
It sounds like Flickr is throwing engineers at the problem now--they responded with a statement which is in the updated post:

http://www.observer.com/2011/tech/flickr-accidentally-delete...

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by mmaunder on Tuesday February 01, 2011 @09:33PM (#2168632)
"..but that customer service has no method to resurrect it".

Having seen this kind of effect from a brain drain in the past, I think you're exactly right. Software needs love to survive and this is what it looks like when software and a company becomes unloved.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by theDoug on Tuesday February 01, 2011 @08:57PM (#2168519)
Indeed. I'd have sympathy for Flickr if this story didn't come up almost monthly in the last few years. Between this and the account deletions of those who spoke loudly over Flickr's other account deletions, more and more Flickr is becoming a hostile system.

The lack of a retrieval system could be from a lack of Yahoo wishing to invest in upgrades to the platform in general. The last few years have seen few changes for users beyond geotagging and tagging persons, and competitors (free and otherwise) have stepped far ahead in terms of personalisation and galleries.

I'm very curious to see if Flickr turns into another 'Delicious' situation in a couple years.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by InclinedPlane on Tuesday February 01, 2011 @09:59PM (#2168730)
I think that danger is very real. I used to be a Flickr Pro member but I've been taking fewer pictures the last few years (for several reasons) and can't justify the Pro account anymore. However, the side affect of that is that now some of my older pictures are less accessible and my old photo sets aren't browseable. At least to me this seems like a bad business plan for Flickr, especially amidst an abundance of rabid competition.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by dtc on Wednesday February 02, 2011 @03:38AM (#2169561)
Could you point me to some of the rabid competition that might offer a similar pricing model?
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by InclinedPlane on Wednesday February 02, 2011 @05:07AM (#2169723)
Flickr's main competition isn't with services that have feature parity with them, it's more with the growing list of free image sharing sites. Imgur, twitpic, facebook, picassa web, even dropbox. Flickr's value add is rapidly becoming smaller and smaller, which could very easily undermine their business model.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by xyzzyb on Wednesday February 02, 2011 @09:29AM (#2170317)
Exactly. I used to have a flickr account but since dropbox/facebook came along if I want to share anything it goes in dropbox (public) or facebook (public, but it's easy for my family to see the pics).
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by rtghnyhjm on Tuesday February 01, 2011 @07:14PM (#2168172)
It's an engineering decision - Flikr has to host a large amount of data for very little cost, since most users aren't paying. Space isn't cheap by the Petabyte!

The design for a system where you had multiple redundant copies of all the data and could roll back any changes to the data set is different - and would cost a lot more.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by sdizdar on Tuesday February 01, 2011 @07:24PM (#2168212)
Here is what I don't understand. They have multiple redundant copies in case of unlikely scenario of disaster, but they have no copies or protection in case of quite likely scenario of operator error. This seems backward to me.

EDIT: I don't believe that Yahoo! Flickr does not have a way to recover these things. Or I'm completely wrong.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by InclinedPlane on Tuesday February 01, 2011 @10:23PM (#2168804)
I think it's likely that Flickr has a way to recover the data but the front line support personnel don't, and they don't want to have some dev spend a few hours to fix a single customer's problem, even if it was Flickr's mistake.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by hrktb on Wednesday February 02, 2011 @02:10AM (#2169418)
Reverting a full db should be straightforward (stop the db server and revert a dump).

For a single account it's more of a pita.

Retrieving all the datas associated with one account, put it in a format readable from the production environment and recommit all the changes while dealing with the potential errors and inconstencies seems quite a huge deal.

Messing unrelated data in the process would also be a nightmare.

Of course, not deleting anything from the start wouod be the way.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by gaius on Wednesday February 02, 2011 @06:19AM (#2169848)
It's trivial in Oracle, just do a Flashback Query. You would just need to support that in whatever front end interface the customer support people use.
Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by callmeed on Tuesday February 01, 2011 @11:56PM (#2169048)
Are you saying that a freemium service should never delete data—or that a customer service rep shouldn't be able to do it?

I can see why Flickr might engineer things this way. Most of their users don't pay (granted, this guy was a pro user). Deleting images when an account is deleted saves money.

Re:Flickr Accidentally Deletes a User's 4,000 Photos and Can... by random42 on Wednesday February 02, 2011 @01:22AM (#2169300)
How should the deletion system be designed?