Commit Graph
547 Commits
Author SHA1 Message Date
gojomo c5717f80d4 * DisposableStoredSortedMap
better class comment, error handling
2011-01-14 22:09:21 +00:00
gojomo df1d064598 * StoredQueue.java
protect isEmpty() like size() for access after backing BDB closed
2011-01-14 22:07:01 +00:00
gojomo 402b9a45a6 * RobotstxtTest
add test case for robots.txt with extraneous leading whitespace and missing blank lines
2011-01-12 23:45:49 +00:00
nlevitt 898689ab38 * WriterPoolMember.java
restore void return value of write(*) methods
* WriterPoolMember.java
    do not expect return from write(*) methods
2011-01-12 08:38:56 +00:00
nlevitt fd212669af [HER-1856] remove redundant profile-crawler-beans.cxml 2011-01-12 01:11:36 +00:00
nlevitt ef9d2e8c0e [HER-1789] stats from WARCWriterProcessor
* WriterPoolMember.java
    write(*), copyFrom() - return number of (uncompressed) bytes written, for
    convenience
* WARCWriter.java
    tally by record type: number of records written, content bytes, total
    bytes, and (possibly compressed) size on disk
* WARCWriterProcessor.java
    keep totals and write report to processors-report.txt
2011-01-12 00:54:01 +00:00
gojomo 5fe28f2ecc [HER-1858] H3: frontier futureUris (rescheduling) unreliable for otherwise empty frontier/queue
* WorkQueue.java
    add noteExhausted() for emptied queues
* WorkQueueFrontier.java
    add synchronization around checkFutures() activity
    use noteExhausted when queue is totally empty
2011-01-12 00:21:40 +00:00
gojomo 9e75ff0019 * GenerationFileHandler
disable flush-minimizing optimization until its effect on watching logs in web UI can be minimized
2011-01-12 00:18:28 +00:00
nlevitt 463d295c24 * SurtPrefixedDecideRule.java
buildSurtPrefixSet() - close the reader obtained from surtsSource when
    we're finished with it
2011-01-11 20:46:15 +00:00
nlevitt 36515bdbf6 Part of HER-1857. Rename textSource->surtsSource, and make old surtsSourceFile
a facade for surtsSource.
2011-01-11 20:42:05 +00:00
nlevitt 64a25031e4 * engine/src/main/resources/org/archive/crawler/restlet/profile-crawler-beans.cxml
synch with engine/src/main/resources/org/archive/crawler/restlet/profile-crawler-beans.cxml
2011-01-09 21:33:37 +00:00
nlevitt 4ee1e09fd3 * SurtPrefixedDecideRule.java
new property textSource, an org.archive.io.ReadSource, allowing
    specification inline in cxml as well as in external file
* profile-crawler-beans.cxml
    commented out clauses demonstrating use of textSource
2011-01-09 21:10:37 +00:00
nlevitt 8b510facc5 * CrawlerLoggerModule.java
setupSimpleLog() - use existing utility method for timestamp format
2011-01-07 23:34:08 +00:00
nlevitt 14f4d01be6 * Scoper.java
use new logToFile paradigm a la DecideRuleSequence
2011-01-07 02:38:11 +00:00
nlevitt dd439dac3b Fixes and improvements to to DecideRuleSequence/logToFile.
* DecideRuleSequence.java
    - use Spring Lifecycle start() to initialize logToFile
    - inject logger module as SimpleFileLoggerProvider, since we're in
      heritrix-modules and don't have access to CrawlerLoggerModule from
      heritrix-engine
* CrawlerLoggerModule.java
    - implement SimpleFileLoggerProvider
    - setupSimpleLog() - use 'T' instead of '+' between date and time in
      timestamp
* SimpleFileLoggerProvider.java
    new interface with one method, setupSimpleLog()
* Scoper.java
    do not call scope.start()/scope.stop(), these are handled using Spring
    Lifecycle now
* DecideRule.java
    remove unused, unneeded start()/stop()
2011-01-07 02:09:31 +00:00
gojomo bdd7f7e1ab Fix exceptions at launch, post-crawl-finish
* KryoBinding.java
    always default to registrationOptional, for now
* StatisticsTracker.java
    explicitly set valueClass of sourceDistribution to ConcurrentHashMap
* StoredQueue.java
    answer 0 for size() when backing DB closed
2011-01-07 01:24:38 +00:00
nlevitt 93cf655bed Add logToFile support to DecideRuleSequence. File is logs/{spring-bean-id}.log,
format: [timestamp] [decisive-rule-num] [decisive-rule-class] [decision] [uri]
* Scoper.java
    start(),stop() - call scope.start()/scope.stop()
* CrawlerLoggerModule.java
    setupSimpleLog() - new logToFile paradigm
* DecideRule.java
    start(),stop() - noop
* DecideRuleSequence.java
    logToFile support
* profile-crawler-beans.cxml
    <!-- <property name="logToFile" /> -->
2011-01-06 18:39:19 +00:00
nlevitt 641f193e17 * ExtractorXML.java
shouldExtract(CrawlUri) - Avoid java.lang.IndexOutOfBoundsException
    checking for xml preamble in brief/empty url content.
2011-01-03 22:41:00 +00:00
gojomo ea49e55c89 [HER-1850] IllegalStateException from WorkQueueFrontier.wakeQueues in BlockIterator
* WorkQueueFrontier.java
    double in-memory snoozedClassQueues size
    protect all adds/removes to snoozedOverflow in synchronized blocks
2010-12-09 22:28:20 +00:00
gojomo c1b8138d4d [HER-1762] H3 performance tuning
Charset lookup sync de-bottlenecking
* org/apache/commons/httpclient/EncodingUtil.java
    use explicit Charset instances or cached to minimize lookups
* LaxURLCodec, BdbMultipleWorkQueues
    use explicit Charset instances
2010-12-06 19:47:49 +00:00
gojomo 7678326121 remove obsolete renamed classes 2010-12-06 19:43:16 +00:00
gojomo 35e015698c [HER-1847] DocumentLengthT(h)resholdDecideRule spelling, naming
* (Not)ExceedsDocumentLengthT(h)resholdDecideRule
    improve comments, rename to:
     ResourceLongerThanDecideRule
     ResourceNoLongerThanDecideRule
2010-12-06 18:39:19 +00:00
gojomo 2546bf5a01 correct misspelling of 'Threshold' 2010-12-06 18:13:39 +00:00
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