Hello Memcached community!
Just an update (v1.6.3):
Unsupported/Disabled options/features (may support in the future):
tls (Upstream
support since v1.5.13) Now
supported! Built
and tested with latest OpenSSL (1.1.1d).
Built
and tested with latest BoringSSL
(chromium-stable).
BoringSSL
reduced the statically-linked executable size by ~34%
(Win64 2.94MB -> 1.94MB). BoringSSL
already rejects peer renegotiations by default so the unsupported
OpenSSL-only
SSL_in_before
API used in memcached is no longer necessary. I just disabled it
using OPENSSL_IS_BORINGSSL
macro.
Testing:
NOTE: Since
Perl-based test suite is not executed, test is lacking on some
areas. Use
at your own risk!
Perl-based test suite is now ported and it
was
able to detect issues and I already fixed! Majority
of the test
suite change
is only disabling the unsupported unix socket connection but no
changes in test cases/scenarios. All tests PASSED!
This will now give Windows users the
confidence
to use the native Windows port.
GitHub Release: https://github.com/jefyt/memcached-windows/releases/tag/1.6.3_mingw
Build/Test/Artifacts:
https://ci.appveyor.com/project/jefty/memcached-windows/builds/31859470
Again,
the unsupported options/features (may support in the future):
Again, the unsupported options/features (may support in the future):
Build/Tests/Artifacts: https://ci.appveyor.com/project/jefty/memcached-windows
Hello Memcached community!
Just wanna share that I've created Why native? wiki that contains basic comparison of the native port with the Cygwin alternative. Please take note of the test environment. Results will likely differ depending on environment.Summary:
- Standby CPU usage of native is < 0.01% while Cygwin > 0.50%
- While testing, CPU usage of native is < 25% while Cygwin > 35%
- Cygwin's CPU time (rusage) total is >70% more than native
- Native's throughput and speed are at least 7% better
- Cygwin's latency is at least 10% more than native
- Native's created threads stays at 10 (same upstream) while Cygwin created 18 before test and added 2 after test (20 total).
Again, this is just basic comparison executed with default args on a basic Windows laptop with an Ubuntu running on its VirtualBox.Regards,Jefty
On Sunday, April 5, 2020 at 12:47:04 PM UTC+2, Jefty Negapatan wrote:Hi Dormando,Thanks for at least for considering this new port.Often the patches are huge/unwieldy or simply replace code so it won't run
on anything _but_ windows.--> I understand your concern. This is the reason why I have these basic requirements for this port:
- Codes (new and modified) MUST be guarded with prep macros/build env (e.g. DISABLE_UNIX_SOCKET, _WIN32, mingw32). Building for non-Windows target MUST just be same as the upstream as if no codes were added/modified.
- Codes MUST build with latest GCC with Mingw-w64 both on Windows and *nix build hosts. CI build is using debian:testing docker to take advantage of the latest GCC (currently 9.3) similar to cURL.
- Runtime dependencies SHOULD only be the Windows system libraries similar to cURL where all dependencies are statically linked for Windows. As you know Windows package management is not similar to *nix where you can just easily install deps (libevent, OpenSSL). So far, this is satisfied and the remaining unsupported feature is SASL.
- And of course, it MUST passed the tests.
In that spirit, do you have any interest in finding what code can beyou've done) is to break down the changes into small chunks to be
upstreamed to either minimize the size of the fork to something managable
longer term, or at least fiddle in that direction? My thought would be (though again I haven't at all looked at what
individually reviewed and upstreamed so that the fork simply shrinks with
time. There should be some changes that're easier than others to upstream.--> I can do this. I'll just break down the changes into small chunks and request for review.Thanks!Regards,Jefty
--
---
You received this message because you are subscribed to the Google Groups "memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email to memcached+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/memcached/d2279962-eed0-4174-abb0-95fd4716ca63%40googlegroups.com.
Type | Ops/sec | Latency | KB/sec | rusage |
Sets | 78.09% | 73.42% | 78.09% | 103.06% |
Gets | 78.09% | 71.03% | 78.08% |
MinGW TCP vs MinGW TLS Impact | ||||
Type | Ops/sec | Latency | KB/sec | rusage |
Sets | 63.01% | 57.04% | 63.01% | 76.62% |
Gets | 63.01% | 58.71% | 64.56% |