Store/Recover python objects sequencially.
Multiple writer/reader binary log. Each writer can append messages to the log and the readers can read them sequencially. Each reader is independent.
binlog depends on lmdb.
You can now finish the installation with:
$ pip install binlog
Follow the instructions in the Installation section except for the last one.
Clone this package and run the testing docker image with:
$ make test
- The readers module now contains a set of reserved readers names which can’t be used. These reader names are now filtered from list_readers and not allowed to be created nor removed.
- ANDIterSeek and ORIterSeek reimplemented in a non-recursive way.
- Improved purge(). Now it doesn’t try to remove all previously removed entries.
- Registries implemented as lmdb databases.
- New method connection.ack_from_filter.
- Migration tool “python -m binlog.migrateregistry”.
- New method clone_reader to create a new reader with the content of an existing one.
- Added function reset_connections under binlog.connectionmanager module to reset the per process connection cache. This function will be called automatically on Python 3.7 on children processes after forks. Older versions of Python MUST call it explicitly.
- Removed compatibility code from version <= 2
- Preventing the user to use the same connection in different processes.
- Implementation of per-process connection manager to reuse connections when used concurrently.
- Preventing the user to picklelize connections.
- Preventing the user to use a closed connection.
- Preventing the user to use the library in a multithreading environment.
- Stopping the Connection class from opening and closing the lmdb environment on every single operation.
- Return True on recursive_ack if at least one reader success on the ack.
- Rebuild from scratch now using LMDB instead of BerkeleyDB.
- Get rid of the UNIX socket server.
- Better reader semantics.
- Django-like model definitions.
- Transparent serialization using pickle.
- What 1.1.0 says…
- Do not store a new row in server mode when the socket is opened and closed without any data.
- Better server stopping method.
- Removed the serialization method. Now the clients must provide their own.
- UNIX socket server.
- New backend using Berkeley’s Concurrent Data Storage (CDS).
- Specialized Reader and Writer for each backend (TDS or CDS).
- Skip opening errors when databases are deleted in the status method. Issue #4
- Skip register values not present in the logindex. Issue #5
- Using transaction in order to not lock the writer on deletions. Issue #6.
- Reader, Writer and Queue classes.
- Initial commit.