Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to migrate to the Rust components? #189

Open
fireglow opened this issue Dec 22, 2019 · 5 comments
Open

How to migrate to the Rust components? #189

fireglow opened this issue Dec 22, 2019 · 5 comments

Comments

@fireglow
Copy link

@fireglow fireglow commented Dec 22, 2019

I was wondering, with the end-of-life of Python 2.7 approaching fast, if there is a migration path to the Rust syncstorage-rs component.
It's unclear to me how this all fits together, and what steps the self-hosters need to follow.
Has somebody already worked this out?

@fireglow fireglow changed the title How to migrate to the Rust components How to migrate to the Rust components? Dec 22, 2019
@cjones26

This comment has been minimized.

Copy link

@cjones26 cjones26 commented Dec 30, 2019

I would second this--looks like Python 2.7 hits EOL tomorrow so I'm curious whether it's safe to continue utilizing Syncserver 1.5.

@jrconlin

This comment has been minimized.

Copy link
Member

@jrconlin jrconlin commented Dec 31, 2019

Trying not to sound authoritative here, but I understand the relative radio silence from us is a little disturbing. To that end, let me clarify what we're planning on doing.

First off, the team tasked with this (services-engineering) have been working on the new server (syncstorage-rs). The goal there is to make supporting Sync for millions of folks better. With the current python version, it's possible for us to lose your data if you don't have multiple clients doing regular refreshes. For us, that means using a different data storage back-end. This does not mean that we're requiring stand alone servers to do the same, and we're working hard to ensure that you can still use your SQL db of choice.

Needless to say, moving hundreds of millions of accounts to a new storage system is... tricky. We're moving slowly and carefully to make sure that we don't screw up. (We're also a pretty small team working on this, thus some of the radio silence since we're head down trying to get this working.)

What does this mean for you? Our current schedule is to try and get things up and running by the end of the second quarter of 2020 (ideally, before then). Python 2.7 is no longer officially supported as of Jan 01, 2020. That doesn't mean it stops working, just that it no longer gets new features, fixes or functions, and you get that nag message when you do anything with pip. Since you've looked over the code, you realize that Syncserver doesn't do anything crazy

In addition, pypy, will be extending it's support for python 2.7.* past 2020, which should give us all a bit more ramp.

So, the executive summary:

  1. Syncserver 1.5 should continue to be safe under python 2.7 for the short term.
  2. You may be able to run Syncserver 1.5 under Pypy 2.7 if some critical security bug hits python 2.7.
  3. We're working on a new rust based syncserver and hope to have it available with migration scripts in the next 6 months.

Again, my apologies for no one over here spelling any of this out. One of our goals for next year is to be a bit better about that.

@cjones26

This comment has been minimized.

Copy link

@cjones26 cjones26 commented Dec 31, 2019

Thanks for the detailed response, @jrconlin, works for me!

@fireglow

This comment has been minimized.

Copy link
Author

@fireglow fireglow commented Jan 14, 2020

@jrconlin thank you for your detailed response! Much appreciated.

Should I leave this issue open, so other might find it easier?

@jrconlin

This comment has been minimized.

Copy link
Member

@jrconlin jrconlin commented Jan 15, 2020

Yeah, let's leave this open for now, until the "Future of Sync" blog post gets written at least. I'll try to remember to cross link back to this bug with any future plan or work around the sync server.

But, yeah, there's zero intention of dropping support for stand-alone sync server support. It's going to be a bit tricky with mobile devices (we're fixing up a lot of the internal service support with the android-components and the application-services modules for newer browser versions), but we're going to try and strong-arm that too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.