OpenSearch/x-pack/plugin
Tanguy Leroux 8669766a81 Reduce contention in CacheFile.fileLock() method (#55662)
The CacheFile.fileLock() method is used to acquire a lock 
on a cache file so that the file can't be deleted (or its file 
handle closed) during the execution of a read or a write 
operation.

Today this lock is obtained by first acquiring the eviction 
lock (the write lock of the readwrite lock), then by checking 
if the cache file is evicted and the file channel still open, 
and finally by obtaining the file lock (the read lock of the 
readwrite lock). Acquiring the read lock while the eviction 
lock is held ensures that the cache file eviction cannot 
start in the meanwhile. But eviction starts (and terminations) 
also acquire the eviction lock; and this lock cannot be 
obtained while a read lock is held (the write lock of a 
readwrite lock is exclusive).

If we were acquiring a read lock and checking the eviction 
flag and file channel existence while holding the read lock 
we know that no eviction can start or finish until the 
read lock is released.
2020-04-23 14:40:27 +02:00
..
analytics Convert InternalAggTestCase to AbstractNamedWriteableTestCase (#55250) 2020-04-17 16:39:38 -04:00
async-search Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
autoscaling Add wire tests for get autoscaling decision objects 2020-04-05 21:34:36 -04:00
ccr Remove Redundant CS Update on Snapshot Finalization (#55276) (#55528) 2020-04-21 15:33:17 +02:00
core Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
deprecation Rename MetaData to Metadata in all of the places (#54519) 2020-03-31 17:24:38 -04:00
enrich Deprecate disabling basic-license features (#54816) (#55405) 2020-04-17 15:04:17 -04:00
eql Add RepositoriesService to createComponents() args (#54814) 2020-04-16 16:27:36 +01:00
frozen-indices Allow searching of snapshot taken while indexing (#55511) 2020-04-21 13:21:38 +01:00
graph Mute GraphTests.testTimedoutQueryCrawl (#55397) 2020-04-17 15:31:48 +02:00
identity-provider Rest spec and documentation (#54664) (#55305) 2020-04-16 20:18:05 +03:00
ilm Deprecate disabling basic-license features (#54816) (#55405) 2020-04-17 15:04:17 -04:00
logstash Reintroduce system index APIs for Kibana (#54935) 2020-04-08 09:08:49 -06:00
mapper-constant-keyword [7.x] Backport ValuesSourceRegistry and related work (#54922) 2020-04-16 16:54:46 -04:00
mapper-flattened [7.x] Backport ValuesSourceRegistry and related work (#54922) 2020-04-16 16:54:46 -04:00
ml Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
monitoring Deprecate disabling basic-license features (#54816) (#55405) 2020-04-17 15:04:17 -04:00
ql SQL: drop BASE TABLE type in favour for just TABLE (#54836) (#54951) 2020-04-08 16:02:12 +02:00
rollup Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
search-business-rules [7.x] Create new `geo` module and migrate geo_shape registration (#53562) (#54924) 2020-04-07 16:30:58 -07:00
searchable-snapshots Reduce contention in CacheFile.fileLock() method (#55662) 2020-04-23 14:40:27 +02:00
security Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
spatial [backport] Add geo_bounds aggregation support for geo_shape (#55328) (#55600) 2020-04-22 11:29:35 -07:00
sql Add geo_shape mapper supporting doc-values in Spatial Plugin (#55037) (#55500) 2020-04-22 08:12:54 -07:00
src/test [ML] Add effective max model memory limit to ML info (#55581) 2020-04-22 12:28:50 +01:00
transform Deprecate disabling basic-license features (#54816) (#55405) 2020-04-17 15:04:17 -04:00
vectors Deprecate disabling basic-license features (#54816) (#55405) 2020-04-17 15:04:17 -04:00
voting-only-node Add RepositoriesService to createComponents() args (#54814) 2020-04-16 16:27:36 +01:00
watcher Always use deprecateAndMaybeLog for deprecation warnings (#55319) 2020-04-23 09:20:54 +01:00
wildcard Remove normalizer support from wildcard field while we decide on approach for handling case insensitvity (#55294) (#55375) 2020-04-17 11:43:26 +01:00
build.gradle [7.x] Validate REST specs against schema (#55117) (#55563) 2020-04-22 14:14:03 -05:00