10 ms·
Uber Using Driver Phones as a Backup Datacenter
- kirk21 11y agoOff topics but the fact that Uber requires you to have the latest version of its app to book rides is ridiculous. Not everyone has the newest smartphone with tons of space to update apps.
- archildress 11y agoI think if you're a driver, an up to date phone is a business expense. The latest version of the app doesn't require the latest phone - just enough space.
- wavefunction 11y agoContract employees are supposed to be able to determine the tools they will use to complete their tasks, by law.
- tacos 11y agoAs part of the independent contractor guidelines, they have to supply the tool (versus the employer buying it for them). But tools and equipment are commonly specified (even down to a specific tool model for insurance requirements or material brand for warranty requirements) as part of contracted labor.
- mahyarm 11y agoIf the job requires certain certain strength tools, you need a good enough tool to complete it. Like digging soft dirt tools vs breaking up hard stone tools to dig a hole somewhere...
- archildress 11y agoAnd they are. Android versus iPhone, Nexus versus Galaxy, etc. If I hire someone to cut down a tree on contract, I can't dictate their tool of choice - only that it complies with what's necessary to complete the work. There are plenty of fair criticisms of Uber. This isn't one.
- janesvilleseo 11y agoOr maybe they are using it as a screening device for "better" drivers. I keep hearing that when Uber comes to a new city, the pay is pretty good so it attracts non-ESL speaking drivers. Maybe this is just a barrier to enter the marketplace to maintain those 'better' drivers. Probably not, but I wouldn't be surprised.
- JupiterMoon 11y agoOr they could just pay their good employees better and then fire the poor ones. P.S. I know that they claim that their drivers are not employees but if it walks like an employee and talks like an employee it's an employee.
- mjcohen 11y agoOnly if it gets paid like an employee.
- wavefunction 11y agoI made this point upthread but contractors are free to use whatever tools they like to accomplish their tasks, by law. Full-time employees are subject to using specified equipment by the employer.
- rco8786 11y agoNot exactly how it works. Contractors can choose but it doesn't mean they can choose tools that don't do the job. If part f the job is storing backup data on a phone the tool needs to be a phone capable of storing backup data.
- HappyTypist 11y agoThe biggest argument I've seen for uber drivers being contractors is that they can work for competitors at the same time. Any employee would get fired pretty quickly.
- 11y ago
- jimminy 11y agoI actually got stuck out at Fort Mason one day during the Launch Conference last spring because of this issue. I used an Uber to get there, but when I went to leave the app required an update and I couldn't get a decent enough connection to download the update near the venue.
- brazzledazzle 11y agoThey really should let you use the N-1 version at the very least. That should prevent these same day/trip issues.
- jimminy 11y agoI have a feeling they probably do. I hadn't updated in a week or two, just out of laziness to not check for updates everyday. So it's possible I had missed more than one update that caused the issue.
- mahyarm 11y agoI heard the force-upgrade window is 3 months. To verify just deny updates until the app doesn't let you use the uber app anymore. It might also be necessary fixes pushing up the minimum version.
- amelius 11y agoThey should just use a decent website (web-app), in my humble opinion.
- jfoster 11y agoThey have that: https://m.uber.com/ https://m.uber.com/
- Namrog84 11y agoIt perhaps allow you to book 1 ride on an outdated version and warn you its the last one. Then lock account until you've updated so you don't get stranded like that 1 person
- philippnagel 11y agoIt's very hard to maintain compatibility for different versions of mobile operating systems. API's, etc. change or break completely all the time. Often it is simply a trade-off between acquiring new, perhaps more affluent users, and loosing those with less money to spend and cheaper phones. The morality behind this is questionable off course.
- jasonlotito 11y agoAnd then you have people like in this comment. https://news.ycombinator.com/item?id=10446977 https://news.ycombinator.com/item?id=10446977 > It's very hard to maintain compatibility for different versions of mobile operating systems. Except it's not. It requires thought, but the reality is, they aren't trying to maintain compatibility, they are merely saying "Nope, you have to have the latest and greatest or it won't work" regardless of whether it would work or not. If anything, this demonstrates that Uber itself is not concerned with quality. Considering my experiences with Uber in the past, this is not surprising.
- sokoloff 11y agoQuality is many faceted. One aspect that's relevant here is predictability and Uber chooses to meet their prescribed level of predictability by controlling the phone OS/version.
- ryandrake 11y agoReally? "It's very hard"? That's the explanation for such poor software engineering practices? I guess their engineers are only paid to solve easy problems.
- bitwize 11y agoThe good software engineering practives of yesterday are for old people. Young people are just smarter. They move fast and break stuff. Makin' omelettes, man. Shhhyeah.
- 11y ago
- aristidb 11y agoParent got downvoted, but I think it's a legitimate concern: refusing people rides because for whatever reason (old phone, poor / expensive Internet connectivity) they can't update the app is problematic.
- brazzledazzle 11y agoIt would be neat if they gave you a short list of temporary codes in the app that doesn't rely on connectivity that you could punch in when you call into an automated phone system.
- samstave 11y agoThey just need a freaking "Round trip button"!! All it needs to do is take you back to where you started from based on where it last dropped you off.
- coherentpony 11y agoWhat? So every app update is a breaking change? That's awful software engineering practice.
- hellbanner 11y agoUnfortunately, this could be as much Apple's fault as Uber's.
- todd3834 11y agoCould you explain how so?
- hellbanner 11y agoiOS has a history of breaking the API with version updates. Sometimes it's such a PITA, large companies choose to remove their apps instead of upgrading them: https://toucharcade.com/2015/09/23/bioshock-removal-2k-support-response/ https://toucharcade.com/2015/09/23/bioshock-removal-2k-suppo...
- themartorana 11y agoOnly if Apple changes their requirements, like disallowing access to the UDID, but even then you have plenty of time (and such changes are requirements on future versions) so it's very doubtful Apple has anything to do with this.
- peterjmag 11y agoAgreed. I'm gonna hazard a guess and say that they do it in order to avoid the cost of supporting older versions of their internal APIs. Interesting contrast to Facebook's engineering team, who maintains mobile apps for at least two years after their release: Backwards Compatible: In a world of deployed native mobile applications with no forced upgrades, backwards compatibility is a challenge. Facebook, for example, releases apps on a two week fixed cycle and pledges to maintain those apps for at least two years. This means there are at a minimum 52 versions of our clients per platform querying our servers at any given time. Client-specified queries simplifies managing our backwards compatibility guarantees. via https://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html https://facebook.github.io/react/blog/2015/05/01/graphql-int... I didn't know they had such a liberal backwards compatibility policy until I saw this GraphQL talk, which is a pretty interesting overview of why / how they do it: https://www.youtube.com/watch?v=WQLzZf34FJ8 https://www.youtube.com/watch?v=WQLzZf34FJ8. Makes me wonder how much money / how many users Uber loses by not supporting older versions.
- joelhaasnoot 11y agoInteresting requirement. I work on a large app with a large install base that is not just early adopters: we use 6 month minimum window to phase out services.
- ape4 11y agoIts huge. Takes a couple minutes to start on my Android phone. Having Spotify in there is the very definition of bloatware.
- BurningFrog 11y agoWhere can I verify this?
- JoshTriplett 11y agoYou can use their mobile site instead: https://m.uber.com https://m.uber.com That also has the advantage of not requiring invasive app permissions.
- kpozin 11y agoThe last few times I tried to use the mobile site, it gave an error message claiming that requesting a car via the site was not authorized (it had worked for a few months before that).
- JoshTriplett 11y agoSend their support a mail or tweet. See the thread at https://twitter.com/josh_triplett/status/587614288686096384 https://twitter.com/josh_triplett/status/587614288686096384 .
- wwweston 11y agoUsed to be you could actually book a trip using SMS -- I did it that way for almost a year before I ever used the app, and then they phased that out.
- superuser2 11y ago>Not everyone has the newest smartphone The latest version of the app supports Android 4.0.3 and up, as well as iOS 7 and up. >with tons of space The iOS app is 59MB. In 2015, you're claiming it's unreasonable to ask for a few megabytes? What? 8GB flash drives were party favors 5 years ago.
- BuildTheRobots 11y ago8gb flash drives might be party favours, but as phones no longer let you stick a memory card in and the latest greatest handsets (eg: nexus 5x) are still shipping with 16 or 32gb of storage, the 50mb isn't insignificant.
- serge2k 11y agoEven if the OS uses 8GB of space you are talking about well under 1% of the leftover space. Sounds insignificant for something as important as transportation.
- kirk21 11y agoMy phone is 2,5 years old and still works very well. Just has tons of bloatware (damn you HTC!). Might have to root the phone to uninstall that junk.
- NelsonMinar 11y agoMy friend had to update his otherwise-fine iPhone because of Uber's disdain for backward compatibility. Admittedly it was an older model phone. But everything he cared about worked fine with it until Uber pushed a mandatory new version of the app that required a newer iOS than the phone could run. To Uber's credit they did have a useful support response with a pointer to the mobile website. Still seemed awfully awkward.
- dmethvin 11y agoThis seems like a great approach when the client devices are all friendly and collaborating. What sort of countermeasures do you need when some of them might be malicious attackers?
- vemv 11y agoThe tampering issue is described in the article.
- ryandrake 11y ago> Have to assume driver phones can be compromised which means the data must be made tamper proof. So all the data is encrypted on the phone. Their explanation leaves me wanting more. If the phone is compromised, surely the encryption process might also be compromised.
- maxerickson 11y agoThe replication system encrypts the information before it is transmitted to the phone. The phone never has access to the key.
- ryandrake 11y agoAhh, yes it's described in a different section. Cool!
- OJFord 11y agoPrevious discussions: https://news.ycombinator.com/item?id=10428508 https://news.ycombinator.com/item?id=10428508 https://news.ycombinator.com/item?id=10253158 https://news.ycombinator.com/item?id=10253158
- dang 11y agoThreads aren't considered duplicates until the story has had significant attention on HN. https://news.ycombinator.com/newsfaq.html https://news.ycombinator.com/newsfaq.html
- wcarss 11y agoJust noticing: https://news.ycombinator.com/item?id=10428508 https://news.ycombinator.com/item?id=10428508 is a 3-day old submission from the same user, and had modest attention.
- detaro 11y agoNone of these really are a "discussion" (IMHO "previous discussion" links have two purposes: either to show something has recently had active discussion and therefore shouldn't be reposted, or to link to very old discussions that might be of interest. For me, linking empty discussions doesn't add anything useful)
- devit 11y agoLooks like there might be a surplus of engineering talent (or non-talent, perhaps) at some companies, which results in these bizarre ad-hoc projects.
- detaro 11y agoWhat's bizarre about this?
- manibatra 11y ago" Updating a stored trip happens like: set(“trip1, version2”, “yyu”); delete(“trip1, version1”). The advantage is if there’s a failure between the set and delete there will be two values stored instead of nothing stored." So simple yet could be overlooked. Great read overall.
- fche 11y agoSee also Postgres multi-version concurrency control. Doesn't solve the problem of merging incompatible inatomic-concurrent changes.
- manibatra 11y agothanks will surely have a look.
- stingraycharles 11y agoThis is Copy-On-Write in disguise: the different versions can actually be considered different objects, in which case it's just a copy and an eventual cleanup of the old object.
- manibatra 11y agoRight. Just read what Copy-On-Write is. Follows the same basic principle. I might be wrong, but Copy-On-Write is formally referred to the case of a shared resource? Though I think we could consider the trip information to be shared between the phone and the data centre.
- metaverse 11y agoI wonder why they didn't use something like CouchDB for this purpose and instead engineered their own solution? I see the CouchDB replication protocol + conflict detection perfect for their usecase.
- brazzledazzle 11y agoI often wonder why CouchDB didn't take off more. It wasn't a panacea but it was clever enough and you could use it in mobile apps. Perhaps the decision of the "host" company to merge with another company and head in the direction of CouchBase made people wary. Or there's some technical reason I'm not aware of. The latter seems more likely.
- metaverse 11y agoYes, although we have a release of 2.0 coming up, and the PouchDB project is really active. The problems couch can solve (e.g data safety and offline capability) probably aren't considered when initially building a product. Also moving from SQL to CouchDB is quite tedious, although my company just went through that process :)
- skrebbel 11y agoI feel stupid maybe, but can pouch/couch sync anything other than an entire database? The lack of granularity there always turned me off.
- daleharvey 11y agoYup, filtered replication supported by pouchdb + couchdb - http://pouchdb.com/2015/04/05/filtered-replication.html http://pouchdb.com/2015/04/05/filtered-replication.html. There are also other models, sharding individual databases per user or some other application logic. There are definitely some use cases we dont handle amazingly right now, but its all heavily being worked on.
- jchrisa 11y ago
- esMazer 11y agowhat if in the distant future they could do away with most of their datacenter with a solution like this (improved of course), imaging the savings... maybe this is their first step into looking into it.
- gaius 11y agoUnless phone storage and bandwith become cheaper than data centres, there is no saving, and even if there were, the cost hasn't vanished, just been hidden.
- icebraining 11y agoThat depends on the type of messages; if one device is sending the data, and the other is receiving it, you could absolutely save bandwidth by implementing a P2P system instead of having the data center as the middle man. An example would be the rider seeing the position of the car they have hailed - P2P would save DC bandwidth without having the devices spend more.
- gaius 11y agoThere's overhead to P2P; if there wasn't we'd never have had servers, the desktops on the LAN would have just done it.
- api 11y agoWow... always makes me very happy to see any move toward pushing a bit of intelligence out to the endpoints.
- benevol 11y agoThey sure know how to offload their costs to society, while reaping the benefits. I'm looking forward to the day when this "fat client" strategy will have lead to a "decentralized Uber" (based on open-source technology, etc.).
- iamdave 11y agoThis is the reason I don't use uber unless I have literally no other alternative. They continue to show a willingness, damn near an eagerness to make their drivers suffer for their unwillingness to work with local government by chipping away at the earning potential of drivers. And even when I was out of work for a while-I've got a car that would be perfect for Uber Select, I refused to drive for them because their business practice makes it abundantly clear they do not care about you as a driver. You're a means to an end, no matter the cost.
- travisp 11y agoSecurely storing information about a driver's trip on that driver's phone is hardly "offloading their costs to society." I assume the driver does not want the information about the trip they are providing to be lost, and therefore that they do not get paid, if an Uber data center goes down. This is not about storing all of Uber's data on the driver's phones (this would make no sense), only the information for that particular driver's activity. Further, as the article describes, this may actually be more reliable than separate backup data centers.
- lemevi 11y ago> Have to assume driver phones can be compromised which means the data must be made tamper proof. So all the data is encrypted on the phone. > In the background the Replication Service encrypts the data and sends it to the Messaging Service. > The Messenger Service sends the backup to the phone. As long as the phone can't ever read the encrypted data this is probably secure, but shifting costs onto the driver through using their bandwidth to store encrypted backup blobs seems unethical. The uber app on the phone isn't using this data to the benefit of the user, it can't as it is encrypted. I don't think you should use a person's device for anything other than serving that person. This is the kind of thing though I would totally expect from Uber. Based on what the media has reported in the past, the whole company's culture seems toxic and dishonest from top to bottom.
- themartorana 11y agoWhich is a shame because the actual boots on the ground are usually very kind, clean, and courteous, and the ride is far, far superior to cab experiences. At least anecdotally, here in Philadelphia, PA.
- tcdent 11y agoMost people are great. Ridesharing is great. There are different mentalities in the coordination organizations, though. For example, a Lyft driver mentioned to me they had an Uber recruiter in their car the other day. The person was pushy, insistent and distracting, which motivated this driver's loyalty to Lyft and gave me a subtle, mental "-1" for Uber. The concept is obviously sound, but that doesn't make the companies driving it immune to failure.
- HappyTypist 11y agoAre you sure it was an recruiter? Uber doesn't hire them afaik. Probably a driver wanting to claim the $500 referral bonus. I've had plenty of Lyft drivers doing the same and my response is always "cool, give me your card!"
- bholdr 11y agoThis looks like the prime example of FOG computing [1]: "A network architecture that uses one or more end-user clients or near-user edge devices to carry out a substantial amount of storage (rather than stored primarily in cloud data centers), communication (rather than routed over backbone networks), and control, configuration, measurement and management (rather than controlled primarily by network gateways such as those in the LTE core)." [1] http://fognetworks.org http://fognetworks.org
- newobj 11y agoSo, they use the internet, which is generally considered "two nines" reliable, to achieve 99.99% reliability? Oh, tell me more. <wonka-meme /> I skimmed through the youtube preso and saw nothing about results observed in production, either through actual DC outages, or chaos monkey, or game days. Seems highly overwrought architecture astronaut'ing and also very difficult to get any telemetry on how well/if it works, to me.
- encoderer 11y agoDo you experience 90 hours of Internet downtime every year? That's "two nines".
- jessaustin 11y agoWe're talking about mobile internet service. "Two" is probably doable. "Four" OTOH would be less than 53 minutes of downtime a year, which I might believe if you were standing still, on a high point, in an area that didn't have much going on electrically. I would not expect to see that while driving, or perhaps I mean that I have not seen that while driving. But GP is wrong anyway; see sibling comment.
- newobj 11y agoOkay, good theory crafting... From http://www.nytimes.com/2011/01/09/business/09digi.html?_r=0 http://www.nytimes.com/2011/01/09/business/09digi.html?_r=0: "A home user’s Internet connection, with a laptop using Wi-Fi, would be available about 99.8 percent of the time, estimates Mr. Hölzle at Google, which equates to about 18 hours of cumulative downtime a year." So yeah, two nines. Also, here's the results of me pinging google.com from the network of my "large technology company" who employees me. 652 packets transmitted, 646 packets received, 0.9% packet loss. Two nines.
- encoderer 11y agoDo you experience 90 hours of Internet downtime every year? That's "two nines".
- jessaustin 11y ago
- thrownaway2424 11y agoThis seems to poke an ever bigger-than-usual hole in their fantasy that drivers are contractors rather than employees.
- ogrisel 11y agoVector clocks and Conflict-free replicated data types should make it safer and easier for more and more applications to follow a similar approach to distributed data storage with delayed synchronizations to the reference data-center: https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type https://en.wikipedia.org/wiki/Conflict-free_replicated_data_...