python-mysql-replication VS gevent

Compare python-mysql-replication vs gevent and see what are their differences.

python-mysql-replication

Pure Python Implementation of MySQL replication protocol build on top of PyMYSQL (by julien-duponchelle)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
python-mysql-replication gevent
5 5
2,255 6,163
- 0.2%
9.1 8.7
about 1 month ago 3 months ago
Python Python
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

python-mysql-replication

Posts with mentions or reviews of python-mysql-replication. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-31.
  • Is anyone using PyPy for real work?
    13 projects | news.ycombinator.com | 31 Jul 2023
    I'm maintaining an internal change-data-capture application that uses a python library to decode mysql binlog and store the change records as json in the data lake (like Debezium). For our most busiest databases a single Cpython process couldn't process the amount of incoming changes in real time (thousands of events per second). It's not something that can be easily parallelized, as the bulk of the work is happening in the binlog decoding library (https://github.com/julien-duponchelle/python-mysql-replicati...).

    So we've made it configurable to run some instances with Pypy - which was able to work through the data in realtime, i.e. without generating a lag in the data stream. The downside of using pypy was increased memory usage (4-8x) - which isn't really a problem. An actually problem that I didn't really track down was that the test suite (running pytest) was taking 2-3 times longer with Pypy than with CPython.

    A few months ago I upgraded the system to run with CPython 3.11 and the performance improvements of 10-20% that come with that version now actually allowed us to drop Pypy and only run CPython. Which is more convenient and makes the deployment and configuration less complex.

  • Why Binlog size grows drastically when isolation level set to "Repeatable Read" & When isolation level set to "Read Committed" the size of Binlog file reduces ?
    1 project | /r/mysql | 21 Apr 2023
    doing the using Python, https://github.com/julien-duponchelle/python-mysql-replication, the recommended way of doing this
  • How to Use BinLogs to Make an Aurora MySQL Event Stream
    3 projects | dev.to | 3 Oct 2022
    The BinLogStreamReader has several inputs that we need to retrieve. First we'll retrieve the cluster's secret with the database host/username/password and then we'll fetch the serverId we stored in S3.
  • How is everyone ingesting backend relational data?
    1 project | /r/dataengineering | 28 Jul 2021
    From backend relational tables to data warehouses my team has mostly relied on change data capture replication. We use MySQL upstream, and historically used AWS DMS or Attunity Replicate to replicate directly to SQL server. Recently we made the switch to Snowflake, and used mostly AWS DMS to replicate CDC data to S3 (lists individual inserts, updates, deletes), and then from there use snowpipes to copy to snowflake and then a job to merge that data into the target table to get the latest state. In addition we've used this library in production https://github.com/noplay/python-mysql-replication, and still use it today for one high volume, critical data source. Generally we see data go end to end in a matter of minutes, but occasionally there are spikes in latency.
  • Robust data transfer mechanism?
    1 project | /r/learnpython | 24 Apr 2021

gevent

Posts with mentions or reviews of gevent. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-31.
  • Is anyone using PyPy for real work?
    13 projects | news.ycombinator.com | 31 Jul 2023
    A sub-question for the folks here: is anyone using the combination of gevent and PyPy for a production application? Or, more generally, other libraries that do deep monkey-patching across the Python standard library?

    Things like https://github.com/gevent/gevent/issues/676 and the fix at https://github.com/gevent/gevent/commit/f466ec51ea74755c5bee... indicate to me that there are subtleties on how PyPy's memory management interacts with low-level tweaks like gevent that have relied on often-implicit historical assumptions about memory management timing.

    Not sure if this is limited to gevent, either - other libraries like Sentry, NewRelic, and OpenTelemetry also have low-level monkey-patched hooks, and it's unclear whether they're low-level enough that they might run into similar issues.

    For a stack without any monkey-patching I'd be overjoyed to use PyPy - but between gevent and these monitoring tools, practically every project needs at least some monkey-patching, and I think that there's a lack of clarity on how battle-tested PyPy is with tools like these.

  • SynchronousOnlyOperation from celery task using gevent execution pool on django orm
    3 projects | /r/django | 31 May 2023
    4 projects | /r/djangolearning | 31 May 2023
  • How to Choose the Right Python Concurrency API
    6 projects | news.ycombinator.com | 10 Aug 2022
    I'm not sure how much it replicates the CSP model, but the closest thing I've found to Go-style concurrency in Python is gevent: https://github.com/gevent/gevent

    I personally still prefer to use it in all my projects.

  • I have a problem with installing Ajenti on a 64bit Ubuntu 21.04 server
    1 project | /r/webdev | 8 Jun 2021
    Greenlet seems to have some troubles compiling with Python 3.9. https://github.com/gevent/gevent/issues/1627

What are some alternatives?

When comparing python-mysql-replication and gevent you can also consider the following projects:

AWS Data Wrangler - pandas on AWS - Easy integration with Athena, Glue, Redshift, Timestream, Neptune, OpenSearch, QuickSight, Chime, CloudWatchLogs, DynamoDB, EMR, SecretManager, PostgreSQL, MySQL, SQLServer and S3 (Parquet, CSV, JSON and EXCEL).

eventlet - Concurrent networking library for Python

PyMySQL - MySQL client library for Python

Ray - Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.

PonyORM - Pony Object Relational Mapper

Faust - Python Stream Processing

sparc-curation - code and files for SPARC curation workflows

Thespian Actor Library - Python Actor concurrency library

preshed - 💥 Cython hash tables that assume keys are pre-hashed

kombu - Messaging library for Python.

mycli - A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

Tomorrow - Magic decorator syntax for asynchronous code in Python