Guys, hope i can add one more example here.
Ones we use IgniteAtomicSequence, after topology changes some assertions
can be catched due to default AtomicConfiguration
i.e.
public static final int DFLT_BACKUPS = 0;
public static final CacheMode DFLT_CACHE_MODE = PARTITIONED;
minimal improvements here would be to set DFLT_BACKUPS = 1; or change into
REPLICATED mode.
thanks.
Folks,
I received a number of complaints from users that our default setting
favor
performance at the cost of correctness and subtle behavior. Yesterday I
faced one such situation on my own.
I started REPLICATED cache on several nodes, put some data, executed
simple
SQL and got wrong result. No errors, no warnings. The problem was caused
by
default PRIMARY_SYNC mode. WTF, our cache doesn't work out of the box!
Another widely known examples are data streamer behavior, "read form
backups" + continuous queries.
I propose to change our defaults to favor *correctness* over performance,
and create good documentation and JavaDocs to explain users how to tune
our
product. Proposed changes:
1) FULL_SYNC as default;
2) "readFromBackups=false" as default;
3) "IgniteDataStreamer.allowOverwrite=true" as default.
Users should not think how to make Ignite work correctly. It should be
correct out of the box.
Vladimir.