Multi-threaded processing system having a cache that is commonly
accessible to each thread
    1.
    发明授权
    Multi-threaded processing system having a cache that is commonly accessible to each thread 失效
    具有每个线程通常可访问的高速缓存的多线程处理系统

    公开(公告)号:US5701432A

    公开(公告)日:1997-12-23

    申请号:US543105

    申请日:1995-10-13

    IPC分类号: G06F12/08 G06F12/12 G06F12/14

    CPC分类号: G06F12/0842

    摘要: A multi-threaded processing system has a cache that is commonly accessible to each thread. The cache has a plurality of entries for storing items, each entry being identified by an entry number. The location in the cache of an item that includes a first key is determined by supplying the first key to a lockless-lookup engine which then provides a lookup output that is alternatively a lookup entry number or an indication that the item is not stored in the cache. The lookup entry number is alternatively a first or second entry number, wherein the first entry number points to a first entry in which the item is stored and the second entry number points to a second entry in which the item is not stored. If the lookup output is the lookup entry number, then it is verified that the lookup entry number is the first entry number. This verification includes acquiring a mutual exclusion lock on the entry designated by the lookup entry number, using the lookup entry number to read a stored key from the cache, and comparing the first key with the stored key. If the two keys match, then the item has been located. Other aspects of the invention address the situations where the two keys do not match, or where the lookup output is the indication that the item is not stored in the cache.

    摘要翻译: 多线程处理系统具有每个线程通常可访问的高速缓存。 高速缓存具有用于存储项目的多个条目,每个条目由条目号码标识。 通过将第一密钥提供给无锁定查找引擎来确定包含第一密钥的项目的高速缓存中的位置,该锁定查找引擎然后提供查找输出,该查找输出或者是查找条目号码或者该项目未被存储在该存储器中的指示 缓存。 查找条目号码可选地是第一或第二条目号码,其中第一条目号码指向存储该物品的第一条目,而第二条目号码指向不存储该物品的第二条目。 如果查找输出是查找条目号,则验证查找条目号是第一个条目号。 该验证包括:使用查找条目号从高速缓存读取所存储的密钥,并将第一密钥与所存储的密钥进行比较,获取由查找条目号指定的条目上的互斥锁。 如果两个键匹配,则该项目已被找到。 本发明的其他方面解决了两个密钥不匹配的情况,或者查找输出是该项目未被存储在高速缓存中的指示。

    Efficient hash table for use in multi-threaded environments
    2.
    发明授权
    Efficient hash table for use in multi-threaded environments 失效
    用于多线程环境的高效哈希表

    公开(公告)号:US06115802A

    公开(公告)日:2000-09-05

    申请号:US34181

    申请日:1998-03-03

    IPC分类号: G06F12/08 G06F12/00

    CPC分类号: G06F12/0806 Y10S707/99931

    摘要: A lockless-lookup hash table for use in a multi-threaded processing system has a memory whose storage locations hold elements. Each memory location is uniquely identified by an index value, and each element includes a key and a value. The target location for storing an input value is determined by generating a hash value from an input key value, and probing storage locations, beginning at the one designated by the generated hash value, until an empty location is found. In accordance with one aspect of the invention, the hash table may be used as a commonly accessed resource in a multi-threaded environment without requiring locks associated with lookup operations. In such environments, incorrect results may be tolerated, so long as the lookup operation is guaranteed never to return a value that had never been stored into the table by one of the threads in the system. This characteristic is provided in the present invention by an insert operation that never writes the value portion of the element into a location last. Instead, the last thing stored by an insert operation is the key, or alternatively any other portion of the element that is utilized by the lookup operation for determining whether a sought-after element has been located. Other aspects of the invention relate to optimizing performance of the hash table during lookup and delete operations, and to reducing the number of erroneous results produced when lockless-lookup operations proceed in a multi-threaded environment.

    摘要翻译: 用于多线程处理系统的无锁查找哈希表具有其存储位置保持元素的存储器。 每个存储器位置由索引值唯一地标识,并且每个元素包括键和值。 用于存储输入值的目标位置通过从输入键值生成哈希值,并且从由所生成的散列值指定的一个开始探测存储位置,直到找到空的位置来确定。 根据本发明的一个方面,散列表可以用作多线程环境中的共同访问的资源,而不需要与查找操作相关的锁定。 在这样的环境中,可以容忍不正确的结果,只要确保查找操作不会从系统中的某个线程返回一个从未存储到表中的值。 通过插入操作在本发明中提供了该特性,该插入操作从不将元素的值部分写入最后的位置。 相反,由插入操作存储的最后一件事物是用于确定是否已经被寻找元素已被定位的查找操作所使用的元素的关键字,或替代的任何其他部分。 本发明的其他方面涉及在查找和删除操作期间优化哈希表的性能,并且减少在多线程环境中进行无锁定查找操作时产生的错误结果的数量。

    Maximal concurrent lookup cache for computing systems having a
