IP Library Granted Patent US 7,305,387
Granted Patent B2
US 7,305,387 · App. 11/026,524 · Granted Dec 4, 2007

Method and apparatus for managing data object size in a multi-user environment

Assignee: SAP, Aktiengesellschaft
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,305,387
App. No.
11/026,524
Granted
Dec 4, 2007
Kind
B2
Abstract

Improved communication with database for multiple clients utilizing large date objects concurrently. When interacting with a server with data objects over threshold size, minimizes system resource usage such as CPU and network utilization. Segments objects into smaller size chunks, allowing for transmission of smaller chunks which prevents server from allocating large blocks of memory to one object. Although server handles more memory allocations, each allocation is smaller in size and can therefore be processed much faster. Determination of chunk size is dependent on inherent system resources such as the amount of server memory, available network bandwidth. Chunk size is dependent on environmental factors such as time of day, day of week, number of users, number of predicted users for a given time and day based on historical logging, current and predicted network utilization for given time and day. Chunk size and chunk transfer size may be altered dynamically.

Claims (60)

1. In a computer system, a method for managing data objects comprising:

obtaining a chunk size from a server via computer readable program code;

comparing a data object size with said chunk size;

requesting a SQL connection;

constructing a SQL command to interact with a data object;

updating an offset;

updating a remaining transfer amount;

executing a SQL command;

transferring a chunk of data associated with said data object over said SQL connection to a requesting client;

determining if said chunk size has been changed to a new chunk size after said transferring said chunk of data;

said updating of said offset further comprising utilizing said new chunk size in said updating of said offset;

said updating of said remaining transfer amount further comprising utilizing said new chunk size in said updating of said remaining transfer amount; and,

repeating said constructing said SQL command, said updating said offset, said updating said remaining transfer amount, said executing said SQL command and said transferring of said chunk of data until said data object is completely transferred.

2. The method of claim 1 wherein said chunk size is based on an inherent factor.

3. The method of claim 2 wherein said inherent factor is associated with server memory.

4. The method of claim 2 wherein said inherent factor is associated with network bandwidth.

5. The method of claim 1 wherein said chunk size is based on an environmental factor.

6. The method of claim 5 wherein said environmental factor is based on a time of day.

7. The method of claim 5 wherein said environmental factor is based on a day of the week.

8. The method of claim 5 wherein said environmental factor is based on a number of users.

9. The method of claim 5 wherein said environmental factor is based on a number of predicted users.

10. The method of claim 5 wherein said environmental factor is based on a network utilization.

11. The method of claim 5 wherein said environmental factor is based on a predicted network utilization.

12. A computer program product for managing data objects comprising:

a computer usable memory medium having computer readable program code embodied therein wherein said computer readable program code comprises a data chunking module that is configured to:

obtain a chunk size from a server via computer readable program code;

compare a data object size with said chunk size;

request a SQL connection;

construct a SQL command to interact with a data object;

update an offset;

update a remaining transfer amount;

execute a SQL command;

transfer a chunk of data associated with said data object over said SQL connection to a requesting client;

determine if said chunk size has been changed to a new chunk size after said transfer and chunk of data;

said update of said offset further comprising utilization of said new chunk size in said update of said offset;

said update of said remaining transfer amount further comprising utilization of said new chunk size in said update of said remaining transfer amount; and,

repeat said construct said SQL command, said update said offset, said update said remaining transfer amount, said execute said SQL command and said transmit of said chunk of data until said data object is completely transferred.

13. The computer program product of claim 12 wherein said chunk size is based on an inherent factor.

14. The computer program product of claim 13 wherein said inherent factor is associated with server memory.

15. The computer program product of claim 13 wherein said inherent factor is associated with network bandwidth.

16. The computer program product of claim 12 wherein said chunk size is based on an environmental factor.

17. The computer program product of claim 16 wherein said environmental factor is based on a time of day.

18. The computer program product of claim 16 wherein said environmental factor is based on a day of the week.

19. The computer program product of claim 16 wherein said environmental factor is based on a number of users.

20. The computer program product of claim 16 wherein said environmental factor is based on a number of predicted users.

21. The computer program product of claim 16 wherein said environmental factor is based on a network utilization.

22. The computer program product of claim 16 wherein said environmental factor is based on a predicted network utilization.

23. In a computer system, an apparatus for managing data objects comprising:

means for obtaining a chunk size from a server via computer readable program code;

means for comparing a data object size with said chunk size;

means for requesting a SQL connection;

means for constructing a SQL command to interact with a data object;

means for updating an offset;

means for updating a remaining transfer amount;

means for executing a SQL command;

means for transferring a chunk of data associated with said data object over said SQL connection;

means for determining if said chunk size has been chanced to a new chunk;

said means for updating said offset further comprising means for utilizing said new chunk size in said means for updating said offset;

said means for updating said remaining transfer amount further comprising means for utilizing said new chunk size in said means for updating said remaining transfer amount; and,

means for repeating said means for constructing said SQL command, said means for updating said offset, said means for updating said remaining transfer amount, said means for executing said SQL command and said means for transmitting said chunk of data until said data object is completely transferred.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2017
From: SAP SE
To: REGIONAL RESOURCES LIMITED
Reel/Frame 043610/0202 →
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2005
From: POYOUROW, DAVID
To: SAP, AKTIENGESELLSCHAFT
Reel/Frame 016873/0091 →
Continuity (1)
Related Publication 20060167922A1 · Jul 27, 2006