registry memory optimization and code simplification #1491

merged 8 commits into from Jan 2, 2017


None yet

1 participant

ktsaou commented Jan 1, 2017 edited
  1. lower the memory requirements of PERSON_URL. The new one embeds the structures of the index into the data, to achieve about 50% memory efficiency.

The same work should be done for MACHINE_URL, but the current size is not that big yet.

  1. the previous version had attempted to optimize locking by providing different locks for different sections of the registry, to allow it serve many requests in parallel. This code was too complex and based on the experience we now have from the running registry, unnecessary. So, this PR removed that complexity. All requests to the registry are now run sequentially.

  2. the new version fixes a number of conditions that could lead to inconsistent data in the registry. It is also a lot cleaner and easier to maintain and enhance.

  3. extensive tests have been made, the new registry is now 10% faster than the previous one.

ktsaou added some commits Dec 31, 2016
@ktsaou ktsaou object renames in registry 70ec29d
@ktsaou ktsaou more object renames in registry 97da3cf
@ktsaou ktsaou removed over-optimization at the registry to simplify its logic and r…
…emove race conditions that could result to crashes; registry is now split into multiple files, to allow easier enhancements
@ktsaou ktsaou lower registry memory requirements by eliminating DICTIONARY structur…
…es for PERSON_URLs
@ktsaou ktsaou more registry code cleanup and re-organization for better management 3e1a333
@ktsaou ktsaou strict checking on binary tree operations d4c83d0
@ktsaou ktsaou changed the title from registry optimization to registry memory optimization and code simplification Jan 1, 2017
ktsaou added some commits Jan 2, 2017
@ktsaou ktsaou updated version 09b4053
@ktsaou ktsaou fix for coverity warnings 7613251
@ktsaou ktsaou merged commit e19a4bd into firehol:master Jan 2, 2017

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment