[Bug 1457929] Review Request: proxysql, a high-performance MySQL proxy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1457929



--- Comment #12 from Pavel Raiskup <praiskup@xxxxxxxxxx> ---
Thanks for the analysis!

> 3 libraries are easy to de-bundle: libconfig, libdaemon and sqlite3

Perfect.

> The other 3 libraries are hard to de-bundle due to the following reasons:
> 
> jemalloc
>   - build with different options: --enable-xmalloc
> 
>     "--enable-xmalloc
>     Enable support for optional immediate termination due to
>     out-of-memory errors, as is commonly implemented by "xmalloc"
>     wrapper function for malloc.  See the "opt.xmalloc" option
>     documentation for usage details."

>     This causes this message when proxysql is executed: <jemalloc>:
>     Invalid conf pair: xmalloc:true

Per '/usr/share/doc/jemalloc/jemalloc.html':

  opt.xmalloc (bool) r- [--enable-xmalloc]

    Abort-on-out-of-memory enabled/disabled. If enabled, rather than
    returning failure for any allocation function, display a diagnostic
    message on STDERR_FILENO and cause the program to drop core (using
    abort(3)). If an application is designed to depend on this behavior,
    set the option at compile time by including the following in the
    source code:

      malloc_conf = "xmalloc:true";

    This option is disabled by default.

I'm not sure.  Does that mean that we could build the support for
(--enable-xmalloc) into default Fedora package, without actually changing
the default behavior?  If yes, bug against jemalloc should be filled and
for the time being we could bundle ...

>     Turn off this option would be easy in the code: main.cpp: const char
>     *malloc_conf = "xmalloc:true,lg_tcache_max:16,purge:decay";
> 
>     But this modification probably would change the expected behavior of
>     the software.

Agreed, proxysql seems to be designed to use 'xmalloc'.

> mariadb-connector-c
>   - patched (6 patches)

Ok.  Fair to bundle then probably.

> re2
>   - patched (from proxysql_notes.txt: Because ProxySQL will process
>   regular expression in an already thread-safe environment, re2 is
>   patches to remove locking)

Interesting.  Does the locking hurt performance?

>   - Another reason: proxysql includes a private header file which is not
>   present in re2-devel Fedora package (regexp.h):
>     // --- SPONSORED LINK --------------------------------------------------
>     // If you want to use this library for regular expression matching,
>     // you should use re2/re2.h, which provides a class RE2 that
>     // mimics the PCRE interface provided by PCRE's C++ wrappers.
>     // This header describes the low-level interface used to implement RE2
>     // and may change in backwards-incompatible ways from time to time.
>     // In contrast, RE2's interface will not.
>     // ---------------------------------------------------------------------

I think it is fair to bundle too .. to not prolong the review too much, but we
should have new bug for this issue.  It seems to me that the ./configure
script should have additional option "disabling" the "patched" version of re2.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux