cqle: update docs for new __options__ model attribute

This commit is contained in:
Adam Holmberg
2015-09-30 14:15:51 -05:00
parent 1048f33604
commit 75ddc51461

View File

@@ -20,8 +20,8 @@ Model
person.first_name #returns 'Blake' person.first_name #returns 'Blake'
person.last_name #returns 'Eggleston' person.last_name #returns 'Eggleston'
*Model attributes define how the model maps to tables in the database. These are class variables that should be set Model attributes define how the model maps to tables in the database. These are class variables that should be set
when defining Model deriviatives.* when defining Model deriviatives.
.. autoattribute:: __abstract__ .. autoattribute:: __abstract__
:annotation: = False :annotation: = False
@@ -39,97 +39,49 @@ Model
See :ref:`model_inheritance` for usage examples. See :ref:`model_inheritance` for usage examples.
*Each table can have its own set of configuration options. Each table can have its own set of configuration options, including compaction. Unspecified, these default to sensible values in
These can be specified on a model with the following attributes:* the server. To override defaults, set options using the model ``__options__`` attribute, which allows options specified a dict.
When a table is synced, it will be altered to match the options set on your table.
This means that if you are changing settings manually they will be changed back on resync.
Do not use the options settings of cqlengine if you want to manage your compaction settings manually.
See the `list of supported table properties for more information See the `list of supported table properties for more information
<http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/tabProp.html>`_. <http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/tabProp.html>`_.
.. attribute:: __bloom_filter_fp_chance
.. attribute:: __caching__ .. attribute:: __options__
.. attribute:: __comment__
.. attribute:: __dclocal_read_repair_chance__
.. attribute:: __default_time_to_live__
.. attribute:: __gc_grace_seconds__
.. attribute:: __index_interval__
.. attribute:: __memtable_flush_period_in_ms__
.. attribute:: __populate_io_cache_on_flush__
.. attribute:: __read_repair_chance__
.. attribute:: __replicate_on_write__
*Model presently supports specifying compaction options via class attributes.
cqlengine will only use your compaction options if you have a strategy set.
When a table is synced, it will be altered to match the compaction options set on your table.
This means that if you are changing settings manually they will be changed back on resync.*
*Do not use the compaction settings of cqlengine if you want to manage your compaction settings manually.*
*cqlengine supports all compaction options as of Cassandra 1.2.8.*
**These attibutes will likely be replaced by a single options string in a future version, and are therefore deprecated.**
.. attribute:: __compaction_bucket_high__
:annotation: Deprecated
.. attribute:: __compaction_bucket_low__
:annotation: Deprecated
.. attribute:: __compaction_max_compaction_threshold__
:annotation: Deprecated
.. attribute:: __compaction_min_compaction_threshold__
:annotation: Deprecated
.. attribute:: __compaction_min_sstable_size__
:annotation: Deprecated
.. attribute:: __compaction_sstable_size_in_mb__
:annotation: Deprecated
.. attribute:: __compaction_tombstone_compaction_interval__
:annotation: Deprecated
.. attribute:: __compaction_tombstone_threshold__
:annotation: Deprecated
For example: For example:
.. code-block:: python .. code-block:: python
class User(Model): class User(Model):
__compaction__ = cqlengine.LeveledCompactionStrategy __options__ = {'compaction': {'class': 'LeveledCompactionStrategy',
__compaction_sstable_size_in_mb__ = 64 'sstable_size_in_mb': '64',
__compaction_tombstone_threshold__ = .2 'tombstone_threshold': '.2'},
'read_repair_chance': '0.5',
'comment': 'User data stored here'}
user_id = columns.UUID(primary_key=True) user_id = columns.UUID(primary_key=True)
name = columns.Text() name = columns.Text()
or for SizeTieredCompaction: or :
.. code-block:: python .. code-block:: python
class TimeData(Model): class TimeData(Model):
__compaction__ = SizeTieredCompactionStrategy __options__ = {'compaction': {'class': 'SizeTieredCompactionStrategy',
__compaction_bucket_low__ = .3 'bucket_low': '.3',
__compaction_bucket_high__ = 2 'bucket_high': '2',
__compaction_min_threshold__ = 2 'min_threshold': '2',
__compaction_max_threshold__ = 64 'max_threshold': '64',
__compaction_tombstone_compaction_interval__ = 86400 'tombstone_compaction_interval': '86400'},
'gc_grace_seconds': '0'}
Tables may use `LeveledCompactionStrategy` or `SizeTieredCompactionStrategy`. Both options are available in the top level cqlengine module. To reiterate, you will need to set your `__compaction__` option explicitly in order for cqlengine to handle any of your settings.
*The base methods allow creating, storing, and querying modeled objects.* The base methods allow creating, storing, and querying modeled objects.
.. automethod:: create .. automethod:: create