Getting started

So, you need your own multi-location distributed cluster that can sustain even disaster like power or connection outage, fire, hurricane and so on as nodes physically are placed in different availability zones.
You are in the right place – Winguzone provides such multi-tenant cluster with a very competitive prices starting from 25$!
Just a few steps and you could login to your Cassandra cluster.

First, signup for Winguzone cloud-based Cassandra. Your username will serve as a base name for Cassandra cluster you get. I.e. if user name is acmeinc and chosen cluster name is customers full cluster name is customers.acmeinc. Pay attention – neither user name nor cluster name could not be changed afterwards, so be careful. You connect address will be customers.acmeinc.wingu.zone.

Upon registration, you can create a cluster (14-days trial available) with 10 tables and 1GB storage space. When your are ready for production and you can increase the number of tables and storage in the cluster. Just contact Winguzone customers support.

You can connect your new cluster immediately with cqlsh (please see detailed guide at Winguzone Control Panel):

./cqlsh -u cassandra@customers.acmeinc -p cassandra  customers.acmeinc.wingu.zone

and start to work regular way.

Warning: upon first login to cluster you should change superuser password.

Our Cassandra running on standard port 9042 and supports both plane and encrypted connections with 4096 bit RSA key.

You can add as many regular Cassandra users to your cluster as you need by using standard CQL commands.

New created Cassandra users also should append @customers.acmeinc to user name for login

Example:

CREATE USER admin WITH PASSWORD ‘secret’ SUPERUSER

and  new user can login

 ./cqlsh -u admin@customers.acmeinc -p secret customers.acmeinc.wingu.zone

Winguzone Cassandra features and limitations.

In CREATE TABLE only comment property has an effect, other settings are ignored. The same is regarding ALTER TABLE – you can only change table comment. Please contact support if you need to change some other table parameters, like kind of compaction more suitable for your workload pattern.

Triggers (CREATE TRIGGER), user defined function and aggregates (CREATE FUNCTION and CREATE AGGREGATE) are not supported for security reason and disabled by default. Please contact support if you need to add them.

Unique  ADDNEW permission is added for usage in GRANT command. Its meaning is that user can only perform INSERT (or UPDATE, that’s actual the same) operation only if data does not exist. No existing data can be altered or erased, and even no SELECT queries can be performed. Imagine distributed application (e.g. mobile), that each its instance should add something to a table, but shouldn’t be able to alter/delete existing data, or view it. That’s the case where ADDNEW permission can be useful. But pay intention, like IF NOT EXISTS  option ADDNEW “incurs a performance hit associated with using Paxos internally.”

Example:

./cqlsh -u cassandra@your_user_name your_cluster_address
CREATE KEYSPACE adding  WITH REPLICATION={'class':'SimpleStrategy','replication_factor':3};
CREATE TABLE adding.log (id int primary key, str text);
CREATE USER adder WITH PASSWORD 'adder';
GRANT ADDNEW on adding.log to adder;
./cqlsh -u adder@your_user_name your_cluster_address
INSERT INTO adding.log (id,str) VALUES (0,'ins1'); INSERT INTO adding.log (id,str) VALUES (0,'ins2');
InvalidRequest: code=2200 [Invalid query] message="Duplicate entry"
UPDATE adding.log SET str = 'upd1' WHERE id=1; UPDATE adding.log SET str = 'upd2' WHERE id=1;
InvalidRequest: code=2200 [Invalid query] message="Duplicate entry"
INSERT INTO adding.log (id,str) VALUES (2,'ins3') IF NOT EXISTS;
Unauthorized: code=2100 [Unauthorized] message="User adder has no SELECT permission on <table adding.log> or any of its parents"
UPDATE adding.log SET str = 'upd3' WHERE id=3 IF EXISTS;
Unauthorized: code=2100 [Unauthorized] message="User adder has no UPDATE...IS EXISTS permission on adding.log or any of its parents"