Skip to content

Commit

Permalink
Merge branch 'develop' into feature/GH-510-eable-async-data-reads
Browse files Browse the repository at this point in the history
  • Loading branch information
jtnelson committed Jun 30, 2024
2 parents 07606e0 + c2ff869 commit 0f36c9a
Show file tree
Hide file tree
Showing 16 changed files with 922 additions and 305 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ We made several changes to improve search performance and accuracy:
* **Previous Configuration**: In earlier versions, Concourse Server could be configured using the `conf/stopwords.txt` file to exclude common stopwords from indexing and search operations. This approach was designed to reduce storage requirements and improve search performance by removing frequently occurring, but generally less significant words.
* **Rationale for Change**: Preserving stopwords is crucial for maintaining context, which can significantly enhance the accuracy of search results and the effectiveness of ranking algorithms. Since affordable storage and computational resources are more abundant, resource usage is no longer a concern and it makes more sense to prioritze better search accuracy and system robustness. Lastly, preserving stopwords eliminates corner case bugs that are inherent to the way Concourse's search algorithm interacts with the buffered storage system.
* **Upgrade Implications**: Upon upgrading to this version, an automatic reindexing task will be initiated to ensure that all previously indexed data conforms to the new no-stopword-removal policy. It's important to allocate downtime for this reindexing to occur. And, it is wise to anticipate more storage spaced being used due to stopwords being included in the search corpus.
* Changed the default value of the `max_search_substring_length` configuration option to `40`. The previous default allowed unlimited substring lengths, which increased search index size and hurt performance. Existing explicit configurations for this option remain unchanged.

##### Locking Optimizations
We made several changes to improve the safety, scalability and operational efficiency of the Just-in-Time (JIT) locking protocol:
Expand Down Expand Up @@ -36,6 +37,11 @@ We made several changes to improve the safety, scalability and operational effic
* `ConcourseArtifacts` - Provides factory methods to retrieve local copies of Concourse artifacts for any version. Can be used to download the installer for a released version.
* `ManagedConcourseServer` - Provdes the ability to control an external Concourse Server process within another application.

##### New Functionality
* Added the ability to create `ConnectionPool`s that copy the credentials and connection information from an existing handler These copying connection pools can be created by using the respective "cached" or "fixed" factory methods in the `ConnectionPool` class that take a `Concourse` parameter.
* Reduced the amount of heap space required for essential storage metadata.
* Added the `enable_efficient_metadata` configuration option to further reduce the amount of heap space required for essential storage metadata. When this option is set to `true`, metadata will occupy approximately one-third less heap space and likely improve overall system performance due to a decrease in garbage collection pauses (although per-operation performance may be slightly affected by additional overhead).

##### Bug Fixes
* [GH-454](https://github.com/cinchapi/concourse/issues/454): Fixed an issue that caused JVM startup options overriden in a ".dev" configuration file to be ignored (e.g., `heap_size`).
* [GH-491](https://github.com/cinchapi/concourse/issues/491) Fixed a race condition that made it possible for a range bloked operation to spurriously be allowed to proceed if it was waiting to acquire a range lock whose intended scope of protection intersected the scope of a range lock that was concurrently released.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package com.cinchapi.concourse;

import java.util.Queue;
import java.util.function.Supplier;

import com.cinchapi.concourse.util.ConcurrentLoadingQueue;

Expand All @@ -31,31 +32,11 @@ class CachedConnectionPool extends ConnectionPool {
/**
* Construct a new instance.
*
* @param host
* @param port
* @param username
* @param password
* @param supplier
* @param poolSize
*/
protected CachedConnectionPool(String host, int port, String username,
String password, int poolSize) {
this(host, port, username, password, "", poolSize);
}

/**
* Construct a new instance.
*
* @param host
* @param port
* @param username
* @param password
* @param environment
* @param poolSize
*/
protected CachedConnectionPool(String host, int port, String username,
String password, String environment, int poolSize) {
super(() -> Concourse.connect(host, port, username, password,
environment), poolSize);
protected CachedConnectionPool(Supplier<Concourse> supplier, int poolSize) {
super(supplier, poolSize);
}

@Override
Expand Down
Loading

0 comments on commit 0f36c9a

Please sign in to comment.