1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-23 08:16:54 +00:00
borg/src/borg
Marian Beermann c786a5941e CacheSynchronizer: redo as quasi FSM on top of unpack.h
This is a (relatively) simple state machine running in the
data callbacks invoked by the msgpack unpacking stack machine
(the same machine is used in msgpack-c and msgpack-python,
changes are minor and cosmetic, e.g. removal of msgpack_unpack_object,
removal of the C++ template thus porting to C and so on).

Compared to the previous solution this has multiple advantages
- msgpack-c dependency is removed
- this approach is faster and requires fewer and smaller
  memory allocations

Testability of the two solutions does not differ in my
professional opinion(tm).

Two other changes were rolled up; _hashindex.c can be compiled
without Python.h again (handy for fuzzing and testing);
a "small" bug in the cache sync was fixed which allocated too
large archive indices, leading to excessive archive.chunks.d
disk usage (that actually gave me an idea).
2017-06-02 17:43:15 +02:00
..
algorithms algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
cache_sync CacheSynchronizer: redo as quasi FSM on top of unpack.h 2017-06-02 17:43:15 +02:00
crypto algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
platform platform.linux: get rid of "resource" module 2017-04-19 11:31:40 +02:00
testsuite CacheSynchronizer: redo as quasi FSM on top of unpack.h 2017-06-02 17:43:15 +02:00
__init__.py fail in borg package if version metadata is completely broken 2017-05-23 14:36:40 +02:00
__main__.py move borg package to src/ 2016-05-05 20:19:50 +02:00
_hashindex.c CacheSynchronizer: redo as quasi FSM on top of unpack.h 2017-06-02 17:43:15 +02:00
archive.py use stat with follow_symlinks=False 2017-05-22 17:54:42 +02:00
archiver.py algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
cache.py CacheSynchronizer: redo as quasi FSM on top of unpack.h 2017-06-02 17:43:15 +02:00
compress.pyx remove --compression-from 2017-04-04 00:16:15 +02:00
constants.py increase DEFAULT_SEGMENTS_PER_DIR to 2000 2017-05-22 12:31:52 +02:00
fuse.py fuse: fix crash if empty (None) xattr is read 2017-05-20 18:50:10 +02:00
hashindex.pyx CacheSynchronizer: redo as quasi FSM on top of unpack.h 2017-06-02 17:43:15 +02:00
helpers.py CacheSynchronizer 2017-06-02 17:43:14 +02:00
item.pyx fix symlink item fs size computation 2017-03-26 23:11:14 +02:00
locking.py Parse & pass BORG_HOSTNAME_IS_UNIQUE env var to enable stale lock killing 2016-11-07 21:56:40 +01:00
logger.py fix --progress and logging in general for remote 2017-05-20 12:54:48 +02:00
lrucache.py move borg package to src/ 2016-05-05 20:19:50 +02:00
paperkey.html key export: center QR code on the page 2017-02-13 21:24:33 +01:00
patterns.py fix --exclude and --exclude-from recursing into directories 2017-05-05 14:55:01 +02:00
remote.py RepositoryCache: limit cache size 2017-06-02 17:43:15 +02:00
repository.py algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
selftest.py Add tertiary authentication for metadata (TAM) 2016-12-20 22:53:53 +01:00
shellpattern.py It's 2017 2016-12-31 16:53:30 +02:00
upgrader.py create crypto package with key, keymanager, low_level 2017-05-02 20:49:27 +02:00
version.py version: Add version parsing and formating 2016-11-17 19:56:29 +01:00
xattr.py xattr: document API 2017-05-20 18:50:10 +02:00