
|
If you were logged in you would be able to see more operations.
|
|
|
db4o Core
COR-113
Created: 30/Jul/07 09:25 PM
Updated: 21/Aug/07 03:10 PM
|
|
| Component/s: |
None
|
| Affects Version/s: |
None
|
| Fix Version/s: |
None
|
|
|
Time Tracking:
|
|
Original Estimate:
|
Not Specified
|
|
|
Remaining Estimate:
|
0h
|
|
|
Time Spent:
|
26h
|
|
|
|
| Peers: |
Andrew Zhang
|
| Order: |
2
|
| Iteration: |
4
|
| Original IDS Estimate: |
4
|
| Resolution Date: |
21/Aug/07 03:10 PM
|
| Labels: |
|
| Participants: |
Carl Rosenberger
|
| Number of Attachments: |
0
|
| Number of Comments: |
1
|
|
The goal of this task is to store one object with a string field with new improved marshalling and to read it again using existing logic.
Instead of the current setup that first calculates the needed length for an object and then writes into a single write buffer in different places, we will try to use two buffers, one for the fixed length data at the beginning of the object, one for variable length data.
With full completion of this task ideally the following methods in TypeHandler4 can be done by one single marshall method:
- boolean hasFixedLength();
- int linkLength();
- void calculateLengths(Transaction trans, ObjectHeaderAttributes header, boolean topLevel, Object obj, boolean withIndirection);
- Object write(MarshallerFamily mf, Object obj, boolean topLevel, StatefulBuffer buffer, boolean withIndirection, boolean restoreLinkOffset);
There is a very nice performance advantage of changing marshalling: Reflection on write only has to happen once.
|
|
Description
|
The goal of this task is to store one object with a string field with new improved marshalling and to read it again using existing logic.
Instead of the current setup that first calculates the needed length for an object and then writes into a single write buffer in different places, we will try to use two buffers, one for the fixed length data at the beginning of the object, one for variable length data.
With full completion of this task ideally the following methods in TypeHandler4 can be done by one single marshall method:
- boolean hasFixedLength();
- int linkLength();
- void calculateLengths(Transaction trans, ObjectHeaderAttributes header, boolean topLevel, Object obj, boolean withIndirection);
- Object write(MarshallerFamily mf, Object obj, boolean topLevel, StatefulBuffer buffer, boolean withIndirection, boolean restoreLinkOffset);
There is a very nice performance advantage of changing marshalling: Reflection on write only has to happen once. |
Show » |
|