diff --git a/docs/api/database.rst b/docs/api/database.rst
index 93e5741ddc532040b970f039185b7538c9c727e1..17e48e4731e8f3a787aa7b5006ab8c78bda42baa 100644
--- a/docs/api/database.rst
+++ b/docs/api/database.rst
@@ -16,7 +16,7 @@ Database object
                                Exception.
 
 
-    .. py:method:: put(key, value, sync=False, disable_wal=False)
+    .. py:method:: put(key, value, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False)
 
         Set the database entry for "key" to "value".
 
@@ -42,16 +42,35 @@ Database object
             If ``True``, writes will not first go to the write ahead log,
             and the write may got lost after a crash.
 
-    .. py:method:: delete(key, sync=False, disable_wal=False)
+        :param bool ignore_missing_column_families:
+            If ``True`` and if user is trying to write to column families that don't exist
+            (they were dropped),  ignore the write (don't return an error). If there
+            are multiple writes in a WriteBatch, other writes will succeed.
+
+        :param bool no_slowdown:
+            If ``True`` and we need to wait or sleep for the write request, fails
+            immediately with Status::Incomplete().
+
+        :param bool low_pri:
+            If ``True``, this write request is of lower priority if compaction is
+            behind. In this case, no_slowdown = true, the request will be cancelled
+            immediately with Status::Incomplete() returned. Otherwise, it will be
+            slowed down. The slowdown value is determined by RocksDB to guarantee
+            it introduces minimum impacts to high priority writes.
+
+    .. py:method:: delete(key, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False)
 
         Remove the database entry for "key".
 
         :param bytes key: Name to delete
         :param sync: See :py:meth:`rocksdb.DB.put`
         :param disable_wal: See :py:meth:`rocksdb.DB.put`
+        :param ignore_missing_column_families: See :py:meth:`rocksdb.DB.put`
+        :param no_slowdown: See :py:meth:`rocksdb.DB.put`
+        :param low_pri: See :py:meth:`rocksdb.DB.put`
         :raises rocksdb.errors.NotFound: If the key did not exists
 
-    .. py:method:: merge(key, value, sync=False, disable_wal=False)
+    .. py:method:: merge(key, value, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False)
 
         Merge the database entry for "key" with "value".
         The semantics of this operation is determined by the user provided
@@ -64,13 +83,16 @@ Database object
             no :py:attr:`rocksdb.Options.merge_operator` was set at creation
 
 
-    .. py:method:: write(batch, sync=False, disable_wal=False)
+    .. py:method:: write(batch, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False)
 
         Apply the specified updates to the database.
 
         :param rocksdb.WriteBatch batch: Batch to apply
         :param sync: See :py:meth:`rocksdb.DB.put`
         :param disable_wal: See :py:meth:`rocksdb.DB.put`
+        :param ignore_missing_column_families: See :py:meth:`rocksdb.DB.put`
+        :param no_slowdown: See :py:meth:`rocksdb.DB.put`
+        :param low_pri: See :py:meth:`rocksdb.DB.put`
 
     .. py:method:: get(key, verify_checksums=False, fill_cache=True, snapshot=None, read_tier="all")
 
diff --git a/rocksdb/_rocksdb.pyx b/rocksdb/_rocksdb.pyx
index 4d8cf4103cf084eb1b894eb470f0aa4a9379f08b..996ae9c34a4665bd385a6fd8facdef1b288ef49a 100644
--- a/rocksdb/_rocksdb.pyx
+++ b/rocksdb/_rocksdb.pyx
@@ -1762,11 +1762,14 @@ cdef class DB(object):
             if handle.name == name:
                 return handle.weakref
 
-    def put(self, key, value, sync=False, disable_wal=False):
+    def put(self, key, value, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False):
         cdef Status st
         cdef options.WriteOptions opts
         opts.sync = sync
         opts.disableWAL = disable_wal
+        opts.ignore_missing_column_families = ignore_missing_column_families
+        opts.no_slowdown = no_slowdown
+        opts.low_pri = low_pri
 
         if isinstance(key, tuple):
             column_family, key = key
@@ -1783,11 +1786,14 @@ cdef class DB(object):
             st = self.db.Put(opts, cf_handle, c_key, c_value)
         check_status(st)
 
-    def delete(self, key, sync=False, disable_wal=False):
+    def delete(self, key, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False):
         cdef Status st
         cdef options.WriteOptions opts
         opts.sync = sync
         opts.disableWAL = disable_wal
+        opts.ignore_missing_column_families = ignore_missing_column_families
+        opts.no_slowdown = no_slowdown
+        opts.low_pri = low_pri
 
         if isinstance(key, tuple):
             column_family, key = key
@@ -1803,11 +1809,14 @@ cdef class DB(object):
             st = self.db.Delete(opts, cf_handle, c_key)
         check_status(st)
 
-    def merge(self, key, value, sync=False, disable_wal=False):
+    def merge(self, key, value, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False):
         cdef Status st
         cdef options.WriteOptions opts
         opts.sync = sync
         opts.disableWAL = disable_wal
+        opts.ignore_missing_column_families = ignore_missing_column_families
+        opts.no_slowdown = no_slowdown
+        opts.low_pri = low_pri
 
         if isinstance(key, tuple):
             column_family, key = key
@@ -1824,11 +1833,14 @@ cdef class DB(object):
             st = self.db.Merge(opts, cf_handle, c_key, c_value)
         check_status(st)
 
-    def write(self, WriteBatch batch, sync=False, disable_wal=False):
+    def write(self, WriteBatch batch, sync=False, disable_wal=False, ignore_missing_column_families=False, no_slowdown=False, low_pri=False):
         cdef Status st
         cdef options.WriteOptions opts
         opts.sync = sync
         opts.disableWAL = disable_wal
+        opts.ignore_missing_column_families = ignore_missing_column_families
+        opts.no_slowdown = no_slowdown
+        opts.low_pri = low_pri
 
         with nogil:
             st = self.db.Write(opts, batch.batch)
diff --git a/rocksdb/options.pxd b/rocksdb/options.pxd
index 1c5a78816d6cd94c965faf23622ff0dc9efe3db2..6d8ca7acbc8fd736ae225cca5845c5b7f5772e0b 100644
--- a/rocksdb/options.pxd
+++ b/rocksdb/options.pxd
@@ -164,6 +164,9 @@ cdef extern from "rocksdb/options.h" namespace "rocksdb":
     cdef cppclass WriteOptions:
         cpp_bool sync
         cpp_bool disableWAL
+        cpp_bool ignore_missing_column_families
+        cpp_bool no_slowdown
+        cpp_bool low_pri
 
     cdef cppclass ReadOptions:
         cpp_bool verify_checksums
diff --git a/rocksdb/tests/test_db.py b/rocksdb/tests/test_db.py
index 5709dd3d956e1311f90c31b3d242488795c4035f..900f2784c1df14a746b03b68ac0dc6d791a985a6 100644
--- a/rocksdb/tests/test_db.py
+++ b/rocksdb/tests/test_db.py
@@ -274,6 +274,14 @@ class TestDB(TestHelper):
 
         self.db.compact_range()
 
+    def test_write_ignore_missing_column_families(self):
+        self.db.put(b"a", b"1", ignore_missing_column_families=True)
+
+    def test_write_no_slowdown(self):
+        self.db.put(b"a", b"1", no_slowdown=True)
+
+    def test_write_low_pri(self):
+        self.db.put(b"a", b"1", low_pri=True)
 
 class AssocCounter(rocksdb.interfaces.AssociativeMergeOperator):
     def merge(self, key, existing_value, value):