High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts

Gespeichert in:
Bibliographische Detailangaben
Titel: High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts
Patent Number: 9,332,083
Publikationsdatum: May 03, 2016
Appl. No: 13/904843
Application Filed: May 29, 2013
Abstract: A server and/or a client stores a metadata hash map that includes one or more entries associated with keys for data records stored in a cache on a server, wherein the data records comprise Java Virtual Machine (JVM) artifacts or monitoring information. Each of the entries stores metadata for a corresponding data record, wherein the metadata comprises a server-side remote pointer that references the corresponding data record stored in the cache, as well as a version identifier for the key. A selected data record is accessed using a provided key by: (1) identifying potentially matching entries in the metadata hash map using the provided key; (2) accessing data records stored in the cache using the server-side remote pointers from the potentially matching entries; and (3) determining whether the accessed data records match the selected data record using the provided key and the version identifiers from the potentially matching entries.
Inventors: International Business Machines Corporation (Armonk, NY, US)
Assignees: International Business Machines Corporation (Armonk, NY, US)
Claim: 1. An apparatus for accessing data stored in a cache on a server, comprising: (a) a client connected to a server, wherein instructions are stored in memory by the client and the server, such that, when the instructions are executed by a hardware processor, the instructions cause the server and the client to perform the following functions: (b) the server and the client both storing a metadata hash map that is associated with a cache stored on the server, wherein: (1) the cache stores one or more data records that comprise an artifact, wherein the artifact is a Java virtual machine (JVM) artifact and the client shares the artifact with among applications in a shared classes JVM environment on the client; (2) the metadata hash map includes one or more entries associated with the data records stored in the cache, each of the entries is associated with a key for a corresponding data record in the cache, each of the entries store metadata for the corresponding data record, and the metadata comprises a server-side remote pointer that references the corresponding data record stored in the cache on the server, as well as a version identifier for the key; and (c) the client accessing a selected data record stored in the cache on the server using a provided key by: (1) identifying one or more potentially matching entries in the metadata hash map using the provided key; (2) performing one or more remote direct memory access (RDMA) operations to access one or more data records stored in the cache on the server using the server-side remote pointers from the potentially matching entries identified in the metadata hash map; and (3) determining whether the data records accessed by the RDMA operations match the selected data record using the provided key and the version identifiers from the potentially matching entries identified in the metadata hash map.
Claim: 2. The apparatus of claim 1 , wherein the Java virtual machine (JVM) artifact comprises generated code, user classes or system classes, that the client shares with other applications in the shared classes JVM environment.
Claim: 3. The apparatus of claim 1 , wherein the client creates or updates the selected data record comprising the artifact and stores the selected data record in the cache on the server.
Claim: 4. The apparatus of claim 1 , wherein the selected data record comprises monitoring information and the client stores the monitoring information in the cache stored on the server.
Claim: 5. The apparatus of claim 4 , wherein the monitoring information comprises run-time information from a Java virtual machine (JVM) and the monitoring information is used to tune the JVM.
Claim: 6. The apparatus of claim 1 , wherein the metadata hash map on the client is updated when a create, read, update or delete operation performed by the server at the client's direction results in the metadata hash map on the server being updated.
Claim: 7. A method for accessing data stored in a cache on a server, comprising: (a) connecting a client to a server, wherein instructions are stored in memory by the client and the server, such that, when the instructions are executed by a hardware processor, the instructions cause the server and the client to perform the following functions: (b) storing a metadata hash map on the server and the client that is associated with a cache stored on the server, wherein: (1) the cache stores one or more data records that comprise an artifact, wherein the artifact is a Java virtual machine (JVM) artifact and the client shares the artifact with among applications in a shared classes JVM environment on the client; (2) the metadata hash map includes one or more entries associated with the data records stored in the cache, each of the entries is associated with a key for a corresponding data record in the cache, each of the entries store metadata for the corresponding data record, and the metadata comprises a server-side remote pointer that references the corresponding data record stored in the cache on the server, as well as a version identifier for the key; and (c) the client accessing a selected data record stored in the cache on the server using a provided key by: (1) identifying one or more potentially matching entries in the metadata hash map using the provided key; (2) performing one or more remote direct memory access (RDMA) operations to access one or more data records stored in the cache on the server using the server-side remote pointers from the potentially matching entries identified in the metadata hash map; and (3) determining whether the data records accessed by the RDMA operations match the selected data record using the provided key and the version identifiers from the potentially matching entries identified in the metadata hash map.
Claim: 8. The method of claim 7 , wherein the Java virtual machine (JVM) artifact comprises generated code, user classes or system classes, that the client shares with other applications in the shared classes JVM environment.
Claim: 9. The method of claim 7 , wherein the client creates or updates the selected data record comprising the artifact and stores the selected data record in the cache on the server.
Claim: 10. The method of claim 7 , wherein the selected data record comprises monitoring information and the client stores the monitoring information in the cache stored on the server.
Claim: 11. The method of claim 10 , wherein the monitoring information comprises run-time information from a Java virtual machine (JVM) and the monitoring information is used to tune the JVM.
Claim: 12. The method of claim 7 , wherein the metadata hash map on the client is updated when a create, read, update or delete operation performed by the server at the client's direction results in the metadata hash map on the server being updated.
Claim: 13. A computer program product for accessing data stored in a cache on a server, said computer program product comprising: a non-transitory computer readable storage medium having stored or encoded thereon: program instructions executable by one or more computers to cause the computers to perform the steps of: (a) connecting a client to a server, wherein instructions are stored in memory by the client and the server, such that, when the instructions are executed by a hardware processor, the instructions cause the server and the client to perform the following functions: (b) storing a metadata hash map on the server and the client that is associated with a cache stored on the server, wherein: (1) the cache stores one or more data records that comprise an artifact, wherein the artifact is a Java virtual machine (JVM) artifact and the client shares the artifact with among applications in a shared classes JVM environment on the client; (2) the metadata hash map includes one or more entries associated with the data records stored in the cache, each of the entries is associated with a key for a corresponding data record in the cache, each of the entries store metadata for the corresponding data record, and the metadata comprises a server-side remote pointer that references the corresponding data record stored in the cache on the server, as well as a version identifier for the key; and (c) the client accessing a selected data record stored in the cache on the server using a provided key by: (1) identifying one or more potentially matching entries in the metadata hash map using the provided key; (2) performing one or more remote direct memory access (RDMA) operations to access one or more data records stored in the cache on the server using the server-side remote pointers from the potentially matching entries identified in the metadata hash map; and (3) determining whether the data records accessed by the RDMA operations match the selected data record using the provided key and the version identifiers from the potentially matching entries identified in the metadata hash map.
Claim: 14. The computer program product of claim 13 , wherein the Java virtual machine (JVM) artifact comprises generated code, user classes or system classes, that the client shares with other applications in the shared classes JVM environment.
Claim: 15. The computer program product of claim 13 , wherein the client creates or updates the selected data record comprising the artifact and stores the selected data record in the cache on the server.
Claim: 16. The computer program product of claim 13 , wherein the selected data record comprises monitoring information and the client stores the monitoring information in the cache stored on the server.
Claim: 17. The computer program product of claim 16 , wherein the monitoring information comprises run-time information from a Java virtual machine (JVM) and the monitoring information is used to tune the JVM.
Claim: 18. The computer program product of claim 13 , wherein the metadata hash map on the client is updated when a create, read, update or delete operation performed by the server at the client's direction results in the metadata hash map on the server being updated.
Patent References Cited: 7493449 February 2009 Marwinski
7788711 August 2010 Sun
7797393 September 2010 Qiu et al.
7912695 March 2011 Krishnamurthy
7941401 May 2011 Okamoto
8046425 October 2011 Gopalan et al.
8161353 April 2012 Flynn
8392798 March 2013 Flynn
8434080 April 2013 Yendluri
8576861 November 2013 Cardona
8645939 February 2014 Felts
8789026 July 2014 Auerbach
8793467 July 2014 Colgrove et al.
8861527 October 2014 Bao et al.
8904004 December 2014 Havemose
8938725 January 2015 Auerbach
9075710 July 2015 Talagala et al.
2002/0038390 March 2002 Callsen et al.
2003/0159006 August 2003 Frank et al.
2004/0010612 January 2004 Pandya
2006/0036602 February 2006 Unangst et al.
2006/0143359 June 2006 Dostert et al.
2006/0143427 June 2006 Marwinski
2006/0143595 June 2006 Dostert et al.
2006/0277180 December 2006 Okamoto
2008/0133212 June 2008 Krishnamurthy
2009/0144728 June 2009 Felts
2010/0031000 February 2010 Flynn
2010/0082766 April 2010 Dreier
2010/0262694 October 2010 Havemose
2011/0022801 January 2011 Flynn
2011/0055471 March 2011 Thatcher
2012/0102486 April 2012 Yendluri
2012/0124030 May 2012 Seetharama et al.
2012/0204024 August 2012 Augenstein et al.
2012/0210095 August 2012 Nellans
2013/0036408 February 2013 Auerbach
2013/0036409 February 2013 Auerbach
2014/0229600 August 2014 Shetty et al.
2014/0280024 September 2014 Baskett
2014/0331016 November 2014 Dawson
2015/0012539 January 2015 McHugh et al.


Other References: Myers, A., Lecture 14, CS 312, Cornell University, Ithaca NY, Dec. 4, 2003. www.cs.cornell.edu/courses/cs312/lectures/lec14.html. cited by examiner
IPCOM000196714D; “High Performance Cache With LRU Replacement Policy”; http://priorartdatabase.com/IPCOM/196714; Jun. 12, 2010. cited by applicant
Oliver, JK.; “Cache Hash Overflow Table for Computers Using Cache Memory”; http://www.ip.com/pubview/IPCOM000035915D; Jan. 28, 2005. cited by applicant
Primary Examiner: Tran, Jimmy H
Attorney, Agent or Firm: Gates & Cooper LLP
Dokumentencode: edspgr.09332083
Datenbank: USPTO Patent Grants