e8ec59dda8f903e81cb5cceaef93d20a0812fc77 |
|
01-Jul-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
982 error this iri is already being processed (#1697)
* Add expiration parameter to Semaphore
After the expiration, the semaphore is unlocked. This allows dead
processes (e.g. by kill -9) to release the lock again.
* Namespace the redis semaphore at ontohub:semaphore.
* Code style.
* Code style: use class << self block.
* Add concurrency testing gem.
* Completely revamp Semaphore
* Put it into the same redis-namespace as sidekiq.
* Add method to check if a lock is closed.
* Namespace semaphores even deeper.
Checking if a lock is closed is not an atomic operation. To make it
atomic, we put the check into a mutexed part. In order to really exclude
the locking and unlocking from this mutexed check, these two operations
must be mutexed as well with the same key (LOCK_ACTION_KEY).
Unfortunately, using many threads/processes in an example makes the test
suite hang. This is because of celluloid. Maybe we can unskip the
example after upgrading to sidekiq 4 and dropping sidetiq.
* Add settings keys for Redis.
* Use redis namespace setting for Semaphore.
* Share redis connections between Sidekiq and Semaphore
When all connections are in use, any Redis call will block until a
connection is freed.
Sidekiq is now namespaced deeper in order to prevent conflicts with the
semaphore.
* Fix locked? and perform_exclusively signatures.
* Add lock and unlock methods.
* Use separate redis namespaces for our environments.
* Use Semaphore only if not testing
* Use Semaphore when parsing an Ontology
* Remove not needed method perform_async_on_queue.
* Refactor all the Worker classes for parsing
Now, all comes down to the new OntologyParsingWorker. It performs on a
queue of triples containing the version id, options for the version and
the try_count (number of the next parsing attempt).
If parsing a version fails, it is put back to the queue (at the end),
with an incremented try_count. If this happens too often for the same
version, it is given to the SequentialOntologyParsingWorker that only
parses one OntologyVersion at a time.
The OntologyParsingPriorityWorker is a more elegant way to use the
priotitized queue.
All the background parsing is now performed via the
OntologyParsingWorker or its subclasses.
* Be explicit about the namespace.
* Obey Hound. |
24c99038b338f4b04165e141fdde5ac628b6a77a |
|
17-Jan-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add missing dependent: :destroy. |
6d4ef892979ace580ed0a075609eb4acb3317209 |
|
05-Jan-2016 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Hotfix: SInE depth calculation. |
2a097efd69a7c2f1b6bfd4567f2f0ab934d0232a |
|
06-Nov-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Use transaction, remove cleanup method
The cleanup is only useful in case of an ungraceful shutdown during the
selection. This is the proper use case of a transaction. |
905b6df701bc9f0b8a921c1758fd18052306fd09 |
|
22-Oct-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Only preprocess if it has not been preprocessed before. |
b4a37f4eb0158c0d3fd98711ef977c8efaf5e8be |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add reference to SInE paper. |
d1c88b94cae4567bdbd23fc952268a0217e940f7 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Move goal, ontology to AxiomSelection. |
ffff0e64669f828d5398647e66efa0b48534c877 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Cleanup if the previous run was unsuccessful/incomplete. |
224f3df9628a5e14528320d028530991165f0dc8 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Make axiom selection unique. |
715bb1bafd34f9b5d8b0e64e2d50c2ecff00e880 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add commonness threshold. |
01f82915d3add64f685ccd7d9386a424e54a3587 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add depth limit functionality. |
75c07b9f62d6b3f480775053d58c58ad1207ff5e |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Only compute the axiom selection once
Many jobs might want to compute the axiom selection, but it only needs
to be done once. The Semaphore prevents multiple computation. |
5dd0a6bcc5adb36d1d3ade5b3e7aa8e6f0bec236 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Let AxiomSelection have many ProofAttemptConfigurations. |
8d41e86f44b1fab6f02e776d7d4851a614a61916 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add goal and ontology methods to AxiomSelection. |
ec88a7984d341caceb320d0778206d9c7f1a24f6 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Adjust to PAC having only a single goal. |
415ea28a2da1a5fae136c335c6e45f0c5f4c6c85 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add methods to actually select axioms. |
8c69481ac8862eb14b178ec4dd96cdd07af31ed4 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add triggering tolerance calculation. |
1d6fcb3db419e3b46317625182b87a6de5b54937 |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add commonness calculation. |
2dd343358095286426c3ba8f6803572ee4c0a00a |
|
10-Aug-2015 |
Eugen Kuksa <eugenk@informatik.uni-bremen.de> |
Add skeleton of SineAxiomSelection. |