Nice work Jacob and team!

On Fri, Aug 11, 2017 at 1:40 PM, Udo Kohlmeyer <>

> Awesome work!!!
> On 8/11/17 13:23, Jacob Barrett 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.

john.blum10101 (skype)

Reply via email to