Commit Graph
524 Commits
Author SHA1 Message Date
gojomo f9a59f56a0 * .classpath
reference to guava library
2010-12-03 01:30:28 +00:00
gojomo e3181ffd37 * StoredQueue.java
simplify to reduce synchronization intricacy; possibly reduce contention
2010-12-03 01:29:49 +00:00
gojomo 85e4123b3c * TopNSet
refactor to narrow synchronized areas
2010-12-03 01:03:41 +00:00
gojomo a5256f38ee * commons/pom.xml
dependency on guava java libraries
2010-12-03 00:59:32 +00:00
gojomo 0500cdc8c1 * FetchStatusDecideRule.java
eliminate unused
2010-12-03 00:40:09 +00:00
gojomo 72682be382 * org.apache.commons.httpclient.util.EncodingUtil
added in prep for Chaset synchronization bottleneck workarounds
2010-11-23 02:00:38 +00:00
gojomo 1c8f9374f6 [HER-1845] recovery process generates duplicated F+ entries in new recovery log
* AbstractFrontier
    remove redundant logging
2010-11-23 01:25:17 +00:00
kristinn_sig e90eff9c84 [HER-1843] Possible int overflow in CheckpointService.java
* CheckpointService
  Made checkpointIntervalMinutes setter accept a long instead of an int (was missed when the class variable was made a long). While it was non-harmful the way it was, this is more in line with Java conventions.
2010-11-18 08:53:56 +00:00
kristinn_sig 675d71d557 [HER-1843] Possible int overflow in CheckpointService.java
* CheckpointService
  Conversion from mintues to milliseconds is now done using all longs, preventing an int overflow.
  Removed errant semi-colon.
2010-11-18 00:46:06 +00:00
gojomo ba4b01261e [HER-1838] H3: job-not-found 404 not very clear
* EngineApplication
    better message for simple 404
    (contributed by Matt Warhaftig)
2010-11-16 23:17:37 +00:00
gojomo 04656f56c8 More synchronization-bottleneck-minimizing
* GenerationFileHandler
    override flush to only flush 1/100th of the time
2010-11-16 02:03:55 +00:00
gojomo 600a4ca326 Fix selftest failures where empty 'profile' directory may not exist (eg git)
* SelfTestBase
    ...and make a tmp empty directory instead
2010-11-16 01:01:31 +00:00
gojomo c170390c0d Fix selftest failures where empty 'profile' directory may not exist (eg git)
* SelfTestBase
    only copy profile directory if it exists
2010-11-16 00:58:13 +00:00
gojomo cb7f96682b Remove synchronization on frontier methods; rely on safe queues, synchronization-per-WorkQueue instead
* AbstractFrontier
    remove inbound/outbound queues; simplify managerThread
    perform findEligible/schedule/receive/finish immediately
* WorkQueueFrontier
    eliminate holdQueues setting 
    synchronize sendToQueue on target queue
    make findEligibleUri reentrant; rely on [Blocking|Stored]Queue thread-safety
    make arriving at front of ready trigger for 'active'/budget-session
    simplify inactiveQueues management
    simplify waking from overflow
* WorkQueue
    redefine 'active' as in-budget-session
    rename 'held' as 'managed'
    synchronize major methods, relying on allQueues cache that operations on same intended queue use identical instance
    split over-budget test to isOverSessionBudget and isOverTotalBudget
    have toString show classKey
* BdbFrontier
    checkpoint fixes: remember nextOrdinal, rotate frontier-recover log, reset queues on recovery
    consistencyCheck method for probing state during stress tests
2010-11-15 22:56:03 +00:00
gojomo 881c829fe5 Checkpoint fixes/improvements
* BdbModule
    store lengths in JDB manifest; limit extension of last JDB on recover
* CrawlerJournal
    rotate frontier-recover on checkpoints like other logs
2010-11-15 22:37:58 +00:00
gojomo c8074bdbf3 Improve ability to force-terminate crawls
* RecordingInputStream.java
    check for interrupt on each socket-timeout
* CrawlController.java
    on second requestCrawlStop, interrupt threads via ToePool.cleanup
* ToePool.java
   adjust for new earlier/repeated cleanup
* ToeThread.java
   better warnings/recovery on forced-interrupts
2010-11-15 22:26:36 +00:00
gojomo 9fb8374b67 * ObjectIdentityBdbCache
comment-out debug output
2010-11-15 21:05:29 +00:00
gojomo f2edeea28b * StoredQueue.java
added debugging info and possible fix for occasionally-seen peek-timing issue
2010-11-15 21:03:15 +00:00
gojomo d4f5004b9c Lessen synchronization bottleneck on crawl.log
* UriProcessingFormatter.java
    allow pre-caching of a specific LogRecord's formatted version, outside the synchronized publish()
* GenerationFileHandler.java
    force a format before publish(), to benefit above (a small hit in other cases where it's redundant)
2010-11-15 21:01:37 +00:00
gojomo 1501e1ddd1 * ScriptResource.java
flush rather than close, avoiding console dump
2010-11-15 20:59:45 +00:00
gojomo 6a2716ce00 Reduce synchronization bottlenecks
* FrontierJournal, CrawlerJournal
    do barest minimum inside 'synchronized' method
2010-11-12 19:37:52 +00:00
gojomo 6f67f9f2ba * StoredQueue
improved debugging output for seldom-seen internal inconsistency
2010-11-12 19:35:35 +00:00
gojomo f44610d79a Remove synchronization bottlenecks
* HttpState
    remove not-strictly-necessary 'synchronized' guards
2010-11-12 19:34:47 +00:00
gojomo ea797a99f5 remove unnecessary SuppressWarnings 2010-11-11 06:00:54 +00:00
gojomo 301b943f03 Consolidate ModuleAttributeConstants into CoreAttributeConstants
* (many)
    distinction between these two constant-collecting classes was fuzzy (to the point that they already referred to each other), and they were both in same subproject/package already as well; so, merged constants into the larger, older class
2010-11-09 23:47:37 +00:00
gojomo 6452013af7 Frontier throughput experiments & fixed, continued
* WorkQueueFrontier
    (findEligibleURI) avoid outbound.capacity-sensitive activation, which under a race created by recent changes led to infinite recursion here
* AbstractFrontier
    (next) when nothing is immediately ready, try adding one-at-a-time to outbound, rather than fillOutbound()
2010-11-09 23:32:12 +00:00
gojomo ad57749dea * WorkQueueFrontier.java
debugging output for reported findEligibleURI deep-recursion
2010-11-08 23:45:19 +00:00
gojomo b5eb4f3c1e * AbstractFrontier
reduce size of inbound now that many threads will opportunistically clear it
2010-11-08 23:44:43 +00:00
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