I like the idea to print out a warning if unsorted map is provided. The fact that there are tons of other ways to get a deadlock doesn't mean that we should ignore this case which is actually very common.
-Val On Tue, Oct 31, 2017 at 12:34 PM, Dmitry Pavlov <dpavlov....@gmail.com> wrote: > Vladimir, thank you. Good point for optimistic tx, but still putAll usage > require using sorted collections. > User, of course, may broke this scenario also by using sorted maps with > incorrect custom comparators (one asc, one desc). > Producing warning in code for Igntie for potential deadlock is good > usability feature. > Please look to user list, deadlock is very often question. > > вт, 31 окт. 2017 г. в 21:02, Denis Magda <dma...@apache.org>: > >> Vladimir, >> >> That’s an oversight and lack of explanation on our side. The goal is to >> avoid unexpected deadlocks when a user passed a HashMap in cache.putAll. >> Before printing out a warning we can filter out OPTIMISTIC/SERIALIZABLE and >> other suitable scenarios. >> >> So you’re free to offer another solution aside from closing the ticket :) >> >> — >> Denis >> >> >> >> On Oct 31, 2017, at 10:55 AM, Vladimir Ozerov <voze...@gridgain.com> >> wrote: >> >> Guys, >> >> Printing a warning in this case is really strange idea. First, how would >> explain it in case of OPTIMISTIC/SERIALIZABLE transactions where deadlocks >> are impossible? Second, what would you do in case tow sorted maps are >> passed one by one in a transaction? User still may have a deadlock. :Last, >> we are going towards SQL world, where "maps" simply do not exist, and >> virtually any update could eailty lead to a deadlock. >> >> Let's avoid strange warnings for normal usage scenario. Denis, please >> close the ticket :-))) >> >> Vladimir. >> >> On Tue, Oct 31, 2017 at 8:34 PM, Denis Magda <dma...@apache.org> wrote: >> >>> Here is a ticket for the improvement: >>> https://issues.apache.org/jira/browse/IGNITE-6804 >>> >>> — >>> Denis >>> >>> > On Oct 31, 2017, at 3:55 AM, Dmitry Pavlov <dpavlov....@gmail.com> >>> wrote: >>> > >>> > I agree with Denis, if we don't have such warning we should >>> continiously warn users in wiki pages/blogs/presentations. It is simpler to >>> warn from code. >>> > >>> > What do you think if we will issue warning only if size > 1. HashMap >>> with 1 item will not cause deadlock. Moreover where can be some custom >>> singleton Map provided by user. >>> > >>> > Sincerely, >>> > Dmitriy Pavlov >>> > >>> > вт, 31 окт. 2017 г. в 7:18, Dmitriy Setrakyan <dsetrak...@apache.org >>> <mailto:dsetrak...@apache.org>>: >>> > Denis, >>> > >>> > We should definitely print out a thorough warning if HashMap is passed >>> into >>> > a bulk method (instead of SortedMap). However, we should make sure >>> that we >>> > only print that warning once and not ever time the API is called. >>> > >>> > Can you please file a ticket for 2.4? >>> > >>> > D. >>> > >>> > On Thu, Oct 26, 2017 at 11:05 AM, Denis Magda <dma...@apache.org >>> <mailto:dma...@apache.org>> wrote: >>> > >>> > > + dev list >>> > > >>> > > Igniters, that’s a relevant point below. Newcomers to Ignite tend to >>> > > stumble on deadlocks simply because the keys are passed in an >>> unordered >>> > > HashMap. Propose to do the following: >>> > > - update bulk operations Java doc. >>> > > - print out a warning if a HashMap is used and its exceeds one >>> element. >>> > >>> > >>> > > Thoughts? >>> > > >>> > > — >>> > > Denis >>> > > >>> > > > On Oct 21, 2017, at 6:16 PM, dark <ekdxhrl0...@gmail.com <mailto: >>> ekdxhrl0...@gmail.com>> wrote: >>> > > > >>> > > > Many people seem to be more likely to send Cache entries in bulk >>> via a >>> > > > HashMap. >>> > > > How do you expose a warning statement by checking if the TreeMap is >>> > > putAll >>> > > > inside the code? >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > -- >>> > > > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ <http: >>> //apache-ignite-users.70518.x6.nabble.com/> >>> > > >>> > > >> >> >>