• Emerson Faria Nobre's avatar
    Task #13711 - Database Sharding and Resharding · a079cafc
    Emerson Faria Nobre authored
    - Allow database shard shared nothing architeture with resharding
    - Configuration template in domains/default/shard.inc.php.dist
    - Frontend_Cli class to perform Shard configurations and operations
    - Sharding is added in Tinebase as a Plugin
    - Manager class is a controller that coordinates everything
    - ModOfDivision class is a Strategy to associate Shard Keys with Virtual Shards
    - Loginname class is a Strategy to allow user email address to be Shard Key
    - Filesystem classes are backends that allow all Shard control informations
      to be persisted in a filesystem folder (that must be shared between frontends)
    - Connectionconfig subpackage allows to persist DB Connection Configs
    - Association_Virtualshard_Connectionconfigkey subpackage allows to persist
      associations between Virtual Shards and DB Connection Configs
    - Persist Resharding state transitions using
      Resharding_Association_Shardkey_Connectionconfigkey subpackage
      and Resharding_Flag subpackage
    - Perform Resharding operations that copy tables contents between DBs
      using Redistributer subpackage
    - It requires multidomain enabled to work
    - Allow configuration of Shard for ActiveSync separated backend
    - Look at Tinebase/Shard/readme.txt
    Change-Id: I626ebe2773e440e20678fcb712b2b067228bc83c
Last commit
Last update
Association/Virtualshard Loading commit data...
Connectionconfig Loading commit data...
Frontend Loading commit data...
Log Loading commit data...
Redistributer Loading commit data...
Resharding Loading commit data...
Shardkey/Strategy Loading commit data...
examples Loading commit data...
Config.php Loading commit data...
Log.php Loading commit data...
Manager.php Loading commit data...
readme.txt Loading commit data...