Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP NUTCH-3064 Upgrade com.maxmind.geoip2:geoip2 dependency in geoip-index to v4.2.0 #825

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

lewismc
Copy link
Member

@lewismc lewismc commented Sep 12, 2024

Work in Progress

This PR begins to address NUTCH-3064 by performing the upgrade of the com.maxmind.geoip2:geoip2 dependency to v4.2.0. It has not been tested in distributed Nutch deployment as of yet. I say this because although no additional dependencies have been added I will wish to test out a full deployment.

In addition to the proposed upgrade I performed some refactoring which I considered to be improvements.

Refactoring/Improvements

  1. Establishes unit test(s). I have more work to do here to accommodate the change in logic for loading the maxmind db file(s) from the class path.
  2. Removes duplication of configuration documentation, including it only in nutch-default.xml.
  3. Removes insightsService as the default value for the index.geoip.usage configuration property. The value is now empty.
  4. Introduces a new property index.geoip.db.file which facilitates specifying the Maxmind DB file packaged with Nutch .job.
  5. Adds Javadoc to every Class and Method of the index-geoid plugin (more work to be done here)
  6. Uses the updated GeoIP Database guidance, specifically
  • Using the try methods; "...If you are looking up many IPs that are not contained in the database, the try method will be slightly faster as they do not need to construct and throw an exception."
  • Uses DB Caching; "... Using this cache, lookup performance is significantly improved at the cost of a small (~2MB) memory overhead."
  1. Updates the number of fields which are now available for each Database as new fields h ave been added to the Java API since I first wrote this plugin.
  2. Simplifies the values available for the index.geoip.usage configuration property. Available values are now anonymous, asn, city, connection, domain, insights or isp. THIS IS A BACKWARDS INCOMPATIBLE BREAKING CHANGE which we would need to call out in the release notes. I decided to implement this change based on recent feedback which I agree with btw.

Future work

I can anticipate a use case where multiple Maxmind DB's and/or Web service looksups may wish to be chained together with the results being aggregated within one NutchDocument. I did not wish to complicate this PR any more though so any implementation will be described first in another Jira ticket.

@lewismc lewismc marked this pull request as draft September 12, 2024 23:56
@lewismc lewismc self-assigned this Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant