Commit Graph
496 Commits
Author SHA1 Message Date
gojomo 484afeeea4 Avoid PermGen OOMEs using serailization constructor magic
* AutoKryo
    cache constructors created to deserialize classes that otherwise lack the right no-arg constructors
2010-11-08 23:43:42 +00:00
gojomo 3dc5f04c06 Avoid deadlock on terminate() of already-paused/stopping crawl
* AbstractFrontier
    (managementTasks) don't synchronize around possibly-blocking take(), only around process()
2010-11-08 21:06:58 +00:00
gojomo 3be9941f76 Resolve deadlock seen after latest changes
* AbstractFrontier
    (drainInbound) don't assume current thread will be able to take() full batch; poll() and exit early if other threads have drained queue first
2010-11-08 18:54:03 +00:00
gojomo f12e940edd Discard 'CredentialAvatar' -- no longer needed with Spring settings -- use Credential instances directly 2010-11-06 03:45:00 +00:00
gojomo e6c0f71175 * ObjectIdentityBdbCache
debugging output -- report low-mem ref-clearing
2010-11-06 02:25:22 +00:00
gojomo c7398ce463 Experiment to work-around Frontier.managerThread bottleneck
* AbstractFrontier, WorkQueueFrontier
    synchronize around all InEvent/findEligibleURI actions, so that drainInbound and fillOutbound may be called outside managerThread
    whenever a ToeThread would block on enqueue() or next(), try the appropriate catch-up method before blocking
    remove assertions no longer true with activity happening outside managerThread
2010-11-06 02:14:39 +00:00
gojomo 7fdb7cb384 tests cleanup
* UURI
    return to custom-serialization rather than externalization
* CachedBdbMap
    remove obsolete class
* StripSessionCFIDs, StripSessionIDs
    update patterns to restore intended case-insensitivity
* StripSessionCFIDsTest
    put expected, actual in expected order
2010-11-06 01:26:20 +00:00
gojomo 54e7e28fa6 remove stray imports breaking build 2010-11-05 23:31:36 +00:00
gojomo c56eb5d343 Experiment to assist large seed-loads
* TextSeedModule.java
     in large seed loads, try to force finalization, just in case it's lagging
2010-11-05 23:27:43 +00:00
gojomo 0627a67dce Minimize transient garbage volume by optimized serialization based on the 'Kryo' library
* AutoKryo
    extension of Kryo to allow classes to control their own registration, trigger registration of associated classes, and deserialize classes without no-arg constructors
* KryoBinding
    binding for use with BDB that uses AutoKryo serialization for a 2X-4X reduction in byte[] size
* UURI
    improved serialization via Externalizable and Kryo's CustomSerialization methods
* BdbModule
    discard deprecated CachedBDBMap option
    (getObjectCache) extend with both declaredClass and valueClass (for when map values are specializations of the declared type, as with frontier.allQueues)
    adjust type declarations
* ObjectIdentityBdbCache
    use KryoBinding rather than SerialBinding
* CachedBdbMapTest
    discarded
* BdbFrontier, BdbServerCache, StatisticsTracker
    adjust type declarations, objectCache creation
* BdbMultipleWorkQueues
    use KryoBinding rather than (Recycling)SerialBinding
* BdbWorkQueue, CrawlServer, CrawlHost, CrawlURI
    add autoregister support
* LinkContext
    public for kryo registration
2010-11-05 23:23:58 +00:00
gojomo f4a01f1155 remove outdated adler32 workaround 2010-11-05 22:42:27 +00:00
gojomo 4b7ada3930 [HER-1839] Upgrade BDB to 4.1.6; ensure HER-1628 really fixed
* commons/pom.xml, .classpath
    update BDB jar to 4.1.6
2010-11-05 22:33:47 +00:00
gojomo 6164939fc4 Minimize transient garbage creation identified by allocation profiling
* CrawlURI
    use ArrayList and indexed access rather than LinkedList and iterator instances for overlays