multi-threaded environment
    3.
    发明授权
    Maximal concurrent lookup cache for computing systems having a multi-threaded environment 失效
    具有多线程环境的计算系统的最大并发查找缓存

    公开(公告)号:US5909695A

    公开(公告)日:1999-06-01

    申请号:US773258

    申请日:1996-12-23

    IPC分类号: G06F12/08 G06F12/12 G06F12/00

    CPC分类号: G06F12/0842

    摘要: A multi-threaded processing system has a cache that is commonly accessible to each thread. The cache has a plurality of entries for storing items, each entry being identified by an entry number. The location in the cache of an item that includes a first key is determined by supplying the first key to a lockless-lookup engine which then provides a lookup output that is alternatively a lookup entry number or an indication that the item is not stored in the cache. The lookup entry number is alternatively a first or second entry number, wherein the first entry number points to a first entry in which the item is stored and the second entry number points to a second entry in which the item is not stored. If the lookup output is the lookup entry number, then it is verified that the lookup entry number is the first entry number. This verification includes acquiring a mutual exclusion lock on the entry designated by the lookup entry number, using the lookup entry number to read a stored key from the cache, and comparing the first key with the stored key. If the two keys match, then the item has been located. Other aspects of the invention address the situations where the two keys do not match, or where the lookup output is the indication that the item is not stored in the cache.

    摘要翻译: 多线程处理系统具有每个线程通常可访问的高速缓存。 高速缓存具有用于存储项目的多个条目,每个条目由条目号码标识。 通过将第一密钥提供给无锁定查找引擎来确定包含第一密钥的项目的高速缓存中的位置,该锁定查找引擎然后提供查找输出,该查找输出或者是查找条目号码或者该项目未被存储在该存储器中的指示 缓存。 查找条目号码可选地是第一或第二条目号码,其中第一条目号码指向存储该物品的第一条目,而第二条目号码指向不存储该物品的第二条目。 如果查找输出是查找条目号,则验证查找条目号是第一个条目号。 该验证包括:使用查找条目号从高速缓存读取所存储的密钥,并将第一密钥与所存储的密钥进行比较,获取由查找条目号指定的条目上的互斥锁。 如果两个键匹配,则该项目已被找到。 本发明的其他方面解决了两个密钥不匹配的情况,或者查找输出是该项目未被存储在高速缓存中的指示。

    System and method for automatically modifying database access methods to insert database object handling instructions
    4.
    发明授权
    System and method for automatically modifying database access methods to insert database object handling instructions 失效
    用于自动修改数据库访问方法以插入数据库对象处理指令的系统和方法

    公开(公告)号:US06915510B1

    公开(公告)日:2005-07-05

    申请号:US09627413

    申请日:2000-07-27

    IPC分类号: G06F12/00 G06F9/44 G06F9/445

    摘要: A system and method for automatically converting a compiled program that accesses objects stored in main memory into a program that accesses and updates persistently stored objects. An initial computer program includes original instructions for accessing and updating objects in at least a first object class. The original instructions access and update objects in a computer's main memory. The system automatically revises the initial computer program to generate a revised computer program by adding to the original instructions object loading instructions and object storing instructions. The system further revises the initial computer program to generate the revised computer program by adding to the original instructions dirty object marking instructions that, during execution of the revised computer program, keep track of which objects in the computer's main memory contain new and/or updated data.

    摘要翻译: 一种用于将访问存储在主存储器中的对象的编译程序自动转换为访问和更新持久存储的对象的程序的系统和方法。 初始计算机程序包括用于访问和更新至少第一对象类中的对象的原始指令。 原始指令访问和更新计算机主内存中的对象。 系统自动修改初始计算机程序,通过添加原始指令对象加载指令和对象存储指令来生成修改后的计算机程序。 该系统进一步修改初始计算机程序以生成修改的计算机程序,通过向原始指令添加脏对象标记指令,在执行修改的计算机程序期间,跟踪计算机主存储器中的哪些对象包含新的和/或更新的 数据。

    System and method for automatically modifying database access methods to
