I am not sure why we don't add the transaction support now, given that we
are going to support insert, update, and delete statements.

On Tue, Nov 8, 2016 at 4:50 AM, Sergi Vladykin <sergi.vlady...@gmail.com>
wrote:

> All the SQL statements currently run out of transactions. It is a big
> feature for 2.0
>
> Sergi
>
> 2016-11-08 15:09 GMT+03:00 Igor Sapego <isap...@gridgain.com>:
>
>> Hi,
>>
>> Currently, we do not support transaction in ODBC at all. I'm not quite
>> sure
>> about JDBC, but I believe we do not support them there either. As far as
>> I know this is because we do not support transactions on the SQL level
>> currently. Serge, can you confirm?
>>
>>
>> Best Regards,
>> Igor
>>
>> On Tue, Nov 8, 2016 at 12:46 AM, Dmitriy Setrakyan <dsetrak...@apache.org
>> >
>> wrote:
>>
>> > Couldn't agree more about ODBC and JDBC. We must support savepoints from
>> > SLQ, given the DML functionality being planned for 1.8 release.
>> >
>> > On Mon, Nov 7, 2016 at 11:23 AM, Denis Magda <dma...@gridgain.com>
>> wrote:
>> >
>> >> This is how how the savepoints are supported by PostgreSQL [1], Oracle
>> >> [2] and MySQL [3]. The implementation details and behavior are pretty
>> the
>> >> same and similar to the Yakov’s proposal.
>> >>
>> >> It worth to note that all the engines support multiple savepoints per
>> >> transaction named uniquely and the RELEASE statement. If the one start
>> a
>> >> second savepoint with the name of an already existed one then the old
>> >> savepoint will be erased/deleted.
>> >>
>> >> In addition it makes sense to support the feature at the level of our
>> >> JDBC [4] and ODBC creating respective sub-tasks. Igor, I’ve googled
>> that
>> >> ODBC supports savepoints but didn’t succeed at finding exact APIs.
>> Please
>> >> assist.
>> >>
>> >> [1] https://www.postgresql.org/docs/8.1/static/sql-savepoint.html <
>> >> https://www.postgresql.org/docs/8.1/static/sql-savepoint.html>
>> >> [2] https://docs.oracle.com/cd/B19306_01/server.102/b14200/state
>> >> ments_10001.htm <https://docs.oracle.com/cd/B1
>> >> 9306_01/server.102/b14200/statements_10001.htm>
>> >> [3] http://dev.mysql.com/doc/refman/5.7/en/savepoint.html <
>> >> http://dev.mysql.com/doc/refman/5.7/en/savepoint.html>
>> >>
>> >> [4] https://docs.oracle.com/javase/tutorial/jdbc/basics/transact
>> >> ions.html#set_roll_back_savepoints
>> >>
>> >> —
>> >> Denis
>> >>
>> >> > On Nov 7, 2016, at 9:13 AM, Dmitriy Setrakyan <dsetrak...@apache.org
>> >
>> >> wrote:
>> >> >
>> >> > Does anyone know how MySQL or PostgreSQL work with checkpoints? Do
>> they
>> >> > support it in a similar way?
>> >> >
>> >> > On Mon, Nov 7, 2016 at 5:58 AM, Yakov Zhdanov <yzhda...@apache.org>
>> >> wrote:
>> >> >
>> >> >> Alex, I think we should put consecutive checkpoints to stack thus
>> your
>> >> >> example should be illegal and should result to exception. And we
>> will
>> >> throw
>> >> >> exception on rollback to CP if CP is not defined.
>> >> >>
>> >> >> --Yakov
>> >> >>
>> >> >> 2016-11-07 14:23 GMT+03:00 Alexey Goncharuk <
>> >> alexey.goncha...@gmail.com>:
>> >> >>
>> >> >>> We also should define savepoint behavior and API rules for each of
>> the
>> >> >>> transaction concurrency and isolation types.
>> >> >>>
>> >> >>> * Should rollbackToSavepoint() always release locks or clear saved
>> >> >>> optimistic versions?
>> >> >>> * Are forward-rollbacks allowed, e.g.
>> >> >>>
>> >> >>> try (Transaction tx = ignite.transactions().txStart()) {
>> >> >>>    c.put(1, 1);
>> >> >>>
>> >> >>>    tx.savepoint("sp1");
>> >> >>>
>> >> >>>    c.put(2, 2);
>> >> >>>
>> >> >>>    tx.savepoint("sp2")
>> >> >>>
>> >> >>>    c.put(3, 3);
>> >> >>>
>> >> >>>    tx.rollbackToSavepoint("sp1");
>> >> >>>
>> >> >>>    c.put(4, 4);
>> >> >>>
>> >> >>>    tx.rollbackToSavepoint("sp2"); // Is this allowed?
>> >> >>>
>> >> >>>    tx.commit();
>> >> >>> }
>> >> >>>
>> >> >>>
>> >> >>> 2016-11-07 13:47 GMT+03:00 Sergey Kozlov <skoz...@gridgain.com>:
>> >> >>>
>> >> >>>> Hi, Yakov
>> >> >>>>
>> >> >>>> I suppose it's very very handy feature.
>> >> >>>> My two cents are following:
>> >> >>>> - number of savepoints may be more than one per transaction
>> >> >>>> - what's about RELEASE SAVEPOINT statement?
>> >> >>>>
>> >> >>>>
>> >> >>>> On Mon, Nov 7, 2016 at 11:24 AM, Yakov Zhdanov <
>> yzhda...@apache.org>
>> >> >>>> wrote:
>> >> >>>>
>> >> >>>>> Guys,
>> >> >>>>>
>> >> >>>>> Let's think of implementing savepoints for Ignite transactions.
>> For
>> >> >> me,
>> >> >>>>> this is not too hard to do.
>> >> >>>>>
>> >> >>>>> Having "savepoints" seems to be pretty handy. Please consider the
>> >> >>>> following
>> >> >>>>> snippet.
>> >> >>>>>
>> >> >>>>> ignite.transactions.;
>> >> >>>>> INSERT INTO table1 VALUES (1);
>> >> >>>>> SAVEPOINT my_savepoint;
>> >> >>>>> INSERT INTO table1 VALUES (2);
>> >> >>>>> ROLLBACK TO SAVEPOINT my_savepoint;
>> >> >>>>> INSERT INTO table1 VALUES (3);
>> >> >>>>> COMMIT;
>> >> >>>>>
>> >> >>>>> Which should result in values 1 and 3 inserted to table1.
>> >> >>>>>
>> >> >>>>> In Ignite, I think,  it would be like the following (preserving
>> the
>> >> >>> same
>> >> >>>>> behavior as above).
>> >> >>>>>
>> >> >>>>> Ignite ignite = ....;
>> >> >>>>> IgniteCache<Integer, Integer> c = ....;
>> >> >>>>>
>> >> >>>>> try (Transaction tx = ignite.transactions().txStart()) {
>> >> >>>>>    c.put(1, 1);
>> >> >>>>>
>> >> >>>>>    tx.savepoint("mysavepoint");
>> >> >>>>>
>> >> >>>>>    c.put(2, 2);
>> >> >>>>>
>> >> >>>>>    tx.rollbackToSavepoint("mysavepoint");
>> >> >>>>>
>> >> >>>>>    c.put(3, 3);
>> >> >>>>>
>> >> >>>>>    tx.commit();
>> >> >>>>> }
>> >> >>>>>
>> >> >>>>> As far as implementation complexity I would give 2 weeks
>> ballpark.
>> >> >>>>>
>> >> >>>>> 5 days - API design and implementation for different types of
>> >> >>>> transactions
>> >> >>>>> - savepoint implementation for local transaction objects
>> >> >>>>> - rollback implementation for different types of transactions -
>> >> drain
>> >> >>>> local
>> >> >>>>> tx buffers, release remote locks for pessimistic transactions,
>> etc.
>> >> >>>>>
>> >> >>>>> 5 days - testing, benchmarking, fixing issues.
>> >> >>>>>
>> >> >>>>> Please leave your comments here. I will file a ticket after we
>> >> >> discuss
>> >> >>>> this
>> >> >>>>> and put our summary to it.
>> >> >>>>>
>> >> >>>>> Thanks!
>> >> >>>>>
>> >> >>>>> --Yakov
>> >> >>>>>
>> >> >>>>
>> >> >>>>
>> >> >>>>
>> >> >>>> --
>> >> >>>> Sergey Kozlov
>> >> >>>> GridGain Systems
>> >> >>>> www.gridgain.com
>> >> >>>>
>> >> >>>
>> >> >>
>> >>
>> >>
>> >
>>
>
>

Reply via email to