Make HA fail to start with old store
Improved code for moving migrated files in the store directory
Make slave fail when master have different upgraded store
Improve description of data integrity in manual
StoreId contains upgrade info and is broadcasted to the whole cluster, slave checks all StoreIds on startup
Merge pull request #2942 from cleishm/data-integrity-docs

Improve description of data integrity in manual
Merge pull request #2930 from davidegrohmann/2.1-store-migration-cleanup

Improved code for moving migrated files in the store directory
Improve performance of index lookup with tx state.

Performing an index lookup in a transaction with state was implemented
as a linear scan over the transaction state. Even if the lookup from the
underlying store was fast, the performance would degrade linearly to the
size of the active transaction.
This change set improves the performance of index lookups in a
transaction in a transaction with state by building up an index-like
structure in the transaction state as well. This index state is built
for the indexes defined by the schema.
Fixes race condition in test code.

RemoteRequestMonitoringIT would fail under certain cicrumstances
due to EideticRequestMonitor not being thread safe.

This diff also improves the failure reporting on the same test case.
Merge pull request #2966 from thobe/2.1-index-tx-state

[2.1] Improve performance of index lookup with tx state.
Add suppot for migrating logs from 2.0 to 2.1

- some code cleanup and refactors
Delays node/rel record changes until commit time

This completes the move from changing record state at the point of making
that change in the transaction to the point where the transaction is
committed. A side effect of that is that KernelStatement no longer needs
access to TransactionRecordState and so the abstractions gets clearer.

The issue provoking this change was that a transaction could create a
relationship and delete it in the same transaction, with the outcome that
a command was created saying to delete that relationship, even though it
didn't exist before the transaction started. Then if replaying a log
containing such a transaction there would be and exception thrown applying
that transsction where the id of that record couldn't be freed since it
was above highId.

This commit also removes duplicate and unexpected checks for if records
exists at the point of converting transaction state into record state. All
those checks now exist in the KernelAPI, and so they were removed from
TransactionRecordState.
Javadoced TransactionMonitor so it is clearer what it monitors
Removed usage of TransactionMonitor from HA processes. It is local only.
Merge pull request #2967 from davidegrohmann/2.1-migrate-logs-from-2.0

[2.1] Add support for migrating logs from 2.0 to 2.1
Set node caption to first attribute if no style.

If no grass style that match a node with
attributes specifies which caption to use,
the first one from the attribute list will be
chosen. If no attributes, db id it is.
Remove variable check that's always true.
Moves ParallelBatchImportTest into consistency-check for added checks
Test case for race with commit updating the cache.

When a transaction commits, it will update nodes in the (object) cache
to add relationships to them that were created by the transaction. It is
however possible that the node was not in cache when the transaction
started its commit process, but was put into the cache by another thread
reading the relationships of that node. If this other thread read the
relationships after the committing transaction had written them to the
store, but before it updated the cache, the reading thread would have
already read the relationships that the committing transaction is about
to add into the cache. If that happens, the committing transaction will
still add these relationships, but now they will be in the cache twice
for that node.
Fix for race with commit updating the cache.

Extends the range of the locks acquired while writing to the store, to a
greater region including the place where we update the cache. Also make
sure we acquire corresponding read locks when attempting to read
relationships into the cache for a node.

This should be deadlock free because reader threads only ever acquire
a lock for one node at a time, and release it immediately after updating
that node. And while the writer thread acquires multiple locks, we only
ever have one writer thread acquiring locks at any given time.
Introduce cache.memory_ratio configuration for HPCache

New set-and-forget configuration that specifies cache size as a ratio of the
old generation max size. Memory division across internal components of the cache
is handled by fixed ratios.

If any of the old config (now referred to as "advanced config") is set, it will
override the memory_ratio configuration.