-
Notifications
You must be signed in to change notification settings - Fork 14
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
Search for usks - INCOMPATIBLE CHANGE REQUIRES MATCHING UPDATE IN plugin-Library #8
base: master
Are you sure you want to change the base?
Conversation
The purpose is to have newly found pages fetched before attempting to fetch all failed pages again.
This is an attempt that was not working.
The change of the page affects the list of pages and might confuse the iterator.
Also added more logging.
USKs treated as USKs, ...
Also allow 0 library buffer size.
Each USK is now stored once in the database and not once per edition.
Also prepare the database for remembering when a page was last fetched.
Never fetched pages are in NEW, NEW_EDITION is processed in lastFetched order. Only the top page of an USK is subscribed (PROCESSED_USK). Sub-pages are put into DONE.
Remove the no longer used variable.
Avoid moving the page between lists if the status is not changed.
Also improve the logging of the ClientGetterCallback.
Thank you! I’ll try to get this into 1496 and to create test-jars till then so interested people can test this before it is pushed to all users. |
@debbiedub will you also file a PR for https://github.com/debbiedub/plugin-Library/tree/fcp-uploader ? |
Can I help get this merged somehow? This needs the plugin-Library merged first... Is the Library backwards compatible with existing indexes or do both need to go in at the same time? |
The changes I have made in plugin-Library does not affect using the library to find things in any of the indices and the indices are stored in the same way in freenet/hyphanet. The problem is for nodes that run the combination of plugin-Spider and plugin-Library to create the index. The communication between the two plugins is changed so that the current version of plugin-Library (without my fixes) cannot receive the information found by plugin-Spider with this PR. |
That is much less risky to release then — because the unchanged Spider + Library are broken already after 3-4 updates, so there’s no new breakage — thank you! Because the changes to library are huge. Where are the freenet.copied packages in Library copied from? Are they from the fred sourcetree? |
The freenet.copied are from the fred source tree. One alternative is to not merge my changes to plugin-Library into plugin-Library, and as a consequence let plugin-Library be the plugin that is used in almost every node to read the index and nothing else. Eventually, the old features to create the index can be removed. The functions that actually create the index could then either be a stand-alone repo, or be merged into plugin-Spider since they will always be used together anyway. One of the problems with this is that the implementation of the code to maintain the B-trees is shared between the reading of the index and the writing of the index. When I made the restructuring of plugin-Library, I split it into src, shared, and updater where shared was shared both between reading and writing but also between running as part of the plugin (plugin-Library) and outside the node. Unless this part is factored out of the plugin, as I have done by moving it to shared, there will be multiple implementations of this. |
I am now thinking like this:
The suggested structure would make a lot more sense than my current approach that was started with the ambition not to modify plugin-Spider. |
Changes to search for and find USKs instead of SSKs and to handle USKs in the database.
The most important changes are: