[dev] ZODB5/ZEO5 release plan is it stands today
Jim Fulton <[email protected]>
| Newsgroups | gmane.comp.web.zope.zodb |
|---|---|
| Message-ID | <CAPDm-FhT3pkd5MDO1ih44_VugFtke+9CfEumt07NXJzACqoe9g@mail.gmail.com> |
ZODB5 will use storage loadBefore rather than load to load data. This makes the load logic simpler and easier to reason about. It will also simplify the ZEO5 server implementation, and will likely allow RelStorage to be simplified in the long run. This change is inspired by the way NEO works. I plan to make a ZEO 4 release that works with ZODB4 and ZODB5. Unfortunately, RelStorage as it stands now won't work with ZODB5. Some of us plan to fix that. There's a RelStorage pull request to fix it to work with ZODB5 that I hope will be reviewed soon. In the longer term, I expect that ZODB5 will allow us to make a much simpler version of RelStorage. ZEO5 replaces asyncore with asyncio, and also simplifies the implementation, especially on the client. This will include a number of enhancements: - SSL - Certificate Authentication - user-name/password authentication (over SSL) - client-side conflict resolution, https://github.com/zopefoundation/ZEO/wiki/Client_Side_Conflict_Resolution - Optional alternate message-serialization formats for the ZEO protocol. Initially, this will probably include support for msgpack. This will make it a little easier to have non-Python clients. A long term goal is to remove the dependence of ZEO servers on pickle. - Remove full client-cache verification - Python 2 support. :) It will also drop support for the the existing ZEO authentication protocol. Sorry. As far as releases go: - ZEO 5 ClientStorage will require ZODB5. It will be able to work with ZEO5 or ZEO4 servers. - ZEO5 servers will require ZEO5 clients. So to update to ZEO5, you'll update clients, then update servers. Current status: - There's a pull request for ZODB5: https://github.com/zopefoundation/ZODB/pull/56 It has been reviewed. There will be a few minor tweaks. It will be merged and released soon. - There will be some changes to ZEO to work with ZODB5. The biggest is: https://github.com/zopefoundation/ZEO/pull/23 There will be a couple of smaller ones after that and then I expect to make a new ZEO 4 release, followed by a ZODB5 release. - There's a PR for implementing ZEO clients with asyncio, https://github.com/zopefoundation/ZEO/pull/21 - I'm working on a PR for implementing ZEO servers with asyncio. These 2 PRs are rather large and daunting to review. :( It would be really great of someone stepped up to review them. I think it would be OK to focus on the non-test parts of the PRs. There will be follow-on smaller PRs for SSL, authentication, client-side conflict resolution, etc. You can expect some alpha and beta releases. I've done an initial spike implementing ZEO clients with Trollius and Python 2.7. https://github.com/zopefoundation/ZEO/tree/trollius Initial results are encouraging. I'm 93% sure this will work. I'm using a very small part of the asyncio/trollius API. Also, from the Trollius docs: "Since the Trollius is used for some projects in the wild, Trollius will not disappear. You can only expectminimum maintenance like minor bugfixes. Don’t expect new features nor synchronization with the latest asyncio." I think this will probably be enough to get us to 2020. :) Jim -- Jim Fulton http://jimfulton.info -- You received this message because you are subscribed to the Google Groups "zodb" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.