Related Documents

Client API and Features

High Effort:

  • Provide mechanism for clients to connect to multiple distributed systems or to allow switching from one server Pool on a Region to another and back again (different server Pools could be in different systems) [Effort: High]
  • Allow client queues to failback from one server back to the original server when it comes back online [Effort: High]
  • Allow client to failover to another cluster and then to failback to the original cluster when connectivity is restored [Effort: High]

Medium Effort:

  • Creation and usage of Proxy Regions which delegate fully to server [Effort: Medium] 
    • Make this similar to what's in the C#/C++ native client which provides "tethered" and "untethered" Region Views [Effort: Medium/Hard]
    • Note: We also have peer-to-peer Proxy Regions so do we extend this to include peer-to-peer as well for uniformity?

Very Low Effort:

  • ManagementService API for invoking GFSH commands on server (allows deprecation of DynamicRegionFactory) [Effort: Very Low]

Cache API and Features

Medium/Hard Effort:

  • New operations over WAN: removeAll/destroyAll, clear, transactions, invalidate* (*NOTE: invalidate is not supported by client-server which WAN uses) [Effort: Medium/Hard]
  • Provide cleaner mechanism for peer nodes to connect as client to other DS without hacky workarounds for Region name collisions [Effort: Medium/Hard]
  • Cleanup interaction between WBCL and CacheLoader/CacheWriter to avoid GET that loads from RDB resulting in WBCL writing to RDB (WBCL is very old and only understands create, update, destroy – really needs the newer ops to fix it) [Effort: Medium/Hard]

Medium Effort:

  • GetAll optimization for PartitionedRegions so that single bulk get requests are sent to each Bucket node for peers as well as Java and native clients [Effort: Medium]
  • New Region operation: Region#removeAll(Collection<?> keys) and Region#destroyAll(Collection<?> keys) [Effort: Medium]
  • Improved cache callbacks for bulk ops that are invoked once with all the keys (especially CacheLoader and CacheWriter for getAll and putAll) [Effort: Medium]

Low Effort:

  • Provide a non-deprecated way to create subregions [Effort: Low]
  • Deprecate DataPolicy#PRELOADED [Effort: Low]
  • Deprecate or remove external API for BridgeServer endpoints [Effort: Low]
  • Allow infinite chaining (wrapping) of callback args for Cache operations such as PUT (currently only allow one wrapped callback arg) [Effort: Low]

New APIs and Features

Medium Effort:

  • Complete logging overhaul - control log levels by Component/Subsystem, support SLF4J/Log4J syntax and appenders, cleanup Alerts (which messages, frequency, etc) [Effort: Medium]
  • System event API (can be used by client or over WAN by peer in other system, register for notification about any number of systems). *NOTE: this almost seems to belong under Management/Monitoring. Events to support as listed by Suds: [Effort: Medium]
    • 1> New WAN site has come online/WAN site is unreachable
    • 2> Region creation/ region destruction
    • 3> Peer joined/ Peer left
    • 4> Client joined/ Client left
    • 5> Required role available/ Required role unavailable
    • 6> Locators available/ System running without any locators.
    • 7> User configurable elements (like exchange connections or feeds being available in the system or not)?
    • 8> WBCL endpoint available/unavailable

Low Effort:

  • Lifecycle callback API (especially important for CacheServers) [Effort: Low]

Feature Compatibility

Medium Effort:

  • Make Delta work with PDX using autoserialization
  • Make Delta work with PutAll
  • Make Delta work with Transactions
  • No labels