2010-11-05 22:32:05 +00:00
gojomo f4d69b37da Minimize transient garbage creation identified by allocation profiling
* UURIFactory, canonicalize/**, PathologicalPathDecideRule, ExtractorHTML
    use recycled matchers via TextUtils
* CrawlURI, KeyedProperties, OverlayContext, SheetOverlaysManager
    use ArrayList and indexed access rather than LinkedList and iterator instances
2010-11-05 21:34:53 +00:00
nlevitt acedca1788 Part of [HER-1836] let more than one extractor run on a single url - new
setting "independentExtractors" - when enabled, extractors run regardless of
whether other extractors have run
* profile-crawler-beans.cxml, AbstractFrontier.java, ExtractorParameters.java,
  Extractor.java
    new setting independentExtractors
* ContentExtractor.java
    shouldProcess() - respect independentExtractors
2010-10-26 23:49:42 +00:00
gojomo dc056d73f4 [HER-1832] URI without fetch-attempt causes either RuntimeException (H1) or nonsensical history info (H3) in FetchHistoryProcessor
* FetchHistoryProcessor.java
    skip history-storage if no evidence of fetch-attempt (A_FETCH_START_TIME data)
2010-10-26 00:32:18 +00:00
gojomo 3a362002c7 [HER-1833] many crawls want to suppress DNS-server's provision of a default local domain
* FetchDNS.java
    append '.' to domain name for lookup, anchoring it as FQDN
2010-10-25 23:50:12 +00:00
nlevitt d392341141 * ExtractorXML.java
shouldExtract() - choose to extract also if content starts with <?xml ...
2010-10-19 02:53:07 +00:00
nlevitt b75f604bf9 [HER-1836] let more than one extractor run on a single url?
* ContentExtractor.java
    shouldProcess() - do not check uri.hasBeenLinkExtracted()
* CrawlURI.java
    update javadoc comments on hasLinkBeenExtracted()
2010-10-19 02:08:54 +00:00
gojomo d72e6cd1d0 [HER-1830] H3: improve sheet examples in default configuration CXML
* **/profile-crawler-beans.xml
    only 1 example SurPrefixesSheetAssociation
2010-10-01 00:16:23 +00:00
gojomo 13d8c4f851 [HER-1830] H3: improve sheet examples in default configuration CXML
* **/profile-crawler-beans.xml
    example SurPrefixesSheetAssociation
2010-09-30 23:01:25 +00:00
gojomo a757140cf6 [HER-1831] change version numbering convention to be less confusing
* **/pom.xml
    change 3.1.1-SNAPSHOT to 3.0.1-SNAPSHOT
2010-09-30 19:48:35 +00:00
gojomo f1cd7dd527 [HER-1827] Have Frontier report include top X longest queues
* WorkQueueFrontier.java
    improve effective precision of top-n-queues by also updating on dequeues
2010-09-28 22:42:22 +00:00
gojomo 8f28d493a2 [HER-1827] Have Frontier report include top X longest queues
* Histotable.java
    expose static method useful for frequency-reporting
* TopNSet.java, TopNSet.java
    improve handling of case where updates may decrease frequency counts
    add convenience methods for common needs
* WorkQueueFrontier.java
    replace single longestActiveQueue with largestQueues TopNSet, of configurable size
    make max-queues-to-report-per-category configurable
2010-09-28 22:12:28 +00:00
nlevitt 74d3fb54ce HER-1828 ExtractorXML misses https urls
* ExtractorXml.java
    adjust XML_URI_EXTRACTOR regex to also look for https urls
2010-09-25 07:48:46 +00:00
gojomo de32bdb053 [HER-1825] H3: make default base queue precedence a more useful default
* BaseQueuePrecedencePolicy.java
    make default '3' (leaving space for 2 'higher') rather than '1'
2010-09-24 04:34:20 +00:00
nlevitt 63c8de4045 fix for [HER-1824] ExtractorXML doesn't properly unescape
* ExtractorXML.java
    processXML() - unescape extracted urls with commons-lang unescapeXml()
2010-09-23 02:03:48 +00:00
gojomo 7909954b8f [HER-1823] H3: adding SheetAssociations mid-crawl won't affect already queued CrawlURIs (sheet liveness)
* SheetsOverlayManager.java
    (applyOverlaysTo) clear previous info so redundant sheets don't accrete
