Capturing data changes utilizing data-space tracking
First Claim
1. A method of reorganizing a database and concurrently providing access to the database for updates, the database including an original data-space having a plurality of original data-elements and a shadow data-space having a plurality of shadow data-elements, the method comprising:
- copying contents of an original data-element within the original data-space to a shadow data-element within the shadow data-space;
reorganizing the shadow data-space;
keeping track of a location of an original data-element that is changed after its contents are copied to the shadow data-element; and
copying data from the location of the changed original data-element to its corresponding shadow data-element in the reorganized shadow data-space.
0 Assignments
0 Petitions

Accused Products

Abstract
An on-line reorganization facility (ORF) uses index data-spaces that point to other data-spaces, referred to as data data-spaces, to efficiently track and coordinate information about the data-elements in an original data-space operated upon by a reorganization process. A relative base address of a data-element in an index data-space can be derived from a relative base address of a data-element in an original data-space, and vice versa. An index data-space data-element contains a location of a data-element in a data data-space that tracks change information related to a corresponding data-element in the original data-space. Tracked changes are later applied to the newly reorganized data-space to assure consistency and integrity of the data. Tracked changes include the location in the original data-space where the change occurred and a flag indicting the type of change.
141 Citations
Network-initiated data transfer in a mobile network | ||
Patent #
US 7,904,101 B2
Filed 06/21/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Flexible billing architecture | ||
Patent #
US 8,010,082 B2
Filed 10/19/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing user-to-user contact with inferred presence information | ||
Patent #
US 8,069,166 B2
Filed 02/27/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Multiple data store authentication | ||
Patent #
US 8,064,583 B1
Filed 09/21/2006
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Connectivity function for forwarding e-mail | ||
Patent #
US 7,769,400 B2
Filed 08/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
E-mail messaging to/from a mobile terminal | ||
Patent #
US 7,643,818 B2
Filed 11/21/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Scalable Ticket Generation in a Database System | ||
Patent #
US 20090055346A1
Filed 08/23/2007
|
Current Assignee
Oath Inc.
|
Original Assignee
Yahoo Inc.
|
Connectivity function for forwarding e-mail | ||
Patent #
US 20090075683A1
Filed 08/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Network-initiated data transfer in a mobile network | ||
Patent #
US 20070019611A1
Filed 06/21/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Database synchronization | ||
Patent #
US 20060149794A1
Filed 12/08/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Database synchronization via a mobile network | ||
Patent #
US 20060184591A1
Filed 12/28/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
E-mail messaging to/from a mobile terminal | ||
Patent #
US 20060240805A1
Filed 11/21/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,127,342 B2
Filed 09/23/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning applications for a mobile device | ||
Patent #
US 8,078,158 B2
Filed 06/26/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,116,214 B2
Filed 11/30/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,107,921 B2
Filed 01/11/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,166,164 B1
Filed 10/14/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,190,701 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,291,076 B2
Filed 03/05/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Social caching for device resource sharing and management | ||
Patent #
US 8,316,098 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed management of keep-alive message signaling for mobile network resource conservation and optimization | ||
Patent #
US 8,326,985 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 8,356,080 B2
Filed 07/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,364,181 B2
Filed 12/10/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Context aware data presentation | ||
Patent #
US 8,412,675 B2
Filed 02/24/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Aligning data transfer to optimize connections established for transmission over a wireless network | ||
Patent #
US 8,417,823 B2
Filed 11/18/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Flexible real-time inbox access | ||
Patent #
US 8,438,633 B1
Filed 12/18/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Publishing data in an information community | ||
Patent #
US 8,468,126 B2
Filed 12/14/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed caching in a wireless network of content delivered for a mobile application over a long-held request | ||
Patent #
US 8,484,314 B2
Filed 10/14/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning applications for a mobile device | ||
Patent #
US 8,494,510 B2
Filed 12/06/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management with optimized polling intervals | ||
Patent #
US 8,539,040 B2
Filed 02/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Secure end-to-end transport through intermediary nodes | ||
Patent #
US 8,549,587 B2
Filed 02/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for executing commands that are non-native to the native environment of a mobile device | ||
Patent #
US 8,561,086 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detecting and preserving state for satisfying application requests in a distributed proxy and cache system | ||
Patent #
US 8,621,075 B2
Filed 04/27/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Cache state management on a mobile device to preserve user experience | ||
Patent #
US 8,635,339 B2
Filed 08/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Polling | ||
Patent #
US 8,693,494 B2
Filed 03/31/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,700,728 B2
Filed 05/17/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Cross-platform event engine | ||
Patent #
US 8,209,709 B2
Filed 07/05/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache | ||
Patent #
US 8,204,953 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Electronic-mail filtering for mobile devices | ||
Patent #
US 8,738,050 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network | ||
Patent #
US 8,750,123 B1
Filed 07/31/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Maintaining an IP connection in a mobile network | ||
Patent #
US 8,761,756 B2
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks International Oy
|
Integrated messaging | ||
Patent #
US 8,774,844 B2
Filed 04/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications | ||
Patent #
US 8,775,631 B2
Filed 02/25/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Timing of keep-alive messages used in a system for mobile network resource conservation and optimization | ||
Patent #
US 8,782,222 B2
Filed 09/05/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application discovery on mobile devices | ||
Patent #
US 8,787,947 B2
Filed 06/18/2008
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Content delivery to a mobile device from a content service | ||
Patent #
US 8,793,305 B2
Filed 12/13/2007
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method of a relay server for managing communications and notification between a mobile device and a web access server | ||
Patent #
US 8,799,410 B2
Filed 04/13/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Maintaining mobile terminal information for secure communications | ||
Patent #
US 8,805,334 B2
Filed 09/05/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Integrated messaging | ||
Patent #
US 8,805,425 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile device power management in data synchronization over a mobile network with or without a trigger notification | ||
Patent #
US 8,811,952 B2
Filed 05/05/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and system for management of a virtual network connection without heartbeat messages | ||
Patent #
US 8,812,695 B2
Filed 04/03/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
System and method for tracking billing events in a mobile wireless network for a network operator | ||
Patent #
US 8,831,561 B2
Filed 04/28/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief | ||
Patent #
US 8,832,228 B2
Filed 04/26/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed caching for resource and mobile network traffic management | ||
Patent #
US 8,838,783 B2
Filed 07/05/2011
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Flexible real-time inbox access | ||
Patent #
US 8,839,412 B1
Filed 09/13/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Web-based access to data objects | ||
Patent #
US 8,838,744 B2
Filed 01/28/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile traffic categorization and policy for network use optimization while preserving user experience | ||
Patent #
US 8,843,153 B2
Filed 11/01/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System for providing policy based content service in a mobile network | ||
Patent #
US 8,849,902 B2
Filed 06/24/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization | ||
Patent #
US 8,861,354 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Policy based content service | ||
Patent #
US 8,862,657 B2
Filed 01/25/2008
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation | ||
Patent #
US 8,868,753 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Provisioning of e-mail settings for a mobile terminal | ||
Patent #
US 8,873,411 B2
Filed 01/12/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols | ||
Patent #
US 8,874,761 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile application traffic optimization | ||
Patent #
US 8,886,176 B2
Filed 07/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of resource polling intervals to satisfy mobile device requests | ||
Patent #
US 8,903,954 B2
Filed 11/22/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile virtual network operator | ||
Patent #
US 8,909,192 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Bandwidth measurement | ||
Patent #
US 8,909,759 B2
Filed 10/12/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Detection and management of user interactions with foreground applications on a mobile device in distributed caching | ||
Patent #
US 8,909,202 B2
Filed 01/07/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
System and method for providing a network service in a distributed fashion to a mobile device | ||
Patent #
US 8,914,002 B2
Filed 08/11/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimization of mobile traffic directed to private networks and operator configurability thereof | ||
Patent #
US 8,918,503 B2
Filed 08/28/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Method and apparatus for intercepting events in a communication system | ||
Patent #
US RE45,348 E1
Filed 03/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Application and network-based long poll request detection and cacheability assessment therefor | ||
Patent #
US 8,966,066 B2
Filed 10/12/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation | ||
Patent #
US 8,977,755 B2
Filed 12/06/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Monitoring mobile application activities for malicious traffic on a mobile device | ||
Patent #
US 8,984,581 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Connection architecture for a mobile network | ||
Patent #
US 8,989,728 B2
Filed 09/07/2006
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Predictive content delivery | ||
Patent #
US 9,002,828 B2
Filed 01/02/2009
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation | ||
Patent #
US 9,009,250 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system | ||
Patent #
US 9,021,021 B2
Filed 12/10/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
3D mobile user interface with configurable workspace management | ||
Patent #
US 9,043,731 B2
Filed 03/30/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,043,433 B2
Filed 05/25/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Intelligent rendering of information in a limited display environment | ||
Patent #
US 9,047,142 B2
Filed 12/16/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network traffic coordination across multiple applications | ||
Patent #
US 9,049,179 B2
Filed 01/20/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Location-based operations and messaging | ||
Patent #
US 9,055,102 B2
Filed 08/02/2010
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic | ||
Patent #
US 9,060,032 B2
Filed 05/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network | ||
Patent #
US 9,065,765 B2
Filed 10/08/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks Inc
|
Distributed implementation of dynamic wireless traffic policy | ||
Patent #
US 9,077,630 B2
Filed 07/08/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Device resources sharing for network resource conservation | ||
Patent #
US 9,084,105 B2
Filed 04/19/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Mobile network background traffic data management | ||
Patent #
US 9,100,873 B2
Filed 09/14/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Managing cache to prevent overloading of a wireless network due to user activity | ||
Patent #
US 9,131,397 B2
Filed 06/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion | ||
Patent #
US 9,161,258 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,173,128 B2
Filed 03/06/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Dynamic categorization of applications for network access in a mobile network | ||
Patent #
US 9,203,864 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor | ||
Patent #
US 9,208,123 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile device with application or context aware fast dormancy | ||
Patent #
US 9,241,314 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network | ||
Patent #
US 9,239,800 B2
Filed 07/11/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Extending user relationships | ||
Patent #
US 9,251,193 B2
Filed 10/28/2007
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Application or context aware fast dormancy | ||
Patent #
US 9,271,238 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Request and response characteristics based adaptation of distributed caching in a mobile network | ||
Patent #
US 9,275,163 B2
Filed 10/17/2011
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol | ||
Patent #
US 9,277,443 B2
Filed 12/07/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Database synchronization | ||
Patent #
US 9,298,792 B2
Filed 12/08/2005
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for a mobile device to use physical storage of another device for caching | ||
Patent #
US 9,300,719 B2
Filed 01/14/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks Inc
|
Systems and methods for application management of mobile device radio state promotion and demotion | ||
Patent #
US 9,307,493 B2
Filed 03/15/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
System and method for reduction of mobile network traffic used for domain name system (DNS) queries | ||
Patent #
US 9,325,662 B2
Filed 01/09/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
User as an end point for profiling and optimizing the delivery of content and data in a wireless network | ||
Patent #
US 9,326,189 B2
Filed 02/04/2013
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Wireless traffic management system cache optimization using http headers | ||
Patent #
US 9,330,196 B2
Filed 06/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Mobile application traffic optimization | ||
Patent #
US 9,407,713 B2
Filed 01/16/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Mobile device configured for communicating with another mobile device associated with an associated user | ||
Patent #
US 9,712,986 B2
Filed 03/22/2012
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic | ||
Patent #
US 9,832,095 B2
Filed 12/14/2012
|
Current Assignee
Seven Networks LLC
|
Original Assignee
Seven Networks LLC
|
Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network | ||
Patent #
US 10,263,899 B2
Filed 04/10/2013
|
Current Assignee
Seven Networks Inc
|
Original Assignee
Seven Networks LLC
|
Method for visualizing data backup activity from a plurality of backup devices | ||
Patent #
US 6,745,210 B1
Filed 09/19/2000
|
Current Assignee
Bocada LLC
|
Original Assignee
Bocada Incorporated
|
Housing and mounting system for a strip lighting device | ||
Patent #
US 6,609,813 B1
Filed 09/06/2001
|
Current Assignee
Signify North America Corporation
|
Original Assignee
Lumileds Lighting US LLC
|
Method for insuring data integrity for mirrored independently accessible memory devices | ||
Patent #
US 6,629,108 B2
Filed 03/09/2001
|
Current Assignee
Hewlett-Packard Development Company L.P.
|
Original Assignee
Hewlett-Packard Development Company L.P.
|
Method, system and program for maintaining data consistency among updates across groups of storage areas using update times | ||
Patent #
US 6,463,501 B1
Filed 10/21/1999
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method, system, and program for managing file names during the reorganization of a database object | ||
Patent #
US 6,460,048 B1
Filed 05/13/1999
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Storage medium carrying geographical location data | ||
Patent #
US 6,226,646 B1
Filed 01/31/1997
|
Current Assignee
Continental Automotive GmbH
|
Original Assignee
Mannesmann VDO AG
|
Indexed file system and a method and a mechanism for accessing data records from such a system | ||
Patent #
US 6,292,795 B1
Filed 02/16/1999
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Computer network remote data mirroring system | ||
Patent #
US 6,324,654 B1
Filed 03/30/1998
|
Current Assignee
Emc IP Holding Company LLC
|
Original Assignee
Legato Systems Inc.
|
Online database table reorganization | ||
Patent #
US 20010047360A1
Filed 01/29/2001
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Enterprise data movement system and method which performs data load and changed data propagation operations | ||
Patent #
US 6,016,501 A
Filed 03/30/1998
|
Current Assignee
Informatica LLC
|
Original Assignee
BMC Software Incorporated
|
Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database | ||
Patent #
US 6,026,412 A
Filed 06/30/1997
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data | ||
Patent #
US 6,029,178 A
Filed 03/31/1998
|
Current Assignee
Informatica LLC
|
Original Assignee
BMC Software Incorporated
|
On-line database duplication with incorporation of concurrent database updates | ||
Patent #
US 6,023,707 A
Filed 12/30/1997
|
Current Assignee
Fujitsu Limited
|
Original Assignee
Fujitsu Limited
|
Enterprise data movement system and method including opportunistic performance of utilities and data move operations for improved efficiency | ||
Patent #
US 6,035,307 A
Filed 03/30/1998
|
Current Assignee
Informatica LLC
|
Original Assignee
BMC Software Incorporated
|
Non-blocking drain method and apparatus used to reorganize data in a database | ||
Patent #
US 6,070,170 A
Filed 10/01/1997
|
Current Assignee
GlobalFoundries Inc.
|
Original Assignee
International Business Machines Corporation
|
Database method and apparatus using hierarchical bit vector index structure | ||
Patent #
US 6,070,164 A
Filed 05/09/1998
|
Current Assignee
ISC Incorporated
|
Original Assignee
Information Systems Corp.
|
Synchronization of shared data stores through use of non-empty track copy procedure | ||
Patent #
US 6,073,221 A
Filed 01/05/1998
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
System and method for handling backout processing during capture of changed data in an enterprise computer system | ||
Patent #
US 6,092,086 A
Filed 03/31/1998
|
Current Assignee
Informatica LLC
|
Original Assignee
BMC Software Incorporated
|
Network device information collection and change detection | ||
Patent #
US 6,122,639 A
Filed 12/23/1997
|
Current Assignee
Cisco Technology Incorporated
|
Original Assignee
Cisco Technology Incorporated
|
System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging | ||
Patent #
US 5,881,379 A
Filed 05/20/1996
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
System, method, and program for using direct and indirect pointers to logically related data and targets of indexes | ||
Patent #
US 5,933,820 A
Filed 05/20/1996
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database | ||
Patent #
US 5,721,915 A
Filed 06/01/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Computer program product and program storage device for improving data recovery performance | ||
Patent #
US 5,561,798 A
Filed 06/07/1995
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
System and method for improving data recovery performance | ||
Patent #
US 5,581,750 A
Filed 03/15/1993
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and system for dynamic allocation of buffer storage space during backup copying | ||
Patent #
US 5,379,412 A
Filed 04/20/1992
|
Current Assignee
LSI Logic Corporation
|
Original Assignee
International Business Machines Corporation
|
Computer driven systems and methods for managing data which use two generic data elements and a single ordered file | ||
Patent #
US 5,303,367 A
Filed 12/04/1990
|
Current Assignee
Applied Technical Systems Incorporated
|
Original Assignee
Applied Technical Systems Incorporated
|
Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system | ||
Patent #
US 5,247,647 A
Filed 04/29/1992
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Virtual lookaside facility | ||
Patent #
US 5,134,696 A
Filed 07/28/1988
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Virtual memory address translation mechanism with controlled data persistence | ||
Patent #
US 4,638,426 A
Filed 09/19/1983
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Method and apparatus for logging journal data using a log write ahead data set | ||
Patent #
US 4,507,751 A
Filed 06/21/1982
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
Addressing of operands within a segment utilizing segment descriptors | ||
Patent #
US 4,385,352 A
Filed 04/13/1981
|
Current Assignee
Compagnie Internationale Pour LInformatique Cii-Honeywell Bull
|
Original Assignee
Compagnie Internationale Pour LInformatique Cii-Honeywell Bull
|
Method and means for cataloging data sets using dual keyed data sets and direct pointers | ||
Patent #
US 4,408,273 A
Filed 05/27/1980
|
Current Assignee
International Business Machines Corporation
|
Original Assignee
International Business Machines Corporation
|
41 Claims
-
1. A method of reorganizing a database and concurrently providing access to the database for updates, the database including an original data-space having a plurality of original data-elements and a shadow data-space having a plurality of shadow data-elements, the method comprising:
-
copying contents of an original data-element within the original data-space to a shadow data-element within the shadow data-space;
reorganizing the shadow data-space;
keeping track of a location of an original data-element that is changed after its contents are copied to the shadow data-element; and
copying data from the location of the changed original data-element to its corresponding shadow data-element in the reorganized shadow data-space.
-
-
2. A method of reorganizing information in a computer system having an original data-space that contains a plurality of sequentially stored original data-elements, a shadow data-space that contains a plurality of shadow data-elements, a data data-space that contains a plurality of data data-elements, and an index data-space that contains a plurality of sequentially stored index data-elements, wherein the original data-space is operated on by an information reorganizing application program, the method comprising:
-
copying contents of an original data-element within the original data-space to a shadow data-element within the shadow data-space;
recording a location of the original data-element and a location of the shadow data-element within a data data-element within the data data-space, thereby associating the original data-element, the shadow data-element and the data data-element;
recording a location of the data data-element within an index data-element within the index data-space, wherein the index data-elements in the index data-space are arranged in the same sequence as their associated original data-elements in the original data-space;
recording in the data data-element information indicating that a change has occurred in the original data-element associated with the data data-element; and
applying the change in the original data-element to the shadow data-element associated with the original data-element, in response to detecting the change associated with the original data-element recorded in the data data-element. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for reorganizing information in a computer system having an original data-space that contains a plurality of sequentially stored original data-elements, a shadow data-space that contains a plurality of sequentially stored shadow data-elements, a data data-space that contains a plurality of sequentially stored data data-elements, and an index data-space that contains a plurality of sequentially stored index data-elements, the apparatus comprising:
-
a reorganization module configured to copy the contents of an original data-element in the original data-space to a corresponding shadow data-element in the shadow data-space and to associate the original data-element and shadow data-element using a data data-element;
a log intercept module configured to intercept a log request concerning a change in an original data-element and to update a data data-element associated with the original data-element to indicate that a change has occurred in the original data-element; and
a pending change module configured to apply the change in the original data-element to the shadow data-element corresponding to the original data-element, in response to detecting the change recorded in the data data-element associated with the original data-element. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer program embodied on a computer readable medium for reorganizing a database and concurrently providing access to the database for updates, the database including an original data-space having a plurality of original data-elements, a shadow data-space having a plurality of shadow data-elements, a data data-space having a plurality of data data-elements and an index data-space having a plurality of index data-elements, the method comprising:
-
program instructions for copying contents of an original data-element within the original data-space to a shadow data-element within the shadow data-space and associating the original data-element and shadow data-element using a data data-element;
program instructions for reorganizing the shadow data-space;
program instructions for keeping track of a location of an original data-element that is changed after its contents are copied to the shadow data-element by using the data data-element that is located using an index data-element; and
program instructions for copying data from the location of the changed original data-element to its corresponding shadow data-element in the reorganized shadow data-space.
-
-
27. A computer program embodied on a computer readable medium for reorganizing information in a computer system having an original data-space that contains a plurality of sequentially stored original data-elements, a shadow data-space that contains a plurality of shadow data-elements, a data data-space that contains a plurality of data data-elements, and an index data-space that contains a plurality of sequentially stored index data-elements, the computer program comprising:
-
program instructions for copying contents of an original data-element within the original data-space to a shadow data-element within the shadow data-space;
program instructions for recording a location of the original data-element and a location of the shadow data-element within a data data-element within the data data-space, thereby associating the original data-element, the shadow data-element and the data data-element;
program instructions for recording a location of the data data-element within an index data-element within the index data-space, wherein the index data-elements in the index data-space are arranged in the same sequence as their associated original data-elements in the original data-space;
program instructions for recording in the data data-element information indicating that a change has occurred in the original data-element associated with the data data-element; and
program instructions for applying the change in the original data-element to the shadow data-element associated with the original data-element, in response to detecting the change associated with the original data-element recorded in the data data-element. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
1 Specification
This is a continuation of application Ser. No. 10/197,810 filed Jul. 19, 2002 which is related to co-pending and commonly assigned patent application entitled, “Data-Space Tracking with Index Data-Spaces and Data Data-Spaces,” Ser. No. 10/198,151. The entire disclosure of the prior application, application Ser. No. 10/197,810 is hereby incorporated by reference.
1. Field of the Invention
The invention relates to database management systems (DBMS). More particularly, it relates to improved methods and techniques for efficiently associating temporary information with data-elements in a memory data-space, and the use of those methods and techniques for improving the efficiency and reducing the complexity of on-line database administration utilities.
2. Description of the Related Art
Database administration utilities that use conventional methods and techniques typically require that databases be taken off-line in order to perform certain administrative tasks, such as reorganizing the database. For database systems that use relatively small data stores, taking the database off-line to perform administrative tasks does not raise significant operational issues, because the amount of off-line time required to perform the required administrative task is generally acceptable as it introduces only minimal disruption to operations. However, as the volume of data associated with a database increases, so does the time required to perform administrative tasks upon the database. For example, depending upon the nature of the administrative task to be performed, the time required to execute the administrative task can increase exponentially with the size of the database.
As would be expected, the longer the period of unavailability the greater the likelihood that adverse operational impacts will arise. Furthermore, as customer demands for databases with greater capacity and 24×7 availability increase, system administrators typically find it more and more difficult to schedule much needed maintenance and optimization routines. As a result, many administrative routines are not performed as often as they should to optimize system performance and/or to minimize loss of data in case of system failure resulting, ultimately, in reduced performance and increased operational risk.
Issues associated with database availability can be alleviated by allowing databases to remain on-line while administrative tasks are performed. However, using conventional techniques, allowing a database to remain on-line while performing certain administrative operations can greatly increase the complexity of the administrative utility needed to execute the operation. Such complexity can increase the time required to execute the administrative operation, increase system load, degrade system capacity and performance, and result in unacceptable operational conditions. In a poorly maintained and/or already over-loaded system, such increased load can, in the worst case, result in unrecoverable catastrophic system failure.
Allowing a database to remain on-line while performing an administrative task is being performed typically implies that multiple processes will simultaneously access the data tables and records maintained by the database. Depending upon the administrative operations to be performed, conflicting conditions can arise. For example, if the administrative operation involves copying records from one database table to a second database table, a change must be applied to both database tables if the change imposed by a concurrent process affects a data-element that has already been copied to the second database table. If such conflicts are resolved by locking large segments of the database for extended periods of time, many of the advantages of allowing simultaneous on-line access are negated. If, on the other hand, locks are not strictly imposed, conflicting versions of a database table can arise that must be tracked and later resolved.
Conventional approaches are not capable of efficiently tracking and coordinating the large amount of detailed information that must be maintained to resolve the data integrity and consistency issues that arise during the execution of an on-line reorganization tool. For example, conventional reorganization techniques typically synchronize data across database tables using log files containing a record of the changes made in one or more data tables. Such log-based approaches are relatively slow because they require searching a log file for records relevant to an affected data table, retrieving the relevant records from the log, identifying records in the affected data table that corresponds to the log request (possibly requiring a second search of the copied/reorganized data table), and appropriately applying the logged change. Furthermore, such conventional techniques typically use concatenated strings within the log file to act as unique keys. These keys are used to locate the corresponding records within the related data table, and a change recorded within the log file is then applied. Such concatenated keys are an inefficient mechanism for locating records within a database table. In addition, log files typically contain the actual changed data values, thereby increasing the size of the log file and increasing the amount of information that must be parsed. Furthermore, such log based techniques are sequential in nature, meaning that if five updates are performed against a record in one data table, all five updates are again performed upon the related record in the related data table, even though only the last update is needed to synchronize the two data tables.
Conventional approaches for resolving the discrepancies that arise during the execution of on-line database administrative operations, are I/O intensive, inefficient, time consuming and are not practical for large database systems that require high availability of database tables, and highly optimized performance. A new approach is needed for efficiently tracking and coordinating large amounts of detailed information related to the on-line execution of database administrative operation.
Therefore, in light of the above, and for other reasons that will become apparent when the invention is fully described, apparatuses, articles of manufacture and methods for reorganizing information in a computer system by using data-spaces to manipulate and track information related to a database reorganization using separately addressable memory data-elements. Separate data-spaces are used to store the original data (i.e., an original data-space), receive reorganized copies of data-elements of the original data-space (i.e., a shadow data-space), and to record and track information relative to individual data-elements undergoing reorganization (i.e., a data data-space and an index data-space, respectively).
A data-element in the data data-space stores the original location of an original data-space data-element, the new location of a corresponding data-element in the shadow data-space, and status information that records whether the data-element in the original data-space has been updated or deleted, after the original data-element has been copied to the reorganized data-space and whether any new original data-elements have been added that must be added to the shadow data-space.
Status information in the data data-space is maintained by intercepting log status reports and updating the associated data data-elements to record the changes performed. Data-elements in the data data-space are not required to store the new or modified data, but rather the nature of the change that occurred (i.e., new, update, and delete) is stored. Thus, significant storage space efficiencies are achieved.
Data consistency between data-elements in the original data-space and data-elements in the shadow data-space is achieved by applying recorded changes stored in the data data-space to the related shadowed data-elements. Because the data data-space records the location where changes occurred, the net effect of multiple changes to a data-element in the original data-space can be applied to its associated data-element in the shadow data-space with only a single change. Thus, significant processing efficiencies are achieved in maintaining data consistency across the data-spaces.
Features and advantages of the invention will become apparent upon consideration of the following descriptions and descriptive figures of specific embodiments thereof. While these descriptions go into specific details of the invention, it should be understood that variations may and do exist and would be apparent to those skilled in the art based on the descriptions herein.
The embodiments described below are described with reference to the above drawings, in which like reference numerals designate like components.
Data-spaces are blocks of addressable memory space in a computer readable memory that can hold data, but are not allowed to execute program code. The resources used to access and manipulate data-spaces include a data-space base address that identifies the beginning of the data-space in memory. The location of a data-element within a data-space is determined relative to a data-space base address using a relative base offset address (RBA). An RBA can be represented, for example, as a number of bytes or bits from the data-space base address to the first byte, or bit, of a data-element. The location of a data-element anywhere within a group of data-spaces is identified with a data-space base address/RBA combination, wherein the RBA is an offset from its associated data-space base address. Since data-elements are stored in a data-space in sequential order, a sequence order number (e.g., 0, 1, 2, . . . , N) can be used to specify a relative offset, in data-elements, from the data-space base address. By multiplying the sequence order number associated with a data-element, by the bit/byte length of the data-elements stored in the data-space, a relative base offset address for the data-element in bits/bytes is derived. This computation is simplified when fixed-length data-elements are used in the data-spaces.
The size of data-spaces and data-elements within data-spaces are defined to meet the needs of a specific application, restricted only by the physical memory resources of the operating environment. In an IBM DB2® environment, for example, data-spaces are defined within buffer pools defined in a separate area of memory and are limited to 2 Gigabytes (GB) of memory space. However, multiple data-spaces may be allocated and managed by an application requiring more than 2 GB of data-space storage. Furthermore, database environments are expected to continue to support increasingly larger data-spaces.
Methods and apparatuses are described here that use index data-spaces that point to other data-spaces referred to as data data-spaces to efficiently track and coordinate information associated with data-elements in a data-space. The ability to efficiently store and retrieve large amounts of information related to individual data-elements of a data-space has many useful applications in a database environment. In the case of an on-line reorganization facility (ORF), such methods and techniques are used to allow databases, that would conventionally be taken off-line prior to the execution of certain administrative functions, to remain on-line and accessible during the execution of the same administrative processes. Indexing data-spaces and data data-spaces are used to efficiently track and coordinate information related to the administrative process at the data-element level as well as to track concurrent changes affecting multiple temporary data-spaces used by the administrative process. This information is used to assure that the integrity and consistency of all data-spaces affected by the administrative process are maintained.
The RBA of related data-elements within the original 102/124 and index data-spaces 108/126 is determined based upon the RBA (e.g., 106/110) of one of the related data-elements from either data-space and the fixed data-element size used by each of the respective data-spaces. This novel approach allows indirect addressing, to information contained in one or more data data-spaces, to be applied to any original data-space, without any enhancement or modification to the content of the original data-space.
As shown in
Data-space memory storage requirements associated with the described methods and techniques are optimized to meet the needs of a specific application and operating environment by selecting the original data-space data-element size, data data-space address length, and/or data data-space data-element size. For example, if an application requires that information be stored for each group of thirty-two bytes in an original data-space, the application accesses the original data-space addressable memory space in thirty-two bytes increments, thereby establishing the data-element size within the original data-space as 32-bytes. Although a data-element size of 32-bytes is used here as an example, the data-element size can be selected to be any convenient size. Given that the original data-space is of a fixed size, increasing the data-element size reduces the number of data-elements in the data-space and hence reduces the number of data-elements in the corresponding index data-space. Given that the index data-space data-element has a fixed size, based upon the length of an address for a data data-space data-element, decreasing the number of index data-space data-elements reduces the overhead space required to support the index data-space. Therefore, the original data-space data-element size is selected as large as possible within constraints imposed, directly or indirectly, by application specific requirements.
To further optimize system overhead requirements to meet the needs of a specific application, the number of bytes maintained for each original data-space data-element in the data data-space also can be selectively configured. For example, for one purpose, it may be necessary to store an additional 32 bytes of information for every 4-byte data-element in an original data-space. For another purpose, it may be necessary to store only 16 bytes of information for every 4-byte data-element in an original data-space. The data data-element size in the data data-space can be selected to accommodate those different purposes.
The index data-spaces and data data-spaces shown in
In brief,
A reorganization module 212 copies data-elements from the original data-space 210 to a reorganized shadow copy 214 of the original data-space. Data-elements within the shadow data-space are reorganized in accordance with logic internal to the reorganization module 212. The reorganization module 212 also coordinates with a utility services module 216 to track and store, within a series of index data-spaces 218 and data data-spaces 220, the source and destination addresses of data-elements copied from the original data-space 210 to the reorganized shadow data-space 214.
A log intercept module 206 intercepts log requests and coordinates with the utility services module 216 to track changes to data-elements in the original data-space 210 that have already been copied to the shadow data-space 214. These tracked changes are stored as updates to data-elements created within data data-spaces 220 by the reorganization module 212, as described above.
A pending changes module 208 applies tracked changes retrieved from the data data-space 220, via the utility services module 216, to the shadow data-space 214, thereby assuring consistency between data contained in the original data-space 210 and data contained in the shadow data-space 214. Once all pending changes are applied to the reorganized shadow data-space 214, the original data-space 210 is deactivated and the reorganized shadow data-space 214 is activated to replace the original data-space 210.
The ORF modules described, above, work together to efficiently and effectively reorganize an on-line data-space, with minimal overhead and operational load. The methods and techniques described in relation to
As an example of how the methods and techniques described here are used to efficiently and effectively reorganize an on-line data-space, with minimal overhead and operational load, the inter-relationships between ORF modules and the respective data-spaces are described in additional detail, below.
All of the data-spaces include data-elements, each of which is identified with a relative base address (e.g., 306, 310, 334, and 316) that identifies the start of the data-element relative to the base address of the data-space. The content of data-elements within the original data-space 304 and the shadow data-space 336 is determined by the application programs and is independent of the processes that maintain the data. Although the relative position of data-elements within the shadow data-space may differ from the position of their associated data-elements in the original data-space, in order to optimize organizational efficiency, the content of those data-elements will not be altered.
The index data-elements 309a-e within the index data-space 218 provide an indirect addressing scheme between the original data-elements 303a-e in the original data-space 210 and the data data-elements 315a-e in the data data-space 220. The data data-space 220 serves as a storage area for information necessary for reliably executing an administrative process upon the original data-space 210. Although
Referring again to
In an alternative embodiment, a sequence order number (e.g., 0, 1, . . . N) can be associated with the data-elements of one or more of the respective data-spaces that indicates the position of the data-element within the sequence of data-elements within its respective data-space. Since corresponding data-elements within an original data-space 210 and an index data-space 218 share the same sequence order number, when translating from an index data-space RBA to an original data-space RBA (and vice versa) it is not necessary to divide by the length of the data-element.
In another embodiment, sequence order numbers for data-elements in the respective data-spaces manipulated by an application are stored within data-elements 309a-e/315a-e of the index data-space 218 and/or data data-space 220 to facilitate translation between data-spaces. It should be noted that although “RBA” is depicted in
As shown in
Depending upon the number of data-spaces and data-elements within each data-space to be addressed, the number of bits in an index data-space 218 data-element 309a-e can be optimized to meet the needs of each specific application. In an index data-element 309a-e of length four bytes (i.e., 32-bits), for example, 6-bits are used to record a data data-space base address identifier 311 and 26-bits are used to record a data data-space RBA element number 313. In such a system, an index data-space 218 with data-elements 309a-e that are four bytes long can indirectly address 64 data data-spaces, each containing 67, 108, 864 data-elements. The ability to identify the RBA of such a large number of data-elements is achieved by storing the sequential RBA element numbers (e.g., sequence order numbers 0, 1, 2, 3, . . . 67, 108, 864) rather than the actual RBA Offset values, thus maximizing the number of RBA'"'"'s that can be identified using 26 bits (i.e., 226). As previously described, an application implementing the methods and techniques described here, is able to resolve an RBA element number to a full RBA offset value for a specific data-space by multiplying the element number by the data-element size used by the data-space. As previously described, the size of index data-space elements, and hence the number of data data-spaces and data data-elements that can be addressed, is determined as a design consideration based upon application requirements and technical limitations of the operational environment in which the application will be used, and is not limited by the methods and techniques described here.
A data data-element 315a-e in a data data-space 220 can be of any length (limited only by the constraints of the operational environment) and can contain any information that an application has been designed to associate with its associated original data-element 303a-e in the original data-space 210. As shown in
With respect to the ORF modules described in relation to
Use of a data-space base address identifier coupled with a RBA sequential data-element identifier to provide the complete address of an element in a data-space is shown in
Updates made to database records already processed by the ORF utility are captured and applied to the shadow data-space 214. This includes updates and newly inserted records earlier in the database than the present position of a ORF utility database cursor. The ORF log intercept module 206 intercepts log requests and compares the database name in the log request with the name of the database being reorganized to determine whether the current log request is a candidate for capture. If the names agree the database cursor is checked to see if the current update is for a record that has been processed by the utility (i.e., is the captured cursor<the current ORF reorganization module 212 cursor). If the affected record has already been copied to the shadow data-space, the change described within the log request is captured for later application to the shadow data-space 214.
Upon intercepting a log request that must be captured for later application to the shadow data-space 214, the log intercept module 206 uses the information within the intercepted log request to search the original data-space 210 to determine the RBA of the data-element(s) affected by the intercepted log request. The RBA value(s) identified are then conveyed to the utility services module 216. If the index data-space 218 indicates that a data data-element 315a-e exists in association with the RBA(s) identified, the flags 321-224 contained within the data data-element are set in accordance with the information contained within the intercepted log request, as described above. If the captured log request indicates newly added data, new data-elements 315a-e/309a-e are added to the data data-space 220 and index data-space 218 and correlated with the corresponding new data-elements 303a-e added to the original data-space 210. In addition, a pending change counter is incremented whenever a data-element is added and/or the first time that an existing data data-element 315a-e is updated to reflect a pending change. In this manner, the pending change counter is updated to reflect the number of data-elements in the shadow data-space 214 that are inconsistent with the original data-space 210.
This approach is efficient with respect to both storage resources and the processing required to track changes as they occur. The data data-elements 315a-e are used to indicate “where” (i.e., the data-space/RBA location) the update has occurred in the original data-space but not “what” has changed, thereby avoiding the need to duplicate change information already stored in the original data-element 303a-e. Furthermore, regardless of the number of times the same data-element in the original data-space is updated, the data data-space 220 requires only one data data-element 315a-e for a corresponding original data-element and does not require additional data data-elements for each change to the original data-element.
When applying pending changes to data-elements 333a-e within the shadow data-space 214, the indirect address and data data-space approach is equally efficient with respect to the processing steps required to apply a tracked change. Pending updates are easily identified based upon the flags within the data data-elements 315a-e, as discussed above. If the flags indicate an update, the contents of the data-element 303a-e located at “old_RBA_ID” are copied to the data-element 333a-e located at “new_RBA_ID.” If the flags indicate a deletion, the shadow data-element 333a-e in shadow data-space 214 at new_RBA_ID is deleted. If the flags indicate an addition, a shadow data-element 333a-e in shadow data-space 214 is added, and the RBA of the added shadow data-element 333a-e in the shadow data-space 214 is stored in the previously created data data-element 315a-e at new_RBA_ID 330 and data is copied from the original data-element 303a-e to the newly created shadow data-element 333a-e.
Such an approach is extremely efficient in that, regardless of how many updates that may have occurred to a data-element in the original data-space prior to the final update, or final deletion, an administrative tool using the techniques described above needs only to apply a single update (i.e., the net end result of the numerous prior changes). A conventional log based tool, on the other hand would sequentially process each recorded update to the original data-space, finally arriving at the same result in the shadow data-space, after the execution of multiple updates, that the present techniques reach after only a single update.
In support of the majority of administrative utilities that are implemented using the data data-space and index data-space techniques addressed above, the data data-space and index data-space are preferably created using data-spaces in high speed volatile memory and are not committed to permanent, non-volatile memory. Index data-spaces and data data-spaces typically can be used to store intermediate information useful to the execution of an administrative application. The data retained in these structures typically would be discarded once the administrative activity is completed. Therefore, even greater speed and efficiency is achieved by maintaining index data-spaces and data data-spaces in non-persistent memory storage, rather than in persistent storage, such as on disk. Furthermore, by storing and retrieving such information in memory storage, access and retrieval times are greatly enhanced, thereby minimizing overhead load.
In the data-space reorganization approach described above, storing such information in memory does not introduce any significant operational risk, for if a system failure occurs, the shadow data-space, index data-space and data data-space may be discarded without losing operational data. The reorganization process can be reinitiated with no loss of data. However, in applications in which such loss of information is unacceptable, index data-spaces and data data-spaces can be committed to persistent storage.
The data structures described in relation to
As described above, the present methods and techniques may be optimized to meet both the needs of an identified application as well as optimization constraints imposed by the operational environment.
The on-line reorganization facility is initiated 402 upon receipt by the initialization module (
After initiation, the reorganization process, proceeds with two sub-processes executing in parallel. The first sub-process, 404, focuses on copying data-elements from the original data-space to the reorganized shadow data-space, as previously described. During this process one data record at a time is locked, thereby prohibiting other users from modifying any segments in the record while the reorganization utility holds the lock. Upon copying/reorganizing all data-elements associated with a record, the lock is released. In this manner, the database may remain accessible throughout the reorganization process for only a small number of records are locked at any one time.
During the process of copying and reorganizing data-elements, performed via sub-process 404, as described above, unlocked records in the original data-space remain on-line and the data-elements contained within those unlocked records remain available to processes external to the ORF processes. Depending upon the nature of the external process, such on-line availability can result in additions, deletions, and/or modification, to information contained within data-elements of the original data-space. Although such availability may be beneficial from an operational perspective, allowing the original data-space to remain on-line creates a likelihood that changes may be applied to a data-element within the original data-space after that same data-element has been copied to the shadow data-space.
While sub-process 404 proceeds to copy and reorganize data-elements to the shadow data-space, the second sub-process 408 monitors log requests and captures changes to data-elements in the original data-space, as described in relation to the discussion of
The reorganization module (
The pending change module communicates with the utility services module (
Having described apparatuses, articles of manufacture and methods of capturing data changes utilizing data-space tracking, it is believed that other modifications, variations and changes will be suggested to those skilled in the art in view of the teachings set forth herein. It is therefore to be understood that all such variations, modifications and changes are believed to fall within the scope of the present invention as defined by the appended claims. Although specific terms are employed herein, they are used in their ordinary and accustomed manner only, unless expressly defined differently herein, and not for purposes of limitation.
IBM is a trademark or registered trademark of International Business Machines, Corporation in the United States and other countries.
DB2 is a trademark or registered trademark of International Business Machines, Corporation in the United States and other countries.