> (you don't have to strictly follow this form)

**Use case**

Support manually snapshot for Keeper.

**Describe the solution you'd like**

Throught 4lw commands, such as `csnp`.


{
private:
    const int server_id;
    CoordinationSettingsPtr coordination_settings;
    nuraft::ptr<KeeperStateMachine> state_machine;
    nuraft::ptr<KeeperStateManager> state_manager;
    struct KeeperRaftServer;
    nuraft::ptr<KeeperRaftServer> raft_instance;
    nuraft::ptr<nuraft::asio_service> asio_service;
    std::vector<nuraft::ptr<nuraft::rpc_listener>> asio_listeners;
    
    
    
    
    mutable std::mutex server_write_mutex;
    std::mutex initialized_mutex;
    std::atomic<bool> initialized_flag = false;
    std::condition_variable initialized_cv;
    std::atomic<bool> initial_batch_committed = false;
    nuraft::ptr<nuraft::cluster_config> last_local_config;
    Poco::Logger * log;