@Override
    @NotNull
    public BTreeMutable getMutableCopy() {
        final BTreeMutable result = new BTreeMutable(this);
        result.addExpiredLoggable(rootLoggable);
        return result;
    }
@Test
    public void testPutOverwriteTreeWithoutDuplicates() {
        // add existing key to tree that supports duplicates
        tm = new BTreeEmpty(log, createTestSplittingPolicy(), false, 1).getMutableCopy();

        for (int i = 0; i < 100; i++) {
            getTreeMutable().put(kv(i, "v" + i));
        }

        checkTree(getTreeMutable(), 100).run();

        // put must add 100 new values
        for (int i = 0; i < 100; i++) {
            final INode ln = kv(i, "vv" + i);
            getTreeMutable().put(ln);
        }

        checkTree(getTreeMutable(), "vv", 100).run();

        long rootAddress = saveTree();

        checkTree(getTreeMutable(), "vv", 100).run();

        reopen();

        t = new BTree(log, rootAddress, true, 1);
        checkTree(getTreeMutable(), "vv", 100).run();
    }