2010-09-21 11:07:33 +00:00
gojomo 1ce23ecbcd [HER-747] Ensure 'retired' status for queues is operator-controllable
[HER-1768] Changing queue totalBudget not retiring queue as expected
* CrawlURI.java
    (includesRetireDirective) internalize to CrawlURI
* AbstractFrontier.java
    allow re-enqueuing of untried URI with retire-driective
    clean up terminology/method-names
* WorkQueue.java, WorkQueueFrontier.java, BdbFrontier.java
    adjust budget/sessionBalance handling to always count up, always consult latest values, always refresh values from latest URI
    (processFinish) reorganize to reduce redundancy
* DispositionProcessor.java
    offer forceRetire setting
* QuotaEnforcer.java
    set failed-status *or* forceRetire, not both
[HER-1823] H3: adding SheetAssociations mid-crawl won't affect already queued CrawlURIs (sheet liveness) 
* SheetsOverlayManager.java
    (applyOverlaysTo) rename, unify, reapply whenever called to ensure liveness
* CandidatesProcessor.java
    adjust to rename
2010-09-21 10:55:07 +00:00
gojomo c701cd391a [HER-1822] H3: bean browser in non-paused crawl sometimes raises exceptions, doesn't work
* JobRelatedResource.java
    add more property names to blacklist
    route all relevant requests through new utilitiy getPropertyDescriptors method that patches instances as necessary to suppress problems
2010-09-21 10:28:29 +00:00
gojomo 966646871c [HER-1727] (W)ARC filename uniqueness guarantees: adminport option, process_id option(?), JVM-global-repeat-suppression
* ArchiveUtilsTest.java
    tests for new HER-1727 guaranteed-no-repeat-timestamp functionality
2010-09-20 13:51:13 +00:00
gojomo 153e709fe5 * WriterPoolProcessor.java
eliminate nonsensical type check
2010-09-15 03:52:11 +00:00
gojomo 1aca427447 * BdbModule.java
change exception-throw to log WARNING during DB-cleanup
2010-09-10 21:15:20 +00:00
gojomo 1f08c114bb * ToeThread.java
tighten INFO logging to FINE
2010-09-10 21:12:48 +00:00
gojomo 4166316113 * AbstractFrontier.java
remove Serializable & related transient declarations -- serialization no longer used for checkpointing nor advisable
2010-09-10 01:00:19 +00:00
gojomo d6a4d158b0 [HER-1803] H3: make it easier to change robots settings
* RobotsPolicy.java
    simplified unification of RobotsHonoring and RobotsExclusion policy classes; subclasses specialize
* ObeyRobotsPolicy.java
    classic obey-robots-as-declared policy
* IgnoreRobotsPolicy.java
    ignore declared robots policy
* CustomRobotsPolicy.java
    follow custom-crafted policy in robots.txt format
* MostFavoredRobotsPolicy.java
    follow the most-permissive policy available to a set of user-agents; optionally adopt ('masquerade') the user-agent whose rules are chosen
* RobotsExclusionPolicy.java, RobotsHonoringPolicy.java
    deleted
* CrawlMetadata.java
    use new string robotsPolicyName as main determinant of policy
    maintain map of available policies ('obey','ignore', and any the operator added)
* CrawlServer.java
    retain Robotstxt instance rather than customized RobotsExclusionPolicy
* PreconditionEnforcer.java
    use full CrawlMetadata rather than just UserAgentProvider subset
    consult RobotsPolicy looked up through CrawlMetadata for allow/disallow decision
* DispositionProcessor.java
    update CrawlServer with Robotstxt only
    consult Robotstxt for crawl-delay
* profile-crawler-beans.cxml (*2), migrate-template-crawler-beans.cxml, selftest-crawler-beans.cxml
    remove old declarations/examples; add new
* ExtractorHTML.java, JerichoExtractorHTML.java
    consult RobotsPolicy.obeyMetaRobotsNofollow for NOFOLLOW
* Robotstxt.java
    new constructors for new use patterns
