SHAMapStore with online delete

@JoelKatz @nbougalis 

Here's a more detailed description of this effort:

    SHAMapStore: Online Delete
    Makes rippled configurable to support deletion of all data in its key-value
    store (nodestore) and ledger and transaction SQLite databases based on
    validated ledger sequence number. All records from a specified ledger
    and forward shall remain available in the key-value store and SQLite, and
    all data prior to that specific ledger may be deleted.
    
    Additionally, the administrator may require that an RPC command be
    executed to enable deletion. This is to align data deletion with local
    policy.

Well sometimes I want to know the member while it's already locked. Contort
here, or contort elsewhere.

On Fri, Nov 14, 2014 at 4:53 PM, Vinnie Falco <notifications@github.com>
wrote:

> In src/ripple/nodestore/impl/DatabaseRotatingImp.h:
>
> > +    DatabaseRotatingImp (std::string const& name,
> > +                 Scheduler& scheduler,
> > +                 int readThreads,
> > +                 std::shared_ptr <Backend> writableBackend,
> > +                 std::shared_ptr <Backend> archiveBackend,
> > +                 std::unique_ptr <Backend> fastBackend,
> > +                 beast::Journal journal)
> > +            : DatabaseImp (name, scheduler, readThreads,
> > +                    std::unique_ptr <Backend>(), std::move (fastBackend),
> > +                    journal)
> > +            , writableBackend_ (writableBackend)
> > +            , archiveBackend_ (archiveBackend)
> > +    {}
> > +
> > +    std::shared_ptr <Backend> getWritableBackend (
> > +            bool unlocked=false) const override
>
> Yes its clear from reading the body of the function what it does, but its
> not clear that there isn't a better way that doesn't require such
> contortions. I agree that mutex is better than recursive_mutex:
> http://www.codingstandard.com/rule/18-3-3-do-not-use-stdrecursive_mutex/
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/ripple/rippled/pull/717/files#r20397261>.
>