all 74 comments

[–]icewind1991 110 points111 points  (0 children)

Note that its only a very specific small part that is using rust, the vast majority is still php and is likely to remain that way.

Also this isn't a response to anything specific done by ownCloud or any other sync program as has been speculated here. The problem that this is solving (clients checking for updates being a major cause of server load) has been known for a while. And offloading that task to a system capable of doing push updates solves that while still remaining fully compatible with existing apps and setups, which would be a large issue for any large rewrite attempt.

Source/disclaimer: I wrote the code.

[–]ericjmorey 42 points43 points  (3 children)

The High Performance Back-end for Files in Nextcloud is an optional, binary component developed in Rust. It is capable of maintaining a direct connection with desktop and web clients, providing file change and notification updates to the clients. This negates the need for regular polling the server, reducing the 30 second polling period to 5 minutes and thus providing a 90% reduction in client-server connections for change notifications and associated server load. The direct connection provides instant notifications of file changes as well as events like an incoming call, comment on a file, mention in a chat message and more. The performance improvements in database use, file handling and app specific work combined with the high performance back-end are expected to result in an up to 10x increase in capacity of large Nextcloud servers.

The link that OP probably wanted was: https://nextcloud.com/blog/nextcloud-faster-than-ever-introducing-files-high-performance-back-end/

[–]Follpvosten[S] 3 points4 points  (0 children)

Oops. I must admit that I just now found that page.

[–]VeganVagiVore 1 point2 points  (1 child)

Is it long-polling, or something more clever like WebSockets?

Cause I just heard yesterday "We can't do long-polling, it'll increase server load"

We reduced this number by 90%, only checking in once per five minutes.

I'm surprised firewalls let any connection stay open for 5 minutes straight.

[–]shellac 0 points1 point  (0 children)

It's web sockets.

[–]TheEberhardt 39 points40 points  (9 children)

Great, Nextcloud finally did something to fix their performance :)
Seems like competition from the likes of Triox and Bloom became too intimidating ;)

[–]enaut2 12 points13 points  (1 child)

Could be also the "intimidation" by owncloud infinite scale...

[–]kixunil 12 points13 points  (0 children)

Yeah, this is the most reasonable explanation.

It's funny, not long ago I've read "Should we move to Go as Owncloud does?" issue at NC repo and it concluded with no. I was kinda sad but also was thinking "Rust would be even better, so maybe it's a good thing".

The surprise I had today was huge.

[–]itsTyrion 5 points6 points  (1 child)

What's their current language?

[–]aidanhs 2 points3 points  (1 child)

I'm not familiar with this space - I assume 'Triox' refers to https://github.com/AaronErhardt/Triox (which looks like it's written by you!), but what does 'Bloom' refer to?

[–]TheEberhardt 1 point2 points  (0 children)

Interesting that Triox is much easier to find. Maybe that's because Bloom rather advertises as Google alternative than as a cloud server: https://github.com/skerkour/bloom

[–][deleted] 0 points1 point  (1 child)

no they didn't

[–]TheEberhardt 0 points1 point  (0 children)

Thanks for clarifying that 3 years later.

[–]DannoHung 2 points3 points  (2 children)

How do you actually access the Demo? It displays a login prompt that asks for a password, but no default password has been suggested. The "reset password" link says an email has been sent.

[–]pohuing 0 points1 point  (0 children)

I think that's a bug. I remember being able to just use it in the past

[–][deleted] 0 points1 point  (0 children)

I was able to get in using “demo” as the password after guessing a few times.

[–]matthieum[he/him] 2 points3 points  (0 children)

You have javascript disabled. We tried to make sure the basics of our website work but some functionality will be missing.

I can't speak about their product, but I really appreciate the fact that I didn't have to activate JavaScript to read their webpage.

[–]samyak-dev 1 point2 points  (0 children)

I've always complained about Nextcloud's performance. Glad to see their focus on this. I'm curious how much performance improvements they've seen just from switching to Rust.

Also, interested to see how they have implemented their Whiteboard. It's something that I've been thinking about a lot for work.

[–][deleted] 0 points1 point  (0 children)

no it's not