History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: COR-664
Type: Task Task
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Carl Rosenberger
Votes: 2
Watchers: 3
Operations

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

Multiple transactions for "In-process" mode

Created: 31/May/07 09:53 AM   Updated: 28/Aug/07 12:16 PM
Component/s: None
Affects Version/s: None
Fix Version/s: 6.4.6

Time Tracking:
Issue & Sub-Tasks
Issue Only
Original Estimate: 160h
Original Estimate - 160h
Remaining Estimate: 129h
Time Spent - 83.67h Remaining Estimate - 129h
Time Spent: 83.67h
Time Spent - 83.67h Remaining Estimate - 129h

Order: 1
Resolution Date: 28/Aug/07 12:16 PM
First Response Date: 05/Jun/07 02:37 PM
Labels:
Participants: Carl Rosenberger and Rodrigo B. de Oliveira
Number of Attachments: 0
Number of Comments: 2

Sub-Tasks  All   Open   

 Description  « Hide
Local "In-process" mode could provide multiple transactions.

In comparison to embedded Client/Server, performance would be better and memory consumption would be smaller.
Some of the ressources could be shared and objects would not have to be marshalled/unmarshalled multiple times to be instantiated or stored.


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Rodrigo B. de Oliveira - 05/Jun/07 02:37 PM
The separate reference system has strong implications on object identity (the *same logical* object will be exposed as different instances in different _transactions_). I think that alone implies more than a transaction so I would like to use a more heavyweight name, something like Session.

It might make sense to use finer grained interfaces for the different sets of functionality in ObjectContainer:

interface Queryable {

    Query query();
    List<T> query<T>(Class<T> extent);
    List<Extent> query<Extent>(Predicate<Extent> predicate);
    // ...
    // other query related methods

}

interface ObjectSession extends Queryable {

    void set(Object o);
    void delete(Object o);
    void commit();.
    void rollback();
    
}

interface ObjectContainer extends ObjectSession {
    ObjectSession newSession();

    // ...
    // ext, configuration, other stuff
}

Rodrigo B. de Oliveira - 28/Aug/07 12:16 PM
fixing milestone