An AttributesFactoryTKey, TValue
instance maintains state for creating RegionAttributesTKey, TValue instances.
The setter methods are used to change the settings that will be used for
creating the next attributes instance with the CreateRegionAttributes
method. If you create a factory with the default constructor, then the
factory is set up to create attributes with all default settings. You can
also create a factory by providing a preset RegionAttributesTKey, TValue.

Distribution

The C++ cache can contain either local regions or distributed regions.
Distributed regions are configured with servers that they distribute
their operations to upto. Locally scoped regions do not have any
distribution behavior. GFE native client regions scoped as
ScopeType.DistributedNoAck and ScopeType.DistributedAck have identical
distribution behavior.
see SetScope(ScopeType),
Scope

The allowed concurrency among updates to values in the region
is guided by the concurrencyLevel, which is used as a hint
for internal sizing. The actual concurrency will vary.
Ideally, you should choose a value to accommodate as many
threads as will ever concurrently modify values in the region. Using a
significantly higher value than you need can waste space and time,
and a significantly lower value can lead to thread contention. But
overestimates and underestimates within an order of magnitude do
not usually have much noticeable impact. A value of one is
appropriate when it is known that only one thread will modify
and all others will only read.
see SetConcurrencyLevel(Int32),
ConcurrencyLevel