diff --git a/README.rst b/README.rst
index 67ec6bf..111752f 100644
--- a/README.rst
+++ b/README.rst
@@ -180,6 +180,11 @@ Close the console, and then recreate the queue:
    'str2'
    >>>
 
+New functions:
+*Available since v0.8.0*
+
+- ``shrink_disk_usage`` perform a ``VACUUM`` against the sqlite, and rebuild the database file, this usually takes long time and frees a lot of disk space after ``get()``
+
 
 Example usage of SQLite3 based ``UniqueQ``
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/persistqueue/__init__.py b/persistqueue/__init__.py
index 5810b3b..21b4ced 100644
--- a/persistqueue/__init__.py
+++ b/persistqueue/__init__.py
@@ -1,7 +1,7 @@
 # coding=utf-8
 __author__ = 'Peter Wang'
 __license__ = 'BSD'
-__version__ = '0.8.0-alpha0'
+__version__ = '0.8.0-beta0'
 
 from .exceptions import Empty, Full  # noqa
 from .queue import Queue  # noqa
diff --git a/persistqueue/sqlackqueue.py b/persistqueue/sqlackqueue.py
index 80b0197..877ebad 100644
--- a/persistqueue/sqlackqueue.py
+++ b/persistqueue/sqlackqueue.py
@@ -167,11 +167,6 @@ class SQLiteAckQueue(sqlbase.SQLiteBase):
         )
         return sql, AckStatus.acked
 
-    @sqlbase.with_conditional_transaction
-    def shrink_disk_usage(self):
-        sql = """VACUUM"""
-        return sql, ()
-
     @property
     def _sql_mark_ack_status(self):
         return self._SQL_MARK_ACK_UPDATE.format(
diff --git a/persistqueue/sqlbase.py b/persistqueue/sqlbase.py
index 607b3cb..84dba02 100644
--- a/persistqueue/sqlbase.py
+++ b/persistqueue/sqlbase.py
@@ -212,6 +212,11 @@ class SQLBase(object):
             datarows.append(item)
         return datarows
 
+    @with_conditional_transaction
+    def shrink_disk_usage(self):
+        sql = """VACUUM"""
+        return sql, ()
+
     @property
     def size(self):
         return self.total

diff --git a/persistqueue/tests/test_sqlackqueue.py b/persistqueue/tests/test_sqlackqueue.py
index e455da6..ee81f30 100644
--- a/persistqueue/tests/test_sqlackqueue.py
+++ b/persistqueue/tests/test_sqlackqueue.py
@@ -75,6 +75,7 @@ class SQLite3AckQueueTest(unittest.TestCase):
         # assert adding another one still works
         q.put('foobar')
         data = q.get()
+        q.shrink_disk_usage()
         self.assertEqual('foobar', data)
 
     def test_random_read_write(self):
diff --git a/persistqueue/tests/test_sqlqueue.py b/persistqueue/tests/test_sqlqueue.py
index 87cfb90..4f5452a 100644
--- a/persistqueue/tests/test_sqlqueue.py
+++ b/persistqueue/tests/test_sqlqueue.py
@@ -75,6 +75,7 @@ class SQLite3QueueTest(unittest.TestCase):
         # assert adding another one still works
         q.put('foobar')
         data = q.get()
+        q.shrink_disk_usage()
         self.assertEqual('foobar', data)
 
     def test_random_read_write(self):

File is not getting cleared after get() function
I entered data to file in file-based queue. But after performing get() the elements from the queue is deleted but if we open the file we can still see the data. So i think the file size will keep on increasing if we keep on increasing data.
persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_open_close_1000 persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_open_close_1000
persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_ack_active_size persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_ack_and_clear persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_ack_unack_ack_failed persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_ack_unknown_item persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_empty persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_get_id persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_get_next_in_order persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_get_raw persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_multi_threaded_multi_producer persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_multi_threaded_parallel persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_multiple_consumers persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_nack_raw persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_open_close_1000 persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_open_close_single persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_protocol_1 persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_protocol_2 persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_put_0 persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_queue persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_raise_empty persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_random_read_write persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_resume_unack persistqueue/tests/test_sqlackqueue.py::SQLite3AckQueueTest::test_update persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_ack_active_size persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_ack_and_clear persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_ack_unack_ack_failed persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_ack_unknown_item persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_empty persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_get_id persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_get_next_in_order persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_get_raw persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_nack_raw persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_protocol_1 persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_put_0 persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_queue persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_raise_empty persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_random_read_write persistqueue/tests/test_sqlackqueue.py::SQLite3QueueInMemory::test_update persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_ack_active_size persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_ack_and_clear persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_ack_unack_ack_failed persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_ack_unknown_item persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_empty persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_get_id persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_get_next_in_order persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_get_raw persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_multi_threaded_multi_producer persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_multi_threaded_parallel persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_multiple_consumers persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_nack_raw persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_open_close_1000 persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_open_close_single persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_protocol_1 persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_protocol_2 persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_put_0 persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_queue persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_raise_empty persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_random_read_write persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_resume_unack persistqueue/tests/test_sqlackqueue.py::FILOSQLite3AckQueueTest::test_update persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_ack_active_size persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_ack_and_clear persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_ack_unack_ack_failed persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_ack_unknown_item persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_add_duplicate_item persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_empty persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_get_id persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_get_next_in_order persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_get_raw persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_multi_threaded_multi_producer persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_multi_threaded_parallel persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_multiple_consumers persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_nack_raw persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_open_close_1000 persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_open_close_single persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_protocol_1 persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_protocol_2 persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_put_0 persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_queue persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_raise_empty persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_random_read_write persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_resume_unack persistqueue/tests/test_sqlackqueue.py::SQLite3UniqueAckQueueTest::test_update persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_get_id persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_get_raw persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_json_serializer persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_multi_threaded_multi_producer persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_multi_threaded_parallel persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_multiple_consumers persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_open_close_single persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_protocol_1 persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_protocol_2 persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_put_0 persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_queue persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_raise_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_random_read_write persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_task_done_with_restart persistqueue/tests/test_sqlqueue.py::SQLite3QueueTest::test_update persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_get_id persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_get_raw persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_json_serializer persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_multi_threaded_multi_producer persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_multi_threaded_parallel persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_open_close_single persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_protocol_1 persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_protocol_2 persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_put_0 persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_queue persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_raise_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_random_read_write persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_task_done_with_restart persistqueue/tests/test_sqlqueue.py::SQLite3QueueNoAutoCommitTest::test_update persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_get_id persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_get_raw persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_json_serializer persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_protocol_1 persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_put_0 persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_queue persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_raise_empty persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_random_read_write persistqueue/tests/test_sqlqueue.py::SQLite3QueueInMemory::test_update persistqueue/tests/test_sqlqueue.py::FILOSQLite3QueueTest::test_open_close_1000 persistqueue/tests/test_sqlqueue.py::FILOSQLite3QueueNoAutoCommitTest::test_open_close_1000 persistqueue/tests/test_sqlqueue.py::SQLite3UniqueQueueTest::test_add_duplicate_item persistqueue/tests/test_sqlqueue.py::SQLite3UniqueQueueTest::test_multiple_consumers persistqueue/tests/test_sqlqueue.py::SQLite3UniqueQueueTest::test_unique_dictionary_serialization_json persistqueue/tests/test_sqlqueue.py::SQLite3UniqueQueueTest::test_unique_dictionary_serialization_pickle