News for hackers. Stuff that matters.
Re:M3DB, a distributed timeseries database by missosoup on Saturday February 22, 2020 @11:12AM (#22391691)
Uber has started many projects that ended up getting open sourced. And many of them are now either abandoned or on life support. H3 comes to mind as something we almost ended up using but luckily avoided.

These open-sourcings seem a bit like PR pieces with no guarantees of any support or evolution after being published.

Re:M3DB, a distributed timeseries database by richieartoul on Saturday February 22, 2020 @11:19AM (#22391742)
Chronosphere, a startup founded by two of the early M3 engineers, just raised 11 million dollars to build a monitoring platform based around M3DB: https://techcrunch.com/2019/11/05/chronosphere-launches-with...

Uber also uses M3DB extensively internally and the project is nowhere near being abandoned or on life support: https://github.com/m3db/m3/commits/master

Re:M3DB, a distributed timeseries database by StreamBright on Sunday February 23, 2020 @03:45AM (#22395817)
>> While the founders, CEO Martin Mao and CTO Rob Skillington, were working at Uber, they recognized a gap in the monitoring industry, particularly around cloud-native technologies like containers and microservices

What is the actual gap that is not addressed with one or all of the following?

- Prometheus / Grafana [1]

- Datadog [2]

- Cloudwatch [3]

1. https://docs.docker.com/config/thirdparty/prometheus/

2. https://www.datadoghq.com/blog/introducing-live-container-mo...

3. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitori...

Re:M3DB, a distributed timeseries database by johncolanduoni on Monday February 24, 2020 @06:05AM (#22403093)
Prometheus doesn’t have a good built in story for horizontal scaling of storage and queries, or long term storage. That’s why there’s M3DB, Cortex, etc. which let you send metrics to a set of Prometheus servers which then write to a cluster that handles broad queries and tiered storage. So these are less a competitor to Prometheus and Grafana and more an augmentation of it since it supports both emitting metrics in Prometheus form and querying them with PromQL.

Datadog gets very expensive beyond a certain point; much bigger than most startups, but much smaller than Uber.

Cloudwatch is usually used as a source of metrics rather than a destination. It doesn’t have as rich a data model as Prometheus for custom metrics, and has a lot of quite limiting restrictions (like only 10 tags per metric).

Re:M3DB, a distributed timeseries database by StreamBright on Tuesday February 25, 2020 @11:13AM (#22414337)
Thanks for the detailed explanation. I agree with you on all points. I also think that even with the limitations you mentioned one company can find suitable monitoring for almost every scenario. I guess there is still a big enough market for M3DB where you need a huge amount of metrics, horizontal scalability and efficient long term storage.
Re:M3DB, a distributed timeseries database by opsunit on Sunday February 23, 2020 @07:20AM (#22396507)
Re:M3DB, a distributed timeseries database by nwsm on Sunday February 23, 2020 @02:18PM (#22398875)
Logging / Monitoring is the hottest market to disrupt right now.
Re:M3DB, a distributed timeseries database by bfung on Sunday February 23, 2020 @12:25AM (#22395301)
Yep, another way to pre-market/pre-signal to investors.

A pretty common story these days:

1. I built an X to solve Unicorn U’s problem.

2. Open source it, give talks on it

3. Leave Unicorn U and start a company based on X

4. ...

5. Profit(???)

Also, debatable whether or not Unicorn U actually needed a freshly built X instead of using existing tools/tech.

Re:M3DB, a distributed timeseries database by gtirloni on Saturday February 22, 2020 @11:21AM (#22391755)
It's opensource. Why should Uber give any guarantees? They are not in the business of selling software.

Unless Uber is actively blocking contributions, it's not Uber's fault if no community formed around something they opensourced.

As for this being a PR piece, they could have achieved the same with just a detailed blog post and no code. It looks like a expensive PR piece if they have to opensource work that took probably hundreds of development hours.

Re:M3DB, a distributed timeseries database by missosoup on Saturday February 22, 2020 @11:25AM (#22391780)
I agree with everything you say.

But without any certainty around the roadmap, support, and longterm commitment by Uber to maintain these projects, they're nothing more than interesting repos amongst a sea of interesting repos.

The way Uber brands them suggests that they're suitable for use in production environments, but so far that hasn't been the case with anything they open sourced outside a narrow envelope that resembles their own operating model. Maybe this project will set a new trend, but so far nothing they put out gained any traction or became suitable for general purpose production use. In that regard, H3 and their other projects have remained at the level of decent 'show HN' pieces rather than something you'd ever use professionally. In other words, marketing.

Based on previous news coming out e.g. https://news.ycombinator.com/item?id=20931644

It seems like Uber had too big of an engineering department with too little work to do, so they started reinventing wheels. Which is cool if they're willing to support them in the long term, but so far that hasn't proven to be the case.

Re:M3DB, a distributed timeseries database by carlisle_ on Saturday February 22, 2020 @01:24PM (#22392445)
>It seems like Uber had too big of an engineering department with too little work to do, so they started reinventing wheels. Which is cool if they're willing to support them in the long term, but so far that hasn't proven to be the case.

Former Uber engineer here. I can assure you that while our engineering team was massive, there was anything but too little work. If anything most engineers were massively overtaxed. Whether or not the work we were undertaking was meritious and valuable is an entire branch of philosophy I'm pretty sure.

Part of the struggle at big companies is that a lot of existing solutions just don't work. Let me use an example with chat. A few years ago Slack was evaluated as a replacement for HipChat, since Atlassian's outages had finally started affecting us during our own outages.

Everybody wanted to go to Slack, but the cost of Slack was tremendously prohibitive and the state of the service then (as I was told) was such that it could not support a company of Uber's size. Tremendous effort would have been undertaken by Slack to support Uber and they didn't want to expend that effort for a single customer. This was late 2015 early 2016.

There were tons of options, but ultimately an in-house chat software was created. At the time it seemed required to make our own highly reliable chat, considering how distributed engineering teams were. I think if you talk to anybody without the background of how chat evolved at Uber they would think the in-house chat project would have been a boondoggle.

Not all over-scoped engineering projects are actually so noble. There was certainly a ton of "reinventing wheels" going on. There was significantly more "these problems are really hard and I only have bad solutions."

Though if the result is ultimately, "nothing more than interesting repos amongst a sea of interesting repos" sign me up.

Re:M3DB, a distributed timeseries database by jjeaff on Saturday February 22, 2020 @09:04PM (#22394612)
There seems to be a pervasive misconception by the very employees at Uber, that they built their own chat platform. When in reality, and someone please correct me if I am wrong, uChat was a white labeled Mattermost.

I have heard that the team that put it together actually tried to hide that fact from the company (for the glory, I guess). But that could be apocryphal.

Re:M3DB, a distributed timeseries database by carlisle_ on Saturday February 22, 2020 @09:28PM (#22394697)
That's entirely not true. The team was always forthcoming about the fact it was Mattermost, at least to other engineers.

Mattermost didn't work out of the box, and certainly not the way and at the scale Uber needed it to. I'm not overly familiar with the technical details, but one thing in particular stands out as an example. There was a Town Hall channel that every user had to be a member of. This unfortunately did not scale, and not enough ACLs were available to limit all the ways users could use this universal room. Eventually they really fixed the problem, but it was a tremendous pain point for a long time. There were a lot of fundamentally "less than great" things about Mattermost that had to get updated to work for Uber.

There was the amusing time employees found out anybody could change the topic in the room, even if our chat permissions had been disabled. It was absolute chaos for at least an hour, I can't remember if it actually negatively impacted the deployment though it sounds vaguely familiar.

It's pretty telling of employees that badmouth the uChat team. That team ultimately was trying to do what they thought was best for the company, even if at the time it seemed like they bit off more than they could chew. There was no other engineering team so directly visible and exposed to the entire company internally like they were. People dismissive of their efforts are generally not used to the difficulty of making so many very vocal customers happy all at the same time, and could be more sympathetic.

Re:M3DB, a distributed timeseries database by jjeaff on Monday February 24, 2020 @03:16AM (#22402469)
I dug up the comment I saw that mentioned this. They also claim to be an Uber employee.

https://news.ycombinator.com/item?id=19101617

The fact that uChat is commonly mentioned by Uber employees as being the "custom chat solution we built in-house". It leads me to believe that comment that the team tried to hide that it was built on open source.

I don't doubt for a second that scaling Mattermost for a huge organization like Uber was a big undertaking. But it seems disingenuous for people to always mention that Uber built uChat when it should be more like "Uber put a lot of work into Mattermost to scale it up."

Re:M3DB, a distributed timeseries database by iamleppert on Sunday February 23, 2020 @02:30AM (#22395624)
Why not just use IRC?? It scaled for the entire internet.
Re:M3DB, a distributed timeseries database by cerberusss on Monday February 24, 2020 @02:42AM (#22402339)
These IRC replacements do more than that. There are voice and video calls, integrated file sharing, and a whole bunch of tools that you can add.

To be honest, I don't much like Slack because I feel the desktop app doesn't feel like a real macOS app. And I don't use all these features. So in the end, IRC would be fine for me. But it wouldn't for the rest of the company.

Re:M3DB, a distributed timeseries database by remote_phone on Saturday February 22, 2020 @01:51PM (#22392585)
Uber is in the process of ditching uChat and moving to Slack
Re:M3DB, a distributed timeseries database by carlisle_ on Saturday February 22, 2020 @02:15PM (#22392725)
I accidentally left this point out. In retrospect it's easy to say Uber made the wrong decision to make uChat but it was one of few options at the time.
Re:M3DB, a distributed timeseries database by hitekker on Saturday February 22, 2020 @03:30PM (#22393142)
Seems like a huge point to leave out.

Are you affiliated with Uber?

Re:M3DB, a distributed timeseries database by pc86 on Saturday February 22, 2020 @04:11PM (#22393344)
Well the comment starts with "former Uber engineer here" so I'd venture yes but not anymore.
Re:M3DB, a distributed timeseries database by jjeaff on Saturday February 22, 2020 @09:05PM (#22394618)
Doesn't seem relevant unless the point about slack being too expensive and unable to handle the load is untrue.
Re:M3DB, a distributed timeseries database by creddit on Saturday February 22, 2020 @02:31PM (#22392815)
> There were tons of options, but ultimately an in-house chat software was created.

You drank too much kool-aid. uChat was just a reskinned Mattermost.

Re:M3DB, a distributed timeseries database by carlisle_ on Saturday February 22, 2020 @02:35PM (#22392839)
I think you're being overly dismissive of how much work that team did.
Re:M3DB, a distributed timeseries database by Scarbutt on Saturday February 22, 2020 @01:32PM (#22392488)
Ignore the project and move on? If you expect every open source project to be served by all your entitlements, you will be repeatedly disappointed.
Re:M3DB, a distributed timeseries database by lazaroclapp on Saturday February 22, 2020 @02:02PM (#22392644)
> The way Uber brands them suggests that they're suitable for use in production environments, but so far that hasn't been the case with anything they open sourced outside a narrow envelope that resembles their own operating model.

Not a contradiction. Many of these tools are suitable for use in production, almost by definition, since they are being used in production, at Uber. They might or might not work in your environment out of the box. But they are certainly often likely a better starting point than an empty editor, even when they do not. Most of the ones I am familiar with, are happy to get PRs generalizing them to more varied environments.

> they're nothing more than interesting repos amongst a sea of interesting repos.

As someone who has open-sourced on GitHub: research prototypes hacked together for a research paper deadline in grad school, class projects, for-fun hacks, and also production tooling I built as a paid engineer, I'd say there is a big difference! :) And there would still be a big difference even if the later were somehow never touched again after the first "we are open-sourcing this!" commit.

That said, we do try to maintain the things we open-source. Standards of support vary because individuals maintaining these projects, and their situations, vary. This is true for non-OSS internal tools too. In my experience, having gone through the Uber OSS process twice, and having started it a third time and decided against releasing (yet?), Uber does try to make reasonably sure that it's open-sourcing stuff that will be useful and is planned to be maintained. At the same time, they have to balance it with making it easy to open-source tools, otherwise too many useful things would remain internal only.

Also, note, some of these tools have exactly one developer internally as the maintainer, and not even as their full time job. For example, I am the sole internal maintainer[1] for https://github.com/uber/NullAway and also have 3-4 other projects internally on my plate, most of which are in earlier stages and need more frequent attention[2]. If and when said developer leaves, effort is made to find a new owner. This is not always successful, particularly if the tool has become non-critical internally. Sometimes, leaving owners retain admin rights on the repos and keep working on the tool (Manu, NullAway's original author, co-maintains it), but I don't think anyone is suggesting that that should be an obligation.

Finally, obviously, nothing here is the official Uber position on anything, just my own personal observations. This doesn't represent my employer, and so on. I am also pretty sure most of this is not even Uber specific :)

[1] Not the only internal contributor! Also, there is one external maintainer, as mentioned a few sentences later. But in terms of this being anyone's actual responsibility...

[2] Just to clarify, I think between Manu's interest, my own, and it being relatively critical tooling at Uber, NullAway is pretty well maintained. But I can understand why that isn't always a given for all projects.

Re:M3DB, a distributed timeseries database by mamon on Saturday February 22, 2020 @12:19PM (#22392101)
Isn't that kind of the point of open-sourcing your internal tools? You don't want to be bothered with maintenance and support, so you're hoping that some anonymous volounteers will do that for you :)
Re:M3DB, a distributed timeseries database by lopsidedBrain on Saturday February 22, 2020 @01:16PM (#22392397)
Pretty much every successful open source project that people pay attention to is one that has had long-term support behind it. Linux, Mozilla, gcc, clang, git. Almost always, that support begins with the original author.

Protects that don't do that are therefore unlikely to remain interesting for long.

Re:M3DB, a distributed timeseries database by cfors on Saturday February 22, 2020 @01:04PM (#22392336)
Maybe I’m a cynic of all big corp companies but if you’ve ever worked with a big corp open source department that’s almost the entire point is to build PR for the engineering department. Same goes for tech blogs. These things will be PR pieces first, and valid production tools/frameworks second (mostly).
Re:M3DB, a distributed timeseries database by closeparen on Saturday February 22, 2020 @01:27PM (#22392459)
In my experience software gets written in the first place for the usual internal reasons. Corporate or individual prestige may be the driving factor in open sourcing, though, rather than a genuine interest in having it used externally.
Re:M3DB, a distributed timeseries database by _jal on Saturday February 22, 2020 @11:51AM (#22391942)
> Why should Uber give any guarantees?

First, "guarantee" is the wrong word to take too literally here. Depending on how you want to look at it, there are no guarantees, even with guarantees.

But looked at more loosely, answering that is really Uber's responsibility. Why did they release it? If it is just a PR release, fire-and-forget works fine for that.

If they want to see wider adoption outside of their firm, there are some fairly obvious things they should do to foster that. Sometimes you release just the right thing at just the right time and everyone else does your evangelism and support work for you, but it is much more normal for your next great thing to take a while to build a user base.

Re:M3DB, a distributed timeseries database by tylerl on Saturday February 22, 2020 @02:29PM (#22392808)
There are lots of reasons to open source internal software, and only a minority of them involve establishing a serious community and driving significant adoption. But the PR claim you're making isn't particularly credible. The ROI is abysmal if that's all you're after, and there are easier ways to get it.

Based on your specific complaints, it sounds like your opinion doesn't matter in this case; you're not the audience. You want support and a predictable future: you're looking for a product, not for technology. This isn't a product, and it's not a platform.

If instead you represented another company looking into solving this same problem yourself, and are looking at starting points, then you're the perfect audience. In that case, you'd have time and motivation to contact the developers directly rather than gripe on HN. You'd be less interested in whether there was an organized community, and more interested in how to directly influence the roadmap. You'd care about what the code looks like, how they solved Problem X and Problem Y, that kind of thing.

Re:M3DB, a distributed timeseries database by ForHackernews on Saturday February 22, 2020 @01:48PM (#22392562)
Everything you say is true, but tossing useless code releases over the wall isn't really participating in the open source community, either.

It looks to me like maybe their engineers internally are fans of the idea of "open source", and the PR department is happy to try and get some good press out of it, but the company culture isn't really set up to develop in public or maintain these things they've nominally "released".

Sadly, this isn't unusual among tech companies, but it'd be more obvious what's happening if they just put up a bare-bones FTP with a README: "Here's some code under <LICENSE>. Use it at your own risk."

Re:M3DB, a distributed timeseries database by papito on Saturday February 22, 2020 @02:02PM (#22392642)
Even I have half a mind about releasing something that I cannot commit to for a little bit - the initial bugfix stage, at least. I would say a giant like Uber hurts themselves more in terms of PR when not being conservative enough about putting source out there. People inevitably gravitate towards big player "open sauce" as it implies some commitment.

A company should first put their own system through hell and decide that "yeah, this is good, we are sticking with this", before luring people to use it.

Re:M3DB, a distributed timeseries database by grogenaut on Saturday February 22, 2020 @02:44PM (#22392893)
Open source for the steward is limping the project along is the worst type of open source because the steward usually isn't going to make any real decisions around the project the people are reticent to fork it and drive it because there is a Steward doing some activity. Selenium was in the state for years.
Re:M3DB, a distributed timeseries database by Udik on Sunday February 23, 2020 @08:27AM (#22396730)
> They are not in the business of selling software.

But they are probably in the business of selling themselves as a software/ tech company. People value tech companies, so you'd better be one, even if you do taxi services, produce and distribute tv series, or rent office space.

Re:M3DB, a distributed timeseries database by reichardt on Saturday February 22, 2020 @11:16AM (#22391716)
Why do you consider H3 to be on life support? It's basically a finished spec with actively developed implementations. https://github.com/uber/h3
Re:M3DB, a distributed timeseries database by ForHackernews on Sunday February 23, 2020 @09:29AM (#22396966)
So is Gopher, but almost nobody uses it.
Re:M3DB, a distributed timeseries database by excerionsforte on Saturday February 22, 2020 @03:10PM (#22393043)
https://github.com/facebookarchive - 11 Pages of unsupported open source software.

Beringei, a TSDB, (https://github.com/facebookarchive/beringei) in particular with what you are saying was a PR piece (https://engineering.fb.com/core-data/beringei-a-high-perform...) since it was never really used by anyone outside of FB.

I really don't see the negative part of free code that you can learn from and/or incorporate at all.

Re:M3DB, a distributed timeseries database by Fellshard on Saturday February 22, 2020 @03:19PM (#22393091)
Free code is good, yes.

When you rely on the systems themselves, and do so with expectation of support from the originating company, your expectations will almost certainly be broken.

I think that's the simplest takeaway - not to run away from any open-sourced project, but to take into proper consideration if/how they plan on supporting the tool, and how much you would be capable of adapting and owning yourself if the worst happened.

Re:M3DB, a distributed timeseries database by excerionsforte on Saturday February 22, 2020 @03:27PM (#22393129)
Yeah exactly. If one wants support they can pay for it i.e. SaaS if available. If an open source project has not created a contract with any user then there is no guarantee of support. I don't believe any company creates a contract with users automatically because they made source code available. That is unsustainable.

Chronosphere is the SaaS part for M3DB in this case. The negativity around someone open sourcing code for PR is nuts especially when all of the code is available. I love reading the code and getting ideas about how things work.

Re:M3DB, a distributed timeseries database by api on Saturday February 22, 2020 @01:00PM (#22392316)
Many large companies push this stuff out for publicity and recruitment. Sometimes employees are encouraged to spend a little bit of their time on it or to brand extracurricular activities with the company name for publicity.

The test for open source is if it keeps getting maintained and supported for years. That only happens when the project is a core business effort, has some direct means of support (e.g. dual licensing or SaaS), or happens to be one of the few genuinely volunteer driven large scale open source projects.

Re:M3DB, a distributed timeseries database by ajfriend on Saturday February 22, 2020 @03:06PM (#22393016)
We're definitely still working on H3. We just got a nice, new domain: h3geo.org

We're also basically done with a new Python wrapper written in Cython. https://github.com/uber/h3-py/tree/cython

We could probably use some help with the last step of packaging, if anyone is interested!

Re:M3DB, a distributed timeseries database by parentheses on Saturday February 22, 2020 @04:53PM (#22393587)
The issue here is not the company but the fact that the owners of the original library did not figure out how to “disown” the library.

Open sourcing something is naturally more expensive than not. It’s seldom the case that impact to the community triggers contributions that outweigh that cost.

The fallacy we hold is that companies will prop up software that is open source for everyone to use despite the lacking community contribution.

We as engineers should push ourselves to contribute when we find issues - rather than simply create tickets that represent work were want to have done for free. This is how open source software dies.

There is a minority that does this.

Re:M3DB, a distributed timeseries database by scrappyjoe on Saturday February 22, 2020 @03:05PM (#22393010)
Huh? The last commit to the H3 github repo was 3 days ago. In what sense is it abandoned? Genuinely interested as we are considering using it as a core library.
Re:M3DB, a distributed timeseries database by throwaway5752 on Saturday February 22, 2020 @05:15PM (#22393695)
Lots of good open source projects fail. But not every company is willing to open source code like this, though, and I'm very happy that Uber did so in this case.

I get your frustration, but everyone should remember there are never any promises of support with open source software, regardless of how well supported it is at a particular time.

Re:M3DB, a distributed timeseries database by iblaine on Saturday February 22, 2020 @04:52PM (#22393575)
Open sourcing projects is the new merit badge for engineers. But at least there’s more good than bad from it. Hudi is at least one Uber project I can point to off the top of my head that is a great idea.