History log of /ontohub/app/models/sine_axiom_selection.rb
Revision Date Author Comments Expand
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.

/ontohub/Gemfile /ontohub/Gemfile.lock hets_instance.rb ontology_version/parsing.rb sine_axiom_selection.rb /ontohub/config/initializers/redis_pool.rb /ontohub/config/initializers/sidekiq.rb /ontohub/config/settings.yml /ontohub/config/settings/development.yml /ontohub/config/settings/test.yml /ontohub/lib/base_worker.rb /ontohub/lib/hets/concurrent_evaluator.rb /ontohub/lib/hets/dg/importer.rb /ontohub/lib/hets/dg/node_evaluator.rb /ontohub/lib/hets_instance_force_free_worker.rb /ontohub/lib/ontology_batch_parse_worker.rb /ontohub/lib/ontology_parsing_priority_worker.rb /ontohub/lib/ontology_parsing_worker.rb /ontohub/lib/ontology_saver.rb /ontohub/lib/proof_evaluation_state_updater.rb /ontohub/lib/proof_execution_worker.rb /ontohub/lib/repository_update_worker.rb /ontohub/lib/semaphore.rb /ontohub/lib/sequential_ontology_batch_parse_worker.rb /ontohub/lib/sequential_ontology_parsing_worker.rb /ontohub/lib/sequential_worker.rb /ontohub/lib/settings_validation_wrapper.rb /ontohub/lib/tasks/data.rake /ontohub/lib/worker.rb /ontohub/spec/lib/access_token_deletion_worker_spec.rb /ontohub/spec/lib/ontology_batch_parse_worker_spec.rb /ontohub/spec/lib/repository/git_repository_spec.rb /ontohub/spec/lib/semaphore_spec.rb /ontohub/spec/lib/worker_spec.rb /ontohub/spec/models/repository/git_spec.rb
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.