insert database object handling instructions
    5.
    发明授权
    System and method for automatically modifying database access methods to insert database object handling instructions 失效
    用于自动修改数据库访问方法以插入数据库对象处理指令的系统和方法

    公开(公告)号:US6128771A

    公开(公告)日:2000-10-03

    申请号:US599055

    申请日:1996-02-09

    IPC分类号: G06F12/00 G06F9/44 G06F9/45

    摘要: A system and method for automatically converting a compiled program that accesses objects stored in main memory into a program that accesses and updates persistently stored objects. An initial computer program includes original instructions for accessing and updating objects in at least a first object class. The original instructions access and update objects in a computer's main memory. The system automatically revises the initial computer program to generate a revised computer program by adding to the original instructions object loading instructions and object storing instructions. During execution of the revised computer program, the object loading instructions load a copy of one of the persistently stored objects into a corresponding object in the computer's main memory when the object is accessed for a first time. The object storing instructions copy objects in the computer's main memory that contain new or modified data into corresponding persistently stored objects upon the occurrence of predefined events, such as the completion of a transaction. The system further revises the initial computer program to generate the revised computer program by adding to the original instructions dirty object marking instructions that, during execution of the revised computer program, keep track of which objects in the computer's main memory contain new and/or updated data. The object storing instructions copy only those of the objects in the computer's main memory that contain new and/or updated data.

    摘要翻译: 一种用于将访问存储在主存储器中的对象的编译程序自动转换为访问和更新持久存储的对象的程序的系统和方法。 初始计算机程序包括用于访问和更新至少第一对象类中的对象的原始指令。 原始指令访问和更新计算机主内存中的对象。 系统自动修改初始计算机程序,通过添加原始指令对象加载指令和对象存储指令来生成修改后的计算机程序。 在执行修改的计算机程序期间,当对象被首次访问时,对象加载指令将持久存储对象中的一个的副本加载到计算机主存储器中的对应对象中。 存储指令的对象在发生预定义事件(例如事务的完成)时将包含新的或修改的数据的对象复制到相应的持久存储的对象中。 该系统进一步修改初始计算机程序以生成修改的计算机程序,通过向原始指令添加脏对象标记指令,在执行修改的计算机程序期间,跟踪计算机主存储器中的哪些对象包含新的和/或更新的 数据。 存储指令的对象仅复制计算机主存储器中包含新数据和/或更新数据的对象。

    Computer program product having preloaded software module

    公开(公告)号:US06223346B1

    公开(公告)日:2001-04-24

    申请号:US09416285

    申请日:1999-10-12

    申请人: Theron D. Tock

    发明人: Theron D. Tock

    IPC分类号: G06F9445

    摘要: A method and system for providing an executable module having an address space for storing program data that is to reside in a read-only storage medium and an address space for storing program data that is to reside in a random access memory is herein described. The executable module represents Java classes that are structured for dynamic class loading. A static class loader is used to modify the class structure to accommodate static loading. The static class loader also identifies methods that contain unresolved symbolic references and data that varies during the execution of the module. These methods and data are identified in order to place them in the address space that resides in the random access memory. The static loader is beneficial in a distributed computing environment having a client computer that has little or no secondary storage thereby requiring applications to run entirely in random access memory. By utilizing a read-only memory to store statically loadable classes, the random access memory is left available for other uses.

    Method and system for loading classes in read-only memory

    公开(公告)号:US5815718A

    公开(公告)日:1998-09-29

    申请号:US655474

    申请日:1996-05-30

    申请人: Theron D. Tock

    发明人: Theron D. Tock

    摘要: A method and system for providing an executable module having an address space for storing program data that is to reside in a read-only storage medium and an address space for storing program data that is to reside in a random access memory is herein described. The executable module represents Java classes that are structured for dynamic class loading. A static class loader is used to modify the class structure to accommodate static loading. The static class loader also identifies methods that contain unresolved symbolic references and data that varies during the execution of the module. These methods and data are identified in order to place them in the address space that resides in the random access memory. The static loader is beneficial in a distributed computing environment having a client computer that has little or no secondary storage thereby requiring applications to run entirely in random access memory. By utilizing a read-only memory to store statically loadable classes, the random access memory is left available for other uses.

    Method and system for facilitating access control to system resources in
