News for hackers. Stuff that matters.
Re:Instagram kept deleted photos and messages on its servers... by holidayacct on Friday August 14, 2020 @10:28AM (#24158369)
Whenever someone publishes an article like this, I want them to find out what its like when you reach the threshold of 100000 individual delete requests per second which ends up being five million actual deletes when you factor in all of the associated references to the item being deleted and its metadata. Then I want them to find out what happens when you have to propagate those deletes across geographically distributed data centers, clear a geographically distribute cache and do it in a way that minimizes user facing errors and guarantees consistency. Finally you have to also ensure that deletions don't effect any business facing applications since ad revenue and metrics are all generated from certain types of data.

These people imagine you just rm -rf a file and run a few SQL queries, you literally can't just delete data. I've worked at the scale of Instagram before. Literally nothing works like that at that scale, the person who wrote that article should have called up someone from Instagram and had them explain at a really high level how complicated deleting data is at large scale.

Re:Instagram kept deleted photos and messages on its servers... by ctvo on Friday August 14, 2020 @11:22AM (#24159056)
Hi. I also work at this scale. It doesn't take a year to delete the data. Be upfront with your users:

'Your delete request is being processed. No one will be able to see this item though it may take up to three days for the data to be completely removed from our servers'

This is not a technical challenge, it's an issue of priorities and Facebook doesn't prioritize privacy. They were able to release a TikTok clone in a few months, but can't solve deleting data?

Re:Instagram kept deleted photos and messages on its servers... by throw_me_2020 on Friday August 14, 2020 @12:00PM (#24159629)
Deletion is very much a technical/organizational challenge.

Imagine some engineer writing some feature you've never heard of and they decide they need data in a different format. They write a job to do this.

Now imagine that job somehow has a bug which prevents the deletion system from understanding that copy exists. That bug could be non-obvious to find.

Re:Instagram kept deleted photos and messages on its servers... by parliament32 on Friday August 14, 2020 @12:40PM (#24160094)
>It doesn't take a year to delete the data

It does if you have cold backups that take a year to cycle out. They're often offsite, compressed, and incrementally hashed so finding individual items and removing them is really hard -- you're much better off just waiting for them to expire, and a year isn't an unreasonable amount of time.

Re:Instagram kept deleted photos and messages on its servers... by slg on Friday August 14, 2020 @01:10PM (#24160470)
The article specifically states this data was downloaded using the "Download Your Information tool on Instagram". The undeleted data wasn't from a cold backup or any backup, it was still on production systems.
Re:Instagram kept deleted photos and messages on its servers... by parliament32 on Friday August 14, 2020 @01:47PM (#24160916)
If this is a GDPR "right to access" request, which most "download your information" tools are, then backups are included. See https://law.stackexchange.com/questions/27625/gdpr-complianc...
Re:Instagram kept deleted photos and messages on its servers... by slg on Friday August 14, 2020 @02:27PM (#24161470)
Doesn't that link show that the how backups related to GDPR is still up for debate? The accepted answer that says they are included has 3 upvotes and there is an answer that says no they aren't included that has 2 upvotes. Either way, the legal requirement is a separate issue from what Instagram is actually doing. If that download tool is automated, I am rather confident in saying that it isn't combing through year old backups to get data.
Re:Instagram kept deleted photos and messages on its servers... by parliament32 on Friday August 14, 2020 @03:33PM (#24162288)
Ever wonder why "download my data" usually takes a few hours/days on most services before you receive the download link in your email? I promise you compiling the production data doesn't take that long.

Backups are covered under GDPR, although when a user requests erasure you can say "your data will be rotated out in X months/years". Not sure how this applies to access, but I assume it's similar: https://ico.org.uk/for-organisations/guide-to-data-protectio...

Re:Instagram kept deleted photos and messages on its servers... by chrisandchris on Friday August 14, 2020 @03:21PM (#24162143)
I‘m not sure whether (if any) you habe cold backups at that scale. I imagine cost of the backup would be way to high.
Re:Instagram kept deleted photos and messages on its servers... by superficialnerd on Friday August 14, 2020 @01:34PM (#24160764)
That's what, being upfront about something makes users to trust them but it's Facebook we're talking about.
Re:Instagram kept deleted photos and messages on its servers... by loriverkutya on Friday August 14, 2020 @10:58AM (#24158736)
Whenever I see someone write a comment like this, I want him to understand, that don't say deleted, if it's not deleted.

Also, if it not works at scale, don't tell your users that it works and pretend it works as you communicated.

I find really bothering, when engineers trying to hide behind the "it's a very complicated process in the background, so we just say we have done something, when the truth is, it is in progress. It's not a user error, when you see the word "deleted" you assume, your picture is gone, it's your error, if you state it's gone, while it is not.

Re:Instagram kept deleted photos and messages on its servers... by holidayacct on Friday August 14, 2020 @11:31AM (#24159195)
I agree with you completely, no one should be hiding behind "It's a really complicated process". They need to actually sit down and come up with a concrete plan on how to tackle the problem then communicate that we have a plan in place its been added to the roadmap and we are going to tackle it in Q3 20XX.
Re:Instagram kept deleted photos and messages on its servers... by foepys on Friday August 14, 2020 @11:28AM (#24159146)
Developers are also falling into this trap regularly with distributed systems. MongoDB famously claimed to be "eventually consistent" but in reality failed to deliver on this promise. The MongoDB authors then tried to weasel their way out of it the same way you are describing and many developers rightfully called them out on it.
Re:Instagram kept deleted photos and messages on its servers... by notyourwork on Friday August 14, 2020 @01:09PM (#24160449)
Bingo! Its the same as saying we take your username and password and let you login. Do you or do you not? Its a boolean feature that either does or doesn't do what you say it does. Deletion can be complicated and if it is provide that indication to your users. Software is about setting the correct expectations, otherwise we leave users to interpret written language which we all know leaves room for misinterpretation due to all sorts of complexities with the way humans communicate with one another.
Re:Instagram kept deleted photos and messages on its servers... by stevievee on Friday August 14, 2020 @10:56AM (#24158713)
This rationalization isn't acceptable to me. They have gladly set up the infrastructure to handle a high volume of new information and it should go both ways.
Re:Instagram kept deleted photos and messages on its servers... by anon73044 on Friday August 14, 2020 @11:02AM (#24158812)
should See RFC 2119, "should" usually denotes something as "optional" But really, almost zero companies build software around data in such a way that the data could and will disappear at any moment.
Re:Instagram kept deleted photos and messages on its servers... by paulryanrogers on Friday August 14, 2020 @11:14AM (#24158970)
Their comment wasn't an RFC. Right to be forgotten and GDPR are not suggestions.

Regardless, in practice, billion dollar companies have the resources to ensure 'delete' isn't actually "partially hide for years/forever". With proper surrogate IDs they could even preserve a minimal amount of meta such as tombstone IDs to ensure all first and third party systems are in compliance.

Re:Instagram kept deleted photos and messages on its servers... by Traster on Friday August 14, 2020 @06:58PM (#24164252)
Woe is me. My poor little (looks at notes) trillon dollar company can't cope! Instragram seems to be able to cope with 100000 new photos per second - that they can do. Across geographies and data centres. Ever seen a user facing error due to a newly uploaded photo?

No one expects you to just rm -rf. They just expect you to expect the same effort to remove the file that they put in to create the file. It's not like the file got propogated to 10 different data centres by accident. There was a decision that an uploda needed to be everywhere in 5 seocnds and a deletion was an advisory hint that could be ignored for a year.

Re:Instagram kept deleted photos and messages on its servers... by endtime on Friday August 14, 2020 @11:39AM (#24159334)
Google has an internal standard for how long it takes to wipe out user data after a deletion request, and compliance with it is taken very seriously. It's a lot less than 1 year.
Re:Instagram kept deleted photos and messages on its servers... by jeffbee on Friday August 14, 2020 @12:53PM (#24160245)
I think this points to (one of) the significant flaws in the cult of the "minimal viable product". By eliding up-front design tasks, you may implement something in which complying with the law is impossible. Data retention compliance has to be designed in from the beginning, or it might be technically infeasible to add it later.
Re:Instagram kept deleted photos and messages on its servers... by nthj on Friday August 14, 2020 @01:25PM (#24160661)
I think this is why you need a very senior engineer overseeing your MVP.

Before MVPs were championed, companies would create a full-fledged project management suite with 50 database models and release it to crickets.

An MBA and a junior engineer define an MVP as “You can log in, and add todo lists and check them off.”

A senior engineer defines that same MVP as “You can log in, add todo lists, check them off, delete your account, and if the server crashes or we’re hacked, we have backups for 30 days.”

Or in other words with an MVP you still need to complete the 80% of the iceberg the MBA and junior engineer can’t see, but you don’t build the whole iceberg at once.

Re:Instagram kept deleted photos and messages on its servers... by notacoward on Friday August 14, 2020 @05:52PM (#24163747)
...and I do not believe for one second that they have never discovered a copy of data lying around somewhere after they thought it was deleted. The choice is to admit it, or lie about it.
Re:Instagram kept deleted photos and messages on its servers... by jacquesm on Friday August 14, 2020 @07:29PM (#24164483)
It has actually happened and they did come clean about it. Some data was discovered in log files that shouldn't have been there. They owed up and fixed it pronto even if the chances that the data was leaked outside of Google were nil. There is plenty wrong with Google, but that isn't one of those.
Re:Instagram kept deleted photos and messages on its servers... by dhdhhdd on Friday August 14, 2020 @11:42AM (#24159370)
If you can insert... for sure you can delete? It doesn't take days for your picture to show up.

Sure, eventual consistency and replication and distributed storage is hard.

Alternative approach: encrypt at rest, delete encryption key. It would require extra resources for sure, but if privacy was a concern... ;-) (and then have a reasonable expiry on your CDN if you use one).

(of course then we can argue that deleting the encryption key may be difficult too, for the same reasons)

Re:Instagram kept deleted photos and messages on its servers... by jandrewrogers on Friday August 14, 2020 @11:54AM (#24159546)
The cost of insert and delete is massively asymmetrical. This is an intentional and fundamental architectural decision in all of our data infrastructure and built into the data structures and algorithms that are used. Not only does “delete optimized” data infrastructure not exist, in many cases we don’t have good computer science for how you would even design such a thing while having good performance for all the other operations.

People that suggest using encryption and throwing away the key have not thought through the implications of that approach. It scales very poorly and therefore is not suitable for most practical systems. There are good reasons “obvious” solutions like this are not used.

Re:Instagram kept deleted photos and messages on its servers... by mtnGoat on Friday August 14, 2020 @12:24PM (#24159892)
I would say a system that can't effectively delete also scales poorly. No?
Re:Instagram kept deleted photos and messages on its servers... by jandrewrogers on Friday August 14, 2020 @12:42PM (#24160115)
It depends on the definition of “delete”. Removing a record from a data model scales just fine, and is how it has always been defined in database systems. Making that record physically unrecoverable from any hardware in the broader system is extraordinarily expensive for fundamental technical reasons. Traditionally “delete” has always meant the former in all systems, and physical deletion is deferred to a point in the future when either the an opportunity arises to do it inexpensively or the cost becomes acceptable. There is a value in recovering the resources consumed by the deleted record but it comes at a very high cost.

If you change the definition of “delete” to mean unrecoverable physical deletion, then sure, it scales poorly. But it is a bit like redefining “fast car” to “can travel faster than Mach 5” — technically a valid as a redefinition while completely ignoring the engineering realities of what a car can do.

Re:Instagram kept deleted photos and messages on its servers... by colejohnson66 on Sunday August 16, 2020 @08:57PM (#24182757)
You’re right. Maybe the technical definition means altering a record to say DELETE=TRUE, but the widely used definition means unrecoverable, and that’s what matters.
Re:Instagram kept deleted photos and messages on its servers... by danShumway on Friday August 14, 2020 @03:32PM (#24162273)
It's not a redefinition at all!

Actual deletion is what Facebook told us they did; that's what everyone assumed when they said they were complying with GDPR. This is like advertising a car as 'faster than Mach 5', and then when people call you out for lying, saying, "well, 'faster' is a relative term."

This kind of crap is exactly why people don't trust Facebook. It's not because people are paranoid, it's because Facebook systematically creates expectations in their advertising and public releases that they're acting responsibly, and then acts like they're the victim of unfortunate circumstances and misunderstanding whenever they get called out.

If three weeks ago a tech journalist had written an article saying, "Facebook will fully delete your data when you ask", no one at Facebook would have been reaching out to that journalist saying, "Oh, in the interest of preventing misunderstanding, we don't actually delete the data, we just mark it to be ignored." But now that they've been caught, now it's just a big misunderstanding by people who don't understand database architecture.

When companies tell the public that they're doing something, it is reasonable for the general public to assume that they're referring to the commonly understood definitions of the words they use.

Re:Instagram kept deleted photos and messages on its servers... by jacquesm on Friday August 14, 2020 @07:26PM (#24164472)
I find it very interesting that given a chance to hover up a billion records we see no technical challenge at all but when asked to get rid of them suddenly you're demanding unobtanium.

If you can't reliably get rid of the data you administer, don't collect it in the first place.

Re:Instagram kept deleted photos and messages on its servers... by tgsovlerkhgsel on Saturday August 15, 2020 @08:56AM (#24168521)
Just because it's hard doesn't make it optional. If you operate at the scale of Instagram, yes, it becomes very hard, but the companies typically have both the revenues and expert staffing to do it.

And if they don't, they're mismanaged and need to allocate more resources to it, because it's illegal not to, for good reason.

Re:Instagram kept deleted photos and messages on its servers... by justwalt on Friday August 14, 2020 @10:35AM (#24158453)
I’m hesitant to think they just couldn’t figure out how to make it work. Giving that company the benefit if the doubt seems like a bad idea.
Re:Instagram kept deleted photos and messages on its servers... by s_dev on Friday August 14, 2020 @11:07AM (#24158862)
> you literally can't just delete data

You literally can.

You can't remove data that you don't control though e.g. Removing embarrassing pictures from the internet. However if you control the server you control the data. I can appreciate that it might not be as simple as a unix command but it is a single letter in CRUD. It's fundamental.

Re:Instagram kept deleted photos and messages on its servers... by soamv on Friday August 14, 2020 @01:11PM (#24160482)
I don't think people understand the vastness of resources that FB and Instagram have at their disposal. This is not a particularly hard problem. Yes it's not a simple SQL query. But they do solve it -- in fact this was a bug that they have already fixed.
Re:Instagram kept deleted photos and messages on its servers... by GoodJokes on Friday August 14, 2020 @10:36AM (#24158457)
Whenever someone writes a comment like this complaining that something is too hard I always want to remind them that that isn’t an excuse.
Re:Instagram kept deleted photos and messages on its servers... by kuschku on Friday August 14, 2020 @10:50AM (#24158636)
They've got 30 days to delete data, there's no excuse not to manage it within 30 days.

Also, you're saying they intentionally built a software stack without even thinking about how to obey the law (the 30-day deletion requirement existed even before the GDPR, since 1996 even, just with lower fines)

I hope in a few years this case will be taught in school just like the Therac case is being taught right now.

Re:Instagram kept deleted photos and messages on its servers... by holidayacct on Friday August 14, 2020 @11:02AM (#24158807)
It's not that simple, some of these companies have tech stacks that are run-a-way trains written by people who had good intentions but wrote their code and built their infrastructure in a way that was meant for 1/50th of the traffic they currently have. I don't know anything about instagram's infrastructure but what I can tell you for certain is that every one of these companies has legacy infrastructure and code that keeps them from being able to meet all legal requirements. You can't just make a blanket statement that they don't have an excuse.
Re:Instagram kept deleted photos and messages on its servers... by s1t5 on Friday August 14, 2020 @11:11AM (#24158934)
> I don't know anything about instagram's infrastructure but what I can tell you for certain is that every one of these companies has legacy infrastructure

So you don't know anything about Instagram but at the same time know for certain that they have legacy infrastructure that keeps them from meeting legal requirements? How about we don't give them a pass just because it requires a bit of work to comply with laws and regulations.

Re:Instagram kept deleted photos and messages on its servers... by holidayacct on Saturday August 15, 2020 @07:46PM (#24173451)
Maybe its just me but I have yet to work for a company that didnt have legacy infrastructure that was hold them back in some way. Even the startups I've worked for had to make odd business decisions in order to take on new customers. Those odd one-offs and business decisions eventually led to sprawling legacy infrastructure. If there is an infrastructure Utopia I have yet to work there or hear of it.
Re:Instagram kept deleted photos and messages on its servers... by ethanwillis on Friday August 14, 2020 @11:40AM (#24159341)
If they don't want to comply with laws then they shouldn't be operating.
Re:Instagram kept deleted photos and messages on its servers... by tgsovlerkhgsel on Saturday August 15, 2020 @08:54AM (#24168507)
Then they have to stop adding new features, and focus their countless developers on implementing a way to meet these legal requirements.

And the fines for not doing that need to be big enough to motivate them to do that.

Re:Instagram kept deleted photos and messages on its servers... by vageli on Friday August 14, 2020 @01:20PM (#24160594)
These companies are shipping new features every day. If they have the bandwidth to work on those projects then the failure to meet legal requirements is an issue of prioritization, leaving no excuse.
Re:Instagram kept deleted photos and messages on its servers... by LunaSea on Friday August 14, 2020 @12:43PM (#24160132)
That really isn't the user's problem.

Laws and rules need to be followed no matter what.

It's the same with GDPR.

Re:Instagram kept deleted photos and messages on its servers... by holidayacct on Friday August 14, 2020 @04:53PM (#24163123)
And this is the attitude that causes businesses to tell lies about everything they are doing. If you want transparency with regard to how you're data is being handled you need to ease up a bit and realize there are biological limitations to how fast people can make changes. Most of these companies have people who want to fix these problems. They just have hurdles you don't know about, some of them are internal politics and others are technical.
Re:Instagram kept deleted photos and messages on its servers... by parliament32 on Friday August 14, 2020 @12:22PM (#24159876)
This. The amount of time quoted in the article in excessive but it's also sparse on details (maybe his data request also sent him backups related to him? a year is reasonable in this case).

Deletion is pretty much the hardest thing to do in data management, way harder than inserting or retrieving data. I know GDPR says you need to be able to delete a user's data, but how reasonable is it to trawl through your offsite backups to find their items and remove them?