Hi, Sergey,

Makes sense to me in case of performance issues, but may lead to losing data.

>> *by the new option *syncPartitions=N* (not best name just for referring)

Seems similar to "Write Concern"[1] in MongoDB. It is used in the same
way as you described.

On the other hand, if you have such issues it should be investigated
first: why it causes performance drops: network issues etc.

[1] https://docs.mongodb.com/manual/reference/write-concern/

On Thu, Apr 25, 2019 at 6:24 PM Sergey Kozlov <skoz...@gridgain.com> wrote:
>
> Ilya
>
> See comments inline.
> On Thu, Apr 25, 2019 at 5:11 PM Ilya Kasnacheev <ilya.kasnach...@gmail.com>
> wrote:
>
> > Hello!
> >
> > When you have 2 backups and N = 1, how will conflicts be resolved?
> >
>
> > Imagine that you had N = 1, and primary node failed immediately after
> > operation. Now you have one backup that was updated synchronously and one
> > which did not. Will they stay unsynced, or is there any mechanism of
> > re-syncing?
> >
>
> Same way as Ignite processes the failures for PRIMARY_SYNC.
>
>
> >
> > Why would one want to "update for 1 primary and 1 backup synchronously,
> > update the rest of backup partitions asynchronously"? What's the use case?
> >
>
> The case to have more backups but do not pay the performance penalty for
> that :)
> For the distributed systems one backup looks like risky. But more backups
> directly impacts to performance.
> Other point is to split the strict consistent apps like bank apps and the
> other apps like fraud detection, analytics, reports and so on.
> In that case you can configure partitions distribution by a custom affinity
> and have following:
>  - first set of nodes for critical (from consistency point) operations
>  - second set of nodes have async backup partitions only for other
> operations (reports, analytics)
>
>
>
> >
> > Regards,
> > --
> > Ilya Kasnacheev
> >
> >
> > чт, 25 апр. 2019 г. в 16:55, Sergey Kozlov <skoz...@gridgain.com>:
> >
> > > Igniters
> > >
> > > I'm working with the wide range of cache configurations and found (from
> > my
> > > standpoint) the interesting point for the discussion:
> > >
> > > Now we have following *writeSynchronizationMode *options:
> > >
> > >    1. *FULL_ASYNC*
> > >       -  primary partition updated asynchronously
> > >       -  backup partitions updated asynchronously
> > >    2. *PRIMARY_SYNC*
> > >       - primary partition updated synchronously
> > >       - backup partitions updated asynchronously
> > >    3. *FULL_SYNC*
> > >       - primary partition updated synchronously
> > >       - backup partitions updated synchronously
> > >
> > > The approach above is covering everything if you've 0 or 1 backup.
> > > But for 2 or more backups we can't reach the following case (something
> > > between *PRIMARY_SYNC *and *FULL_SYNC*):
> > >  - update for 1 primary and 1 backup synchronously
> > >  - update the rest of backup partitions asynchronously
> > >
> > > The idea is to join all current modes into single one and replace
> > > *writeSynchronizationMode
> > > *by the new option *syncPartitions=N* (not best name just for referring)
> > > covers the approach:
> > >
> > >    - N = 0 means *FULL_ASYNC*
> > >    - N = (backups+1) means *FULL_SYNC*
> > >    - 0 < N < (backups+1) means either *PRIMARY_SYNC *(N=1) or new mode
> > >    described above
> > >
> > > IMO it will allow to make more flexible and consistent configurations
> > >
> > > --
> > > Sergey Kozlov
> > > GridGain Systems
> > > www.gridgain.com
> > >
> >
>
>
> --
> Sergey Kozlov
> GridGain Systems
> www.gridgain.com



-- 
Best Regards, Vyacheslav D.

Reply via email to