mastodon/app/lib
Eugen Rochko 0d9ffe56fb
Add request pool to improve delivery performance (#10353)
* Add request pool to improve delivery performance

Fix #7909

* Ensure connection is closed when exception interrupts execution

* Remove Timeout#timeout from socket connection

* Fix infinite retrial loop on HTTP::ConnectionError

* Close sockets on failure, reduce idle time to 90 seconds

* Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server

* Use a shared pool size, 512 by default, to stay below open file limit

* Add some tests

* Add more tests

* Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds

* Use a shared pool that returns preferred connection but re-purposes other ones when needed

* Fix wrong connection being returned on subsequent calls within the same thread

* Reduce mutex calls on flushes from 2 to 1 and add test for reaping
2019-07-02 00:34:38 +02:00
..
activitypub Add support for Audio activities (#11189) 2019-06-26 19:32:36 +02:00
connection_pool Add request pool to improve delivery performance (#10353) 2019-07-02 00:34:38 +02:00
ostatus Change domain blocks to automatically support subdomains (#11138) 2019-06-22 00:13:10 +02:00
proof_provider Default to the web domain (eg. mastodon.lubar.me) instead of the local domain (eg. lubar.me) for keybase proofs (#10565) 2019-04-21 04:53:24 +02:00
settings Remove intermediary arrays when creating hash maps from results (#9291) 2018-11-16 15:02:18 +01:00
activity_tracker.rb Create Redisable#redis (#9633) 2019-02-02 19:11:38 +01:00
application_extension.rb Conditional validations no longer accept strings for if/unless (#3124) 2017-05-19 03:11:23 +02:00
delivery_failure_tracker.rb After 7 days of repeated delivery failures, give up on inbox (#5131) 2017-09-29 03:16:20 +02:00
entity_cache.rb Remove intermediary arrays when creating hash maps from results (#9291) 2018-11-16 15:02:18 +01:00
exceptions.rb Detect and prevent image bombs, max. processable dimension 4096^2 (#7229) 2018-04-23 09:16:38 +02:00
extractor.rb Using double splat operator (#5859) 2017-12-06 11:41:57 +01:00
fast_geometry_parser.rb Fix avatar and header issues by using custom geometry detector (#6515) 2018-02-21 03:40:12 +01:00
feed_manager.rb Apply filters to poll options (#11174) 2019-06-25 14:45:14 +02:00
formatter.rb Minor performance improvements and cleanup in formatter (#10765) 2019-05-15 06:54:06 +02:00
hash_object.rb Migrate from ledermann/rails-settings to rails-settings-cached which allows global settings 2017-01-12 20:46:24 +01:00
inline_renderer.rb Add conversations API (#8832) 2018-10-07 23:44:58 +02:00
language_detector.rb Change language detector threshold from 140 characters to 4 words (#10376) 2019-03-26 01:23:59 +01:00
potential_friendship_tracker.rb Create Redisable#redis (#9633) 2019-02-02 19:11:38 +01:00
proof_provider.rb Add Keybase integration (#10297) 2019-03-18 21:00:55 +01:00
request.rb Add request pool to improve delivery performance (#10353) 2019-07-02 00:34:38 +02:00
request_pool.rb Add request pool to improve delivery performance (#10353) 2019-07-02 00:34:38 +02:00
rss_builder.rb Add RSS feeds for end-users (#7259) 2018-04-25 02:10:02 +02:00
sanitize_config.rb Fix sanitizer making block level elements unreadable (#10836) 2019-06-16 21:46:36 +02:00
sidekiq_error_handler.rb Raise Mastodon::HostValidationError when host for HTTP request is private (#6410) 2018-02-24 19:16:11 +01:00
status_filter.rb Fix n+1 queries in StatusThreadingConcern (#7321) 2018-05-03 10:41:58 +02:00
status_finder.rb Raise an error for remote url in StatusFinder (#4776) 2017-09-02 17:42:47 +02:00
tag_manager.rb Introduce OStatus::TagManager (#5008) 2017-09-19 18:08:08 +02:00
themes.rb Add support for multiple themes (#4959) 2017-09-19 16:36:23 +02:00
user_settings_decorator.rb Add option to disable blurhash previews (#11188) 2019-06-26 19:33:04 +02:00
webfinger_resource.rb Allow webfinger controller to reply to user@WEB_DOMAIN in addition to user@LOCAL_DOMAIN (#2351) 2017-04-23 14:19:54 +02:00