About
Activity
-
Really proud of this team for bringing search load based autoscaling to Elasticsearch. Thanks to Matteo Piergiovanni and John Verwolf for writing…
Really proud of this team for bringing search load based autoscaling to Elasticsearch. Thanks to Matteo Piergiovanni and John Verwolf for writing…
Liked by Chris Hegarty
-
Elasticsearch 8.15 has been released!!! It's sort of ridiculous how long even the highlights are: https://lnkd.in/eDbk-pjw So, I wanted to make my…
Elasticsearch 8.15 has been released!!! It's sort of ridiculous how long even the highlights are: https://lnkd.in/eDbk-pjw So, I wanted to make my…
Liked by Chris Hegarty
-
One of the features that our team in Elasticsearch worked on in the past year was Autoscaling. If you want to know how ingest autoscaling works in…
One of the features that our team in Elasticsearch worked on in the past year was Autoscaling. If you want to know how ingest autoscaling works in…
Liked by Chris Hegarty
Experience & Education
Licenses & Certifications
-
Sun Certified Developer for the Java Platform
-
-
Sun Certified Mobile Application Developer for the Java Platform, Micro Edition
-
-
Sun Certified Programmer for the Java Platform
-
Publications
-
Foreign Memory Access and NIO channels - Going Further
Inside.java
The Java Platform’s NIO channels currently only support I/O operations on synchronous channels with byte buffer views over confined memory segments. While somewhat of a limitation, this reflects a pragmatic solution to API constraints, while simultaneously pushing on the design of the Foreign Memory Access API itself.
Patents
-
Serialization of objects using multiple serialization algorithms
Issued US 11477258
Techniques for serializing objects stored in system memory are disclosed. The system may receive data representing an object stored in system memory. The system may select a particular serialization process, from among a plurality of serialization processes, for serializing the received data. The particular serialization process may be selected based at least in part on the received data. The system may serialize the data representing the object in system memory using the selected serialization…
Techniques for serializing objects stored in system memory are disclosed. The system may receive data representing an object stored in system memory. The system may select a particular serialization process, from among a plurality of serialization processes, for serializing the received data. The particular serialization process may be selected based at least in part on the received data. The system may serialize the data representing the object in system memory using the selected serialization process. Serializing the data may yield one or more stream objects.
-
Object Creation From Structured Data Using Indirect Constructor Invocation
Issued US 11288045
A data-instantiator method handle is configured to instantiate a target class based on a structured data object. One type of data-instantiator method handles is a Structured Data Object Processor method handle (SDOP_mh). The runtime environment invokes a SDOP_mh to create a target object based on a name-index map and an index-value map. The SDOP_mh is adapted, directly or indirectly, from a direct method handle that references a constructor of the target class. In an embodiment, the constructor…
A data-instantiator method handle is configured to instantiate a target class based on a structured data object. One type of data-instantiator method handles is a Structured Data Object Processor method handle (SDOP_mh). The runtime environment invokes a SDOP_mh to create a target object based on a name-index map and an index-value map. The SDOP_mh is adapted, directly or indirectly, from a direct method handle that references a constructor of the target class. In an embodiment, the constructor referenced by the direct method handle is a canonical constructor. In an embodiment, the SDOP_mh is a runtime-computed constant in a runtime constant pool.
-
Deserialization of Stream Objects Using Constant-Foldable Method Handles
Issued US 11256480
A data-instantiator method handle is configured to create a target object based on a stream object. One type of data-instantiator method handles is a Stream Object Processor method handle (SOP_mh). A SOP_mh is a runtime-computed constant in a runtime constant pool. A runtime environment resolves the SOP_mh lazily responsive to a request to access the SOP_mh. The runtime environment invokes the SOP_mh to create a target object based on a stream object. By virtue of being a constant in the…
A data-instantiator method handle is configured to create a target object based on a stream object. One type of data-instantiator method handles is a Stream Object Processor method handle (SOP_mh). A SOP_mh is a runtime-computed constant in a runtime constant pool. A runtime environment resolves the SOP_mh lazily responsive to a request to access the SOP_mh. The runtime environment invokes the SOP_mh to create a target object based on a stream object. By virtue of being a constant in the runtime constant pool, the SOP_mh is a candidate for optimization by a dynamic compiler in the runtime environment. The dynamic compiler may elect to constant fold the value of the SOP_mh and inline any code or executable logic that the SOP_mh refers to.
-
Parallel Pseudo Infinite Monotonic Timeline Clock
Issued US 11119531
Techniques are included for providing a parallel pseudo infinite timeline monotonic clock that may be used to determine time and durations. A system clock is used to obtain an original time instant that anchors the pseudo infinite timeline to be parallel to a timeline of the system clock. The monotonic clock obtains time ticks from a monotonic tick supplier. The monotonic time ticks are used to determine times and durations, rather than relying on time instants obtained from the system clock…
Techniques are included for providing a parallel pseudo infinite timeline monotonic clock that may be used to determine time and durations. A system clock is used to obtain an original time instant that anchors the pseudo infinite timeline to be parallel to a timeline of the system clock. The monotonic clock obtains time ticks from a monotonic tick supplier. The monotonic time ticks are used to determine times and durations, rather than relying on time instants obtained from the system clock. The use of a sliding window anchored at various times allows the parallel timeline to be almost infinite in implementation, rather than wrapping once a maximum value is reached. In addition, the accuracy of computations of time and duration are impervious to changes to the system clock, due to the use of the monotonic time ticks instead of obtaining multiple time instants from the system clock.
-
Quality Checking Inferred Types in a Set of Code
Issued US 110983771
An explicit type for a construct is not necessarily specified by a set of code. Where an explicit type is not specified for a particular construct, a compiler performs type inference for the particular construct. If the compiler infers a denotable type is associated with the construct, the compiler proceeds to perform quality checking for the particular construct by evaluating quality conditions with respect to the inferred denotable type. However, if the compiler determines that a…
An explicit type for a construct is not necessarily specified by a set of code. Where an explicit type is not specified for a particular construct, a compiler performs type inference for the particular construct. If the compiler infers a denotable type is associated with the construct, the compiler proceeds to perform quality checking for the particular construct by evaluating quality conditions with respect to the inferred denotable type. However, if the compiler determines that a non-denotable type is associated with the construct, then the compiler selects a target type determination process based on an attribute of the inferred non-denotable type associated with the particular construct. The compiler determines one or more target types using the selected target type determination process. The compiler performs quality checking for the particular construct by evaluating quality conditions with respect to the target types.
-
Bi-directional asynchronous I/O abstraction based upon pair of tightly coupled reactive streams flows
Issued US 10846249
Systems and methods are provided based on tightly coupled RS flows to provide bi-directional asynchronous stream processing with non-blocking back pressure. Signal, data, and error processing may be performed and routing of signals, data, and error information between multiple RS flows may be performed according to detected conditions.
-
Identifying permitted illegal access operations in a module system
Issued US 10846417
Techniques for identifying permitted illegal access operations in a module system are disclosed. An operation, expressed in a first module, that attempts to access a module element of a second module is identified. Based on a module declaration associated with the second module, the module element is determined inaccessible to the first module. Additionally or alternatively, based on an access modifier associated with the module element, the module element is determined inaccessible to the…
Techniques for identifying permitted illegal access operations in a module system are disclosed. An operation, expressed in a first module, that attempts to access a module element of a second module is identified. Based on a module declaration associated with the second module, the module element is determined inaccessible to the first module. Additionally or alternatively, based on an access modifier associated with the module element, the module element is determined inaccessible to the operation. The operation is determined as an illegal access operation. The illegal access operation is permitted to access the module element. A warning corresponding to the illegal access operation is generated.
-
Inferring code deprecation from module deprecation
Issued US 10671383
Techniques for inferring code deprecation from module deprecation are disclosed. A system detects a reference to a type. The system determines that a particular module, in a plurality of modules in a module system, exposes the referenced type. The system determines that the particular module is associated with a deprecation status. Responsive to determining that the particular module is associated with the deprecation status, the system presents information indicating that the reference…
Techniques for inferring code deprecation from module deprecation are disclosed. A system detects a reference to a type. The system determines that a particular module, in a plurality of modules in a module system, exposes the referenced type. The system determines that the particular module is associated with a deprecation status. Responsive to determining that the particular module is associated with the deprecation status, the system presents information indicating that the reference references a deprecated module.
-
Deserialization of stream objects using multiple deserialization algorithms
Filed US 16/834,239
-
Restrictive access control for modular reflection
Issued US 10367822
Abstract: Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a…
Abstract: Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a second exposed module element, which includes the particular module element, has been declared with a public or non-public access modifier, (c) a level of access associated with the operation that attempts to access the particular module element of the first module, and/or (d) whether an accessibility override configuration is set for accessing the particular module element.
-
Permissive access control for modular reflection
Issued US 10158647
Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a second…
Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a second exposed module element, which includes the particular module element, has been declared with a public or non-public access modifier, (c) a level of access associated with the operation that attempts to access the particular module element of the first module, and/or (d) whether an accessibility override configuration is set for accessing the particular module element.
-
Modular serialization
Issued US 10140119
A serial form of a serializable exposed first module element of a module in a module system is analyzed. An unexposed and/or inaccessible second module element expressed in the serial form is identified as a potential error condition. A corrective execution is executed and/or a warning is presented.
-
Redundant instance variable initialization elision
Issued US 10127133
A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with…
A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with certainty that a particular assignment is definitely not redundant. Additionally, a code analyzer may not be able to determine with certainty whether an instance variable assignment is definitely redundant or definitely not redundant. Additionally, the code analyzer may report a warning or other informative message indicating the redundancy property of the assignment, thus alerting the programming to a (possibly) redundant assignment.
Other inventors -
Remediating serialization incompatibilities
Issued US 10120777
Techniques for remediating serialization incompatibilities are disclosed. A runtime environment of a module system identifies a first serializable runtime object comprising a reference to a second serializable runtime object. The first serializable runtime object is an instantiation of a first element in a first package of the module system. The first package is open to one or more reflective operations. Based on determining that (a) the second serializable runtime object is an instantiation of…
Techniques for remediating serialization incompatibilities are disclosed. A runtime environment of a module system identifies a first serializable runtime object comprising a reference to a second serializable runtime object. The first serializable runtime object is an instantiation of a first element in a first package of the module system. The first package is open to one or more reflective operations. Based on determining that (a) the second serializable runtime object is an instantiation of a second element in a second package of the module system and (b) the second element is not open to the one or more reflective operations, a remedial operation, associated with the first serializable runtime object, is executed.
-
Restrictive access control for modular reflection
Issued US 10104090
Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a second…
Access to a module element within a first module by a second module is prohibited if the module element within the first module has not been exposed to the second module. If a particular module element within a first module has been exposed to a second module, then access to the particular module element by the second module may or may not be allowed depending on: (a) whether the particular module element has been declared with a public or non-public access modifier, (b) whether a second exposed module element, which includes the particular module element, has been declared with a public or non-public access modifier, (c) a level of access associated with the operation that attempts to access the particular module element of the first module, and/or (d) whether an accessibility override configuration is set for accessing the particular module element.
-
Configuring test operations on a per-Module basis
Filed US 20200089599
Techniques for configuring test operations on a per-module basis are disclosed. A system receives a command for configuring, on a per-module basis, test operations recited in a set of module code corresponding to a particular module of a plurality of modules in a module system. The module system specifies accessibility of each module in the plurality of modules to other modules in the plurality of modules. The system stores configuration information based on the command and configures a test…
Techniques for configuring test operations on a per-module basis are disclosed. A system receives a command for configuring, on a per-module basis, test operations recited in a set of module code corresponding to a particular module of a plurality of modules in a module system. The module system specifies accessibility of each module in the plurality of modules to other modules in the plurality of modules. The system stores configuration information based on the command and configures a test operation included in an element of the particular module based on the stored configuration information. Configuring the test operation includes one of: (a) enabling the test operation without affecting other code recited in-line with the test operation in the element of the particular module; or (b) disabling the test operation without affecting other code recited in-line with the test operation in the element of the particular module.
Projects
-
Incubator Modules
Incubator modules are a means of putting non-final APIs in the hands of developers while the APIs progress towards either finalization or removal in a future release.
-
Java 11 HTTP Client
-
Standardize the incubated HTTP Client API introduced in JDK 9, via JEP 110, and updated in JDK 10. See https://openjdk.java.net/groups/net/httpclient/
-
Encapsulate Most Internal APIs
-
Encapsulate most of the JDK's internal APIs by default so that they are inaccessible at compile time, and prepare for a future release in which they will be inaccessible at run time. Ensure that critical, widely-used internal APIs are not encapsulated, so that they remain accessible until supported replacements exist for all or most of their functionality.
-
Java API for SCTP
-
The goal of this Project is to develop an API for the Stream Control Transport Protocol (SCTP) and a corresponding OpenJDK implementation.
More activity by Chris
-
Binary/bit vectors are arriving soon to Elasticsearch (or in in Elastic Cloud Serverless now!). This give you the capability of using binary…
Binary/bit vectors are arriving soon to Elasticsearch (or in in Elastic Cloud Serverless now!). This give you the capability of using binary…
Liked by Chris Hegarty
-
Happy to see our team lead Paul Oremland discussing semantic search with Stack Overflow, who have built an incredible search experience with…
Happy to see our team lead Paul Oremland discussing semantic search with Stack Overflow, who have built an incredible search experience with…
Liked by Chris Hegarty
-
This is what is possible if we consider leveraging native code based optimisations with #ApacheLucene. We, at SearchScale (partnering with NVIDIA and…
This is what is possible if we consider leveraging native code based optimisations with #ApacheLucene. We, at SearchScale (partnering with NVIDIA and…
Liked by Chris Hegarty
-
I've finally retired. After a crazy number of years as a software engineer, it's time for me to just have fun. The last 7 years at Amazon have been…
I've finally retired. After a crazy number of years as a software engineer, it's time for me to just have fun. The last 7 years at Amazon have been…
Liked by Chris Hegarty
-
For anyone interested in learning about everything Elastic is doing on Vector Search and our continuous efforts to make #Elasticsearch the most high…
For anyone interested in learning about everything Elastic is doing on Vector Search and our continuous efforts to make #Elasticsearch the most high…
Liked by Chris Hegarty
-
Super exciting work by my colleagues Carlos Delgado Estremera and Michael Pellegrini on a new semantic_text offering. This is going to make starting…
Super exciting work by my colleagues Carlos Delgado Estremera and Michael Pellegrini on a new semantic_text offering. This is going to make starting…
Liked by Chris Hegarty
-
Fantastic writeup from Jim Ferenczi on designing for large scale vector search use cases https://lnkd.in/gncv-GGf
Fantastic writeup from Jim Ferenczi on designing for large scale vector search use cases https://lnkd.in/gncv-GGf
Liked by Chris Hegarty
-
Super excited about ES|QL (Elasticsearch Query Language), a dynamic language designed from the ground up to transform, enrich, and simplify data…
Super excited about ES|QL (Elasticsearch Query Language), a dynamic language designed from the ground up to transform, enrich, and simplify data…
Liked by Chris Hegarty
-
Semantic search is a powerful tool for relevance ranking. Using kNN is a technique used for obtaining the top k results from your vector embeddings…
Semantic search is a powerful tool for relevance ranking. Using kNN is a technique used for obtaining the top k results from your vector embeddings…
Liked by Chris Hegarty
-
Elastic is committed to making Elasticsearch and Lucene the best vector database out there. Our investments into Lucene are key to ensuring that…
Elastic is committed to making Elasticsearch and Lucene the best vector database out there. Our investments into Lucene are key to ensuring that…
Liked by Chris Hegarty
-
This might be old news to you, but Lucene is built in Java. Throughout the last almost 25 years, Lucene has continually pushed the limits of Java to…
This might be old news to you, but Lucene is built in Java. Throughout the last almost 25 years, Lucene has continually pushed the limits of Java to…
Liked by Chris Hegarty
-
at Commit Conf Madrid with Almudena Sanz Olivé and Pablo Sanz!
at Commit Conf Madrid with Almudena Sanz Olivé and Pablo Sanz!
Liked by Chris Hegarty
-
Find out how we made the onboarding experience to kNN search just a bit easier, and all the details on the benchmarking that takes place at Elastic…
Find out how we made the onboarding experience to kNN search just a bit easier, and all the details on the benchmarking that takes place at Elastic…
Liked by Chris Hegarty
-
Java 22 is out. Enter the (now final) Foreign Function & Memory API. It's been a long and wild ride with wonderful teammates and friends - as they…
Java 22 is out. Enter the (now final) Foreign Function & Memory API. It's been a long and wild ride with wonderful teammates and friends - as they…
Liked by Chris Hegarty
-
It’s a huge honor that Elastic has been named to Fast Company's Most Innovative Companies of 2024. The work that our teams are doing around search…
It’s a huge honor that Elastic has been named to Fast Company's Most Innovative Companies of 2024. The work that our teams are doing around search…
Liked by Chris Hegarty
-
Today marks my 8️⃣ year anniversary at Elastic. And it’s also a new start, since it’s my first day in SF to put us better on the map here — view from…
Today marks my 8️⃣ year anniversary at Elastic. And it’s also a new start, since it’s my first day in SF to put us better on the map here — view from…
Liked by Chris Hegarty
Other similar profiles
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore MoreOthers named Chris Hegarty in Ireland
-
Chris Hegarty
Regional Account Manager | BSC (hons) Retail Management
-
Chris Hegarty
Teacher at Donegal etb
-
Christopher Hegarty
Student at Cork Institute of Technology
-
Christopher Hegarty
Production Supervisor
6 others named Chris Hegarty in Ireland are on LinkedIn
See others named Chris Hegarty