Congratulations and thank you!

On Fri, Aug 11, 2017 at 1:23 PM, Jacob Barrett <jbarr...@pivotal.io> wrote:

> In case you missed the big commit recently, the Geode Native components has
> removed all globals.*
>
> The biggest win here is that we can more easily unit test sections of the
> code that before was nearly impossible due to reliance on initialized
> global instances of Cache, DistributedSystem, PoolManager, etc. All long
> lived instances are children of Cache and have access to their "container"
> Cache for accessing other components like PoolManager, DistributedSystem,
> etc. The refactor probably isn't perfect but it is a step in the right
> direction. Look for more unit tests to come.
>
> The next big win is that you can truly have more than a single Cache
> instance in our process space. While this isn't a common intentional use
> case, it is common in the .NET client implementation since a single
> process, AppPool, could have several AppDomains each with their own
> instance of Cache. In the old model all managed Cache instances shared the
> singleton unmanaged Cache instance. This lead to confusion around
> configuring multiple Caches in the same AppPool, think session state
> provider and application lookaside caching in IIS, and restricted
> configuration to share the same cluster and configuration.
>
> Obviously this is a HUGE breaking change. Almost all source using the C++
> or .NET clients will need to be refactored. While many should be pretty
> obvious, look for updates coming to the examples soon to show you the
> light.
>
> This change follows the major change where we switch from the home grown
> SharedPtr/SharedBase refcounting memory management model to
> std::shared_ptr. The next major refactoring coming is aligning the public
> API with C++11 standards, like std::string, range-based for loops, etc. We
> also plan to make the API more consistent between factories, getters,
> setters, refs, pointers, etc.
>
> -Jake
>
> * Some lingering globals have been identified for removal.
>

Reply via email to