Files changed (29)
+ * @param name. A column name can act both as structure (a label) or as data (like value). Regardless, the name of the column
+ * @param columns. A collection of standard Columns. The columns within a super column are defined in an adhoc manner.
+ * Columns within a super column do not have to have matching structures (similarly named child columns).
+ Methods for fetching rows/records from Cassandra will return either a single instance of ColumnOrSuperColumn or a list
+ of ColumnOrSuperColumns (get_slice()). If you're looking up a SuperColumn (or list of SuperColumns) then the resulting
+ instances of ColumnOrSuperColumn will have the requested SuperColumn in the attribute super_column. For queries resulting
+ in Columns, those values will be in the attribute column. This change was made between 0.3 and 0.4 to standardize on
+/** Invalid request could mean keyspace or column family does not exist, required parameters are missing, or a parameter is malformed.
+/** RPC timeout was exceeded. either a node failed mid-operation, or load was too high, or the requested op was too large. */
+/** The ConsistencyLevel is an enum that controls both read and write behavior based on <ReplicationFactor> in your
+ * storage-conf.xml. The different consistency levels have different meanings, depending on if you're doing a write or read
+ * operation. Note that if W + R > ReplicationFactor, where W is the number of nodes to block for on write, and R
+ * the number to block for on reads, you will have strongly consistent behavior; that is, readers will always see the most
+ * recent write. Of these, the most interesting is to do QUORUM reads and writes, which gives you consistency while still
+ * allowing availability in the face of node failures up to half of <ReplicationFactor>. Of course if latency is more
+ * ONE Ensure that the write has been written to at least 1 node's commit log and memory table before responding to the client.
+ * QUORUM Ensure that the write has been written to <ReplicationFactor> / 2 + 1 nodes before responding to the client.
+ * ALL Ensure that the write is written to <code><ReplicationFactor></code> nodes before responding to the client.
+ * ONE Will return the record returned by the first node to respond. A consistency check is always done in a
+ * background thread to fix any consistency issues when ConsistencyLevel.ONE is used. This means subsequent
+ * calls will have correct data even if the initial read gets an older value. (This is called 'read repair'.)
+ * QUORUM Will query all storage nodes and return the record with the most recent timestamp once it has at least a
+ ColumnParent is used when selecting groups of columns from the same ColumnFamily. In directory structure terms, imagine
+/** The ColumnPath is the path to a single column in Cassandra. It might make sense to think of ColumnPath and
+ A slice range is a structure that stores basic range, ordering and limit information for a query that will return
+ @param start. The column name to start the slice with. This attribute is not required, though there is no default value,
+ and can be safely set to '', i.e., an empty byte array, to start with the first column name. Otherwise, it
+ @param finish. The column name to stop the slice at. This attribute is not required, though there is no default value,
+ and can be safely set to an empty byte array to not stop until 'count' results are seen. Otherwise, it
+ @param reversed. Whether the results should be ordered in reversed order. Similar to ORDER BY blah DESC in SQL.
+ @param count. How many keys to return. Similar to LIMIT 100 in SQL. May be arbitrarily large, but Thrift will
+ materialize the whole result into memory before returning it to the client, so be aware that you may
+ be better served by iterating through slices by passing the last value of one call in as the 'start'
+ A SlicePredicate is similar to a mathematic predicate (see http://en.wikipedia.org/wiki/Predicate_(mathematical_logic)),
+ SlicePredicate's in Cassandra are described with either a list of column_names or a SliceRange. If column_names is
+ @param column_name. A list of column names to retrieve. This can be used similar to Memcached's "multi-get" feature
+ A KeySlice is key followed by the data it maps to. A collection of KeySlice is returned by the get_range_slice operation.
+ @param columns. List of data represented by the key. Typically, the list is pared down to only the columns specified by
+ Get the Column or SuperColumn at the given column_path. If no value is present, NotFoundException is thrown. (This is
+ throws (1:InvalidRequestException ire, 2:NotFoundException nfe, 3:UnavailableException ue, 4:TimedOutException te),
+ Get the group of columns contained by column_parent (either a ColumnFamily name or a ColumnFamily/SuperColumn name
+ pair) specified by the given SlicePredicate. If no matching values are found, an empty list is returned.
+ Perform a get for column_path in parallel on the given list<string> keys. The return value maps keys to the
+ ColumnOrSuperColumn found. If no value corresponding to a key is present, the key will still be in the map, but both
+ returns the number of columns for a particular <code>key</code> and <code>ColumnFamily</code> or <code>SuperColumn</code>.
+ Insert a Column consisting of (column_path.column, value, timestamp) at the given column_path.column_family and optional
+ column_path.super_column. Note that column_path.column is here required, since a SuperColumn cannot directly contain binary
+ Insert Columns or SuperColumns across different Column Families for the same row key. batch_mutation is a
+ map<string, list<ColumnOrSuperColumn>> -- a map which pairs column family names with the relevant ColumnOrSuperColumn
+ Remove data from the row specified by key at the granularity specified by column_path, and the given timestamp. Note
+ that all the values in column_path besides column_path.column_family are truly optional: you can remove the entire
+ row by just specifying the ColumnFamily, or you can remove a SuperColumn or a single Column by specifying those levels too.
Binary file added.
+% get_range_slice(This, Keyspace, Column_parent, Predicate, Start_key, Finish_key, Row_count, Consistency_level)