* **/*Test.java
    update/remove to match new use patterns
2010-09-10 00:27:20 +00:00
gojomo 3e43cf7bd5 * LinkContext.java
undo inadvertent introduction of class-serialization-format incompatibility
2010-09-09 23:22:15 +00:00
gojomo bce841be5f * JobResource.java
improve message for checkpoint-not-made flash
2010-09-09 23:21:28 +00:00
gojomo 3861c8caa4 * BdbMultipleWorkQueues.java
improve detail of logging of error that's been seen in some checkpoint-resume situations
2010-09-09 23:20:47 +00:00
gojomo de551ced58 [HER-1801] H3: Unreleased lock causes deadlock when checkpointing
* Frontier.java
    add beginDisposition(), endDisposition() methods
* AbstractFrontier.java
    implement beginDisposition(), endDisposition() methods to maintain dispositions-in-progress lock
* BdbFrontier.java
    acquire exclusive dispositionInProgressLock before allowing checkpoint to begin; release at completion of checkpoint
* ToeThread.java
    call beginDisposition before dispositionChain/finished(); call endDisposition after finished() and on exceptions
* DispositionChain.java
    shed all prior relation to locking/checkpointing
2010-09-03 02:14:41 +00:00
gojomo d12d078a07 [HER-1800] H3: Incomplete checkpoint listed in combo box
* Checkpoint.java
    remove previous attempt to use Lifecycle to catch error
* Checkpointable.java
    @Autowired(required=false) annotation for setRecoveryCheckpoint
* CheckpointService.java
    HasValidator implementation for post-build validity check; also check at launch (probably redundant)
* CheckpointValidator.java
    ensure validity stamp exists on any present Checkpoint
2010-09-03 01:03:01 +00:00
gojomo 99ce106a9d * CrawlJob.java
tighten logging
2010-09-03 00:30:33 +00:00
gojomo dbf22ad574 [HER-1480] URIs logged (as -6 or -7) that should never be scheduled
* Extractor.java
    discard special-casing of URI-ignored-scheme
2010-09-03 00:29:05 +00:00
gojomo bc698c09fc [HER-1480] URIs logged (as -6 or -7) that should never be scheduled
* LaxURI.java
    increase tolerance with regard to path-segments
* UURIFactory.java
    allow digits in scheme regex
    discard old supported-schemes code
* UURIFactoryTest.java
    tests for roundtrip serialization of problematic hostlike-scheme and bars-in-path
* CrawlerLoggerModule.java
    discard special-casing of URI scheme errors
* SchemeNotInSetDecideRule.java
    rule to apply to URIs of unknown schemes; by default REJECTs those not usually handled by Heritrix
* **/profile-crawler-beans.cxml
    add REJECT SchemeNotInSetDecideRule
2010-09-03 00:24:13 +00:00
gojomo 0347269785 [HER-1817] cleanup logging.properties / WARNING+ for most 3rd party; SEVERE+ for HttpClient; INFO for project classes
* logging.properties
    streamline to bare essentials; allow INFO for org.archive classes
* GenericReplayCharSequence.java, BdbUriUniqFilter.java
    demote some INFO logging to FINE
2010-09-03 00:00:46 +00:00
gojomo b9b592e286 * jndi.properties
remove obsolete file
2010-09-02 23:57:31 +00:00
gojomo 9bfa8fc1db * JobResource.java
remove stray whitespace
2010-09-02 23:56:52 +00:00
gojomo ad8941fa23 1-liner fixing argument display for usage help argument echo
* Heritrix.java
    (usage) StringUtils.join the String[] args
    commit in honor of Travis, who suggested fix
2010-08-27 00:56:42 +00:00
gojomo 2f78980e5d [HER-1814] remove dependency on apache commons-pool/GenericObjectPool
* SelfTestBase.java
    don't try to UURIify 'fieldesc:' ad-hoc URIs
2010-08-26 21:56:50 +00:00
gojomo 790469280e [HER-1814] remove dependency on apache commons-pool/GenericObjectPool
* WriterPoolMember.java
    fix ops broken by removal of checkSize at preWriteRecordTasks -- still create if out == null
2010-08-26 21:19:56 +00:00