Re: Exploring using Rust for implementing a faster ZEO server.

Jason Madden <[email protected]>
Newsgroups gmane.comp.web.zope.zodb
Message-ID <[email protected]>
> On Sep 25, 2016, at 11:30, Jim Fulton <[email protected]> wrote:
> 
> I'm exploring using Rust to implement a faster ZEO server.  To do a
> quick performance comparison, I implemented a file-storage iterator in
> Rust. It's about 20x faster (40x excluding system time) than the
> Python version.
> 
> Here's a write-up:
> 
> http://jimfulton.info/site/2016/Sep/25/experiment-compare-zodb-file-storage-iteration-with-python-and-rust/
> 

Interesting results!

I'm very curious where PyPy 5.4 falls in the spectrum. Is the file-storage file you used available somewhere to test with? Or if not, would you consider adding a PyPy column to the results table? (The iteration may need to be run a few times for the JIT to fully kick in.)

The obvious consequence of writing a ZEO server in another language is that it's not running Python code. This implies (1) client-side conflict resolution and (2) no "stackable" storages, only built-in storages. For example, you'd lose zc.zlibstorage and cipher.encrypingstorage---but those are only needed on the server to do conflict resolution, I think. The only other commonly used ZEO stackable storage I'm aware of is ZRS[1]. That could be built in, but looks to be a sizable code base.

~Jason

[1] We once experimented with putting RelStorage inside a ZEO server so that clients with poor network connectivity could use the ZEO persistent cache (in the days before RelStorage had its own persistent cache). It didn't work, for reasons I don't recall.


-- 
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.