Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
N.B. This merge has so many commits, many of which experimental, that squashing will be sensible. The Cython branch will be left to preserve the full commit history. * Bare-bones base LMDB store. * Add _open_env method. * Link header files. * Remove pure Python base LMDB store. * Module path adjustments and further base LMDB store enhancements. * Start work on LmdbTriplestore. * WIP init dbi method. * WIP: pxd file. * LmdbTriplestore compiles, links and imports correctly. * Add LMDB libraries. [ci skip] * Separate DBI labels and config; LmdbTriplestore imports and inits. [ci skip] * Simplify error messages; rearrange declarations. [skip ci] * WIP: get methods. [ci skip] * Simplify return code check further; run get_value. [ci skip] * Add put method; properly raise exceptions; pass unsigned char in cpdef. [ci skip] * Basic put & get method working; minimal one-off test script. * Use transaction ctx. * Rearrange and expand txn and cursor management methods. * Add stats. * Start moving functions to PYX file; remove LexicalSequence. * Add _from_key(). * Add low-level lookup methods. [ci skip] * Change _check() format. * Move _triple_keys method. [ci skip] * Inline _to_key(); add _to_triple_key(). [ci skip] * Add logic for all unbound lookup. [ci skip] * _triple_keys() returns tuples. [ci skip] * Add _remove() method; separate Cython and Python triple_keys() methods. * Add key_exists() method. [ci skip] * Make message in _check() optional. * Add _all_terms(). * Add _index_triple(). [ci skip] * Remove methods moved to Cython module from Python module. [ci skip] * Adapt bind() to new framework. [ci skip] * Adapt bind(), namespace(), prefix(), namespaces(), contexts(). [ci skip] * Implement destroy(); minor adjustments. [ci skip] * Remove redundant methods and comment out non-core ones in Python module. [ci skip] * Add destroy definition in pxd file. [ci skip] * Replace all instances of TxnManager with txn_ctx in tests. [ci skip] * Remove redundant Txnmanager class and encode/decode functions. [ci skip] * Adjust store management functions; retype some cpdefs. [ci skip] * Remove TxnManager everywhere. [ci skip] * Add Cython to dev requirements; rename requirements_rtd to _dev. [ci skip] * Some pre-test fixes. [ci skip] * Properly open and close store; avoid double free segfault. [ci skip] * Complete testing environment and transaction lifecycle. [ci skip] * Fix some tests; use default transaction in _cur_open(). [ci skip] * Protect from deadlock in txn context; pass rollback test. [ci skip] * Insert meaningful data. [ci skip] * Replace string assignments with memcpy. [ci skip] * Fix typos. [ci skip] * Rework exception handling. [ci skip] * Use memcmp for array slice comparison. [skip ci] * Add specific exception for overwriting existing key. [ci skip] * Fix lookup_2bound; make memcpy syntax consistent. [ci skip] * Fix segfaults and a number of other issues. [ci skip] * Correct duplicate check. [ci skip] * Align lookup_1bound and lookup_2bound process. [ci skip] * Re-engineer ResultSet. [ci skip] * Fix _get_dup_data. [ci skip] * Fix ResultSet.to_tuple(). [ci skip] * First attempt to fix all-unbound lookup. [ci skip] * Fix all-unbound lookup and broader issues. * Ensure all cursors are closed. * get_dbi() returns a handle. [ci skip] * Fix all-unbound lookup. [ci skip] * Refactor array notation. [ci skip] * _from_key() returns tuple. [ci skip] * Do not truncate terms in _add. [ci skip] * Put index cursor generation in right order. [ci skip] * Catch all KeyNotFoundErrors in lookups. [ci skip] * Fix simple delete test. [ci skip] * Fix namespace methods. [ci skip] * Change a bunch of function signatures to make more sense. [ci skip] * Move add_graph to Cython module. * Pass add_context() and contexts() tests. * Fix several issues with context handling; add a lot of logging. [ci skip] * Add tests: * Adding graph with a RO transaction * Deleting triples for not found graph * Fix adding and deleting context, and ???c lookup. [ci skip] * Fix delete triples without a context. [ci skip] * Fix stats. [ci skip] * Correct txn reference in _append(). All LMDB tests pass locally. * Adapt MetadataStore to BaseLmdbStore; fix test setup. * Various integration fixes. [ci skip] * Fix s p o c lookup. [ci skip] * Fix RDF store setup and teardown. [ci skip] * Fix segfault on remove((s, p, o), c). [ci skip] * Expose txn_id() to Python; add a lot more debugging statements. * Add cleanup tests for LMDB Store; remove `as` in txn_ctx calls. * Fix triples not being completely deleted. All store tests pass. [ci skip] * Enable MetadataStore. * Clear stale readers. [ci skip] * Fix transaction closing that got out of whack somehow. [ci skip] * Fix graph identifiers for contexts in triples(). [ci skip] * Avoid a memcpy() in _from_key(). [ci skip] * Return all contexts for triples() even when filtering by context. [ci skip] * Fix lookup for s p o ?. [ci skip] * Properly clean up context. [ci skip] * More tests. [ci skip] * Recurse into descendants when forgetting resource. [ci skip] * Temp fix for version test; fix get_raw; fix all_terms. [ci skip] * Fix get_inbound_rel()... really. All tests pass locally. [ci skip] * Comment out all debug statements. * Reset metadata store at bootstrap. * Replace RDFlib dataset methods with straight store methods. * Logging adjustments. * Move destroy() method to Cython module. * Start using local transactions. * Test script for concurrent transactions. * Resolve some multiprocessing issues: * Start GUnicorn via shell script * Start one dbenv per process * Move WSGI config to a module * Resolve EAGAIN error with multi-worker server * Add C files. * Travis adjustments: * Bump up Python version (min. 3.6, up to 3.7) * Add Cython dependency * Install LMDB libraries system-wide in Travis * Remove py-lmdb from dev dependencies * Open the metadata store in tests; don't segfault if txn started in a closed store. * Temporary fix for leaked readers on GUnicorn worker restarts. * Remove Cython-generated C sources from VCS. * Align console script naming; some cleanup. * Conftest fixes. * Add three indices but don't use memcpy. 10% write performance penalty. * Save memcpy's. * Move triples() inside Cython module. * Lookup performance improvements: * Use secondary indices * Reduce complexity on lookup_2bound * Parallelize lookup result triple assembly * Avoid duplicate function calls in check_ref_int(); adjust logging. * Replace IMR Graph class with lightweight SimpleGraph and Imr. * Merge performance branch into simple_graph. * Correct errors with SimpleGraph. * Raise error if triple inserted is invalid. * Parallelize data assembly in lookup_2bound. * Fix offsets in lookup_1bound(). * Rename test folder to control execution order (ugly but effective). * Move sandbox. * Fix tests. * Implement custom pickler; re-add C source bundles. * Add term module. * Add TPL header file. * Add TPL header file. * More performance optimizations * Use OpenSSL C SHA1 function * Separate from_key and from_trp_key * Setuptools adjustments; support Python 3.7 in Travis. * Setuptools adjustments; support Python 3.7 in Travis. * Move metadata store out of ldp_rs store. * Setuptools adjustments; support Python 3.7 in Travis. * Fix memory leak in term module. * Fix memory leak in term module. * Comment out or delete code related to RDF hashing. * Some code cleanup. * Remove dependency from Cython for non-developers. * Update documentation. * Subtle rebranding. * Minor cleanup.
- Loading branch information