public void Delete()
        {
            lock (commitLock) {
                // We possibly have things to clean up.
                CleanUp();

                // Go through and delete and close all the committed tables.
                foreach (var source in tableSources.Values)
                {
                    source.Drop();
                }

                // Delete the state file
                StateStore.Flush();
                StoreSystem.CloseStore(stateStore);
                StoreSystem.DeleteStore(stateStore);

                // Delete the blob store
                if (LargeObjectStore != null)
                {
                    StoreSystem.CloseStore(lobStore);
                    StoreSystem.DeleteStore(lobStore);
                }

                //tableSources = null;
                IsClosed = true;
            }

            // Release the storage system.
            StoreSystem.Unlock(StateStoreName);
        }
        internal bool Drop()
        {
            lock (this) {
                lock (recordList) {
                    if (!IsClosed)
                    {
                        Close(true);
                    }

                    if (StoreSystem.DeleteStore(Store))
                    {
                        // TODO: log this
                        return(true);
                    }

                    return(false);
                }
            }
        }