Issue Details (XML | Word | Printable)

Key: CORE-2619
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vlad Khorsun
Reporter: Vlad Khorsun
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Make memory and other statistics to work with 64-bit values

Created: 05/Sep/09 11:53 PM   Updated: 12/Nov/09 05:40 PM
Component/s: API / Client Library, Engine, ISQL
Affects Version/s: None
Fix Version/s: 2.5 RC1

Time Tracking:
Not Specified

Planning Status: Unspecified


 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Vlad Khorsun added a comment - 09/Sep/09 12:04 AM
There are two parts of the issue :
a) make engine to use 64-bit integers for statistics
b) teach tools (isql and qli) to work with 64-bit values

a) we need to change internals of AtomicCounter to use 64-bit values
On Win64 we will use InterlockedXXX64 functions while on Win32 it is enough to continue usage of InterlockedXXX
For POSIX platforms i already asked Alex about its implementation of AtomicCounter

b) to report statistics, isql\qli used perf_xxx functions imported from fbclient. This functions works with
"struct perf" which used platform-dependent "long" data type. As we want 32-bit isql to work correctly
with 64-bit server we need to always use 64-bit values within "perf". To not change (not so) public API, i
will introduce new "struct perf64" and perf64_xxx functions and change isql and qli to use this new API.
Note, this will make isql and qli not compatible with older fbclient. This is not a first time, so i see no problem there.