Browse Prior Art Database

Partitioning of a Large Range of Objects into Subranges to Allow Multiple Thread Access to the Range of Objects

IP.com Disclosure Number: IPCOM000146759D
Original Publication Date: 2007-Feb-21
Included in the Prior Art Database: 2007-Feb-21
Document File: 1 page(s) / 27K

Publishing Venue

IBM

Abstract

A mechanism which will allow multiple transactions simultaneous access to a bit map by partitioning the bit map into distinct subranges of bits that can be allocated to a transaction for the duration of the transaction. The key underlying idea is that rarely will one transaction access all the bits in a bitvector; thus, partitioning the bitvector into pieces that can be exclusively dedicated to one transaction will allow more than one transaction to work with the bit vector.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 1

Partitioning of a Large Range of Objects into Subranges to Allow Multiple Thread Access to the Range of Objects

In the Tivoli Storage Manager product, the allocation map of disk-based storage is managed with a bit map, where one bit represents some number of bytes of storage on the disk. Operations include marking bits in use, or marking them not in use. Using the semantics and capability of the proprietary TSM database, multiple threads can access a bit vector simultanously. These semantics also include the necessary provisions to allow a transaction to roll back changes to the bit map if a transaction fails. As we move to a third-party database, the proprietary capability of the TSM database will not be available to us for managing bit vectors. We need to find another mechanism to do this such that multiple transactions can access a bit vector simultaneously.

Definitions:

B (integer) the number of bit represented in the bitvector V.

N (integer) the number of bits per subrange, except, possibly, the last subrange N does not divide into B exactly. For this invention, B must be greater than N.

Subrange0 includes bits 0 through N-1.

Subrange1 includes bits N through 2N - 1, if 2N - 1 < B
Subrange1 includes bits N through B if B <= 2N - 1, and Subrange0 and Subrange1 define the entire bitvector.

Subrange2 includes bits 2N through 3N - 1, if 3N - 1 < B
Subrange2 includes bits 2N through B if B <= 2*N - 1, and Subrange0, Subrange1, and Subrange2 defi...