a distributed computer system
    8.
    发明授权
    Method and system for facilitating access control to system resources in a distributed computer system 失效
    用于促进对分布式计算机系统中的系统资源的访问控制的方法和系统

    公开(公告)号:US5742759A

    公开(公告)日:1998-04-21

    申请号:US516671

    申请日:1995-08-18

    摘要: Embodiments of the present invention provide an improved method and system for securely controlling access to resources in a distributed computer system. One embodiment of the present invention stores and binds a group identification to a target object and then uses membership checking to determine whether a client object which requests access to the target object is a member of a group with access rights to the target object. In this way, the present invention avoids performing costly cryptographic operations in order to verify access rights of requesting objects, as was common in some prior art systems. A second embodiment of the present invention stores and binds a group identification to a target object reference and then passes the target object reference to client objects in the system. Since the target object reference includes a group identification entry, a first client object is able to determine which other clients in the system are members of the identified group. This determination allows the first client object to pass the target object reference to the other members of the group without first communicating with the server for the target object. In this way, the present invention avoids the costly transaction costs of communicating with the server for the target object.

    摘要翻译: 本发明的实施例提供了一种用于在分布式计算机系统中安全地控制对资源的访问的改进的方法和系统。 本发明的一个实施例将组标识存储并绑定到目标对象,然后使用成员资格检查来确定请求对目标对象的访问的客户端对象是否是具有对目标对象的访问权限的组的成员。 以这种方式,本发明避免了执行昂贵的密码操作以便验证请求对象的访问权限,如在一些现有技术系统中所常见的那样。 本发明的第二实施例将组标识存储并绑定到目标对象引用,然后将目标对象引用传递给系统中的客户端对象。 由于目标对象引用包括组标识条目,所以第一客户端对象能够确定系统中哪些其他客户端是所识别的组的成员。 该确定允许第一客户端对象将目标对象引用传递给组的其他成员,而不首先与目标对象的服务器通信。 以这种方式,本发明避免了与目标对象的服务器通信的昂贵的交易成本。

    Computer program product having preloaded software module
    9.
    发明授权
    Computer program product having preloaded software module 有权
    计算机程序产品预装了软件模块

    公开(公告)号:US07159213B2

    公开(公告)日:2007-01-02

    申请号:US09840733

    申请日:2001-04-23

    申请人: Theron D. Tock

    发明人: Theron D. Tock

    IPC分类号: G06F9/45

    摘要: A method and system for providing an executable module having an address space for storing program data that is to reside in a read-only storage medium and an address space for storing program data that is to reside in a random access memory is herein described. The executable module represents Java classes that are structured for dynamic class loading. A static class loader is used to modify the class structure to accommodate static loading. The static class loader also identifies methods that contain unresolved symbolic references and data that varies during the execution of the module. These methods and data are identified in order to place them in the address space that resides in the random access memory. The static loader is beneficial in a distributed computing environment having a client computer that has little or no secondary storage thereby requiring applications to run entirely in random access memory. By utilizing a read-only memory to store statically loadable classes, the random access memory is left available for other uses.

    摘要翻译: 这里描述了一种用于提供具有用于存储驻留在只读存储介质中的程序数据的地址空间和用于存储驻留在随机存取存储器中的程序数据的地址空间的可执行模块的方法和系统。 可执行模块表示构造为动态类加载的Java类。 静态类加载器用于修改类结构以适应静态加载。 静态类加载器还会识别包含未解析的符号引用和在执行模块期间不同的数据的方法。 识别这些方法和数据以便将它们放置在驻留在随机存取存储器中的地址空间中。 静态加载器在分布式计算环境中是有利的,其中客户端计算机具有很少的或没有辅助存储器,从而要求应用程序完全在随机存取存储器中运行。 通过使用只读存储器来存储静态可加载类,随机存取存储器可供其他用途使用。

    Method and system for loading classes in read-only memory
    10.
    发明授权
    Method and system for loading classes in read-only memory 有权
    在只读存储器中加载类的方法和系统

    公开(公告)号:US5966542A

    公开(公告)日:1999-10-12

    申请号:US131686

    申请日:1998-08-10

    申请人: Theron D. Tock

    发明人: Theron D. Tock

    摘要: A method and system for providing an executable module having an address space for storing program data that is to reside in a read-only storage medium and an address space for storing program data that is to reside in a random access memory is herein described. The executable module represents Java classes that are structured for dynamic class loading. A static class loader is used to modify the class structure to accommodate static loading. The static class loader also identifies methods that contain unresolved symbolic references and data that varies during the execution of the module. These methods and data are identified in order to place them in the address space that resides in the random access memory. The static loader is beneficial in a distributed computing environment having a client computer that has little or no secondary storage thereby requiring applications to run entirely in random access memory. By utilizing a read-only memory to store statically loadable classes, the random access memory is left available for other uses.

    摘要翻译: 这里描述了一种用于提供具有用于存储驻留在只读存储介质中的程序数据的地址空间和用于存储驻留在随机存取存储器中的程序数据的地址空间的可执行模块的方法和系统。 可执行模块表示构造为动态类加载的Java类。 静态类加载器用于修改类结构以适应静态加载。 静态类加载器还会识别包含未解析的符号引用和在执行模块期间不同的数据的方法。 识别这些方法和数据以便将它们放置在驻留在随机存取存储器中的地址空间中。 静态加载器在分布式计算环境中是有利的,其中客户端计算机具有很少的或没有辅助存储器,从而要求应用程序完全在随机存取存储器中运行。 通过使用只读存储器来存储静态可加载类,随机存取存储器可供其他用途使用。