Esempio n. 1
0
        private async Task <IStatement> GetKreateKeySpaceQuery(ISession schemaSession)
        {
            PreparedStatement createEventsTableStatement = await schemaSession.PrepareAsync(replicationStrategy.CreateKeySpaceTemplate(GetKeyspace())).ConfigureAwait(false);

            createEventsTableStatement = createEventsTableStatement.SetConsistencyLevel(ConsistencyLevel.LocalQuorum);

            return(createEventsTableStatement.Bind());
        }
Esempio n. 2
0
        private void DoPreparedSelectTest(ConsistencyLevel expectedConsistencyLevel)
        {
            // NOTE: We have to re-prepare every time since there is a unique Keyspace used for every test
            PreparedStatement preparedSelectStatement = _session.Prepare(_defaultSelectStatement);
            var result = _session.Execute(preparedSelectStatement.SetConsistencyLevel(expectedConsistencyLevel).Bind());

            Assert.AreEqual(expectedConsistencyLevel, result.Info.AchievedConsistency);
            Assert.AreEqual(_defaultPocoList.Count, result.GetRows().ToList().Count);
        }
Esempio n. 3
0
        public void Bind_Should_Create_BoundStatement_With_Provided_Values()
        {
            var ps = new PreparedStatement();

            ps.SetRoutingKey(new RoutingKey(new byte[] { 0x01 }));
            ps.SetConsistencyLevel(ConsistencyLevel.LocalQuorum);
            ps.SetIdempotence(true);
            var statement = ps.Bind();

            Assert.AreEqual(ConsistencyLevel.LocalQuorum, statement.ConsistencyLevel);
            Assert.AreSame(ps.RoutingKey, statement.RoutingKey);
            Assert.True(statement.IsIdempotent);
        }
Esempio n. 4
0
        public void Consistency_PreparedStatement_Serial_Select_Success()
        {
            SetupSessionAndCluster(_defaultNodeCountOne);

            PreparedStatement preparedSelectStatement = _session.Prepare(_defaultSelectStatement);
            BoundStatement    statement = preparedSelectStatement.SetConsistencyLevel(ConsistencyLevel.Quorum).Bind();

            statement.SetSerialConsistencyLevel(ConsistencyLevel.Serial);
            var result = _session.Execute(statement);

            Assert.AreEqual(ConsistencyLevel.Quorum, result.Info.AchievedConsistency);
            Assert.AreEqual(_defaultPocoList.Count, result.GetRows().ToList().Count);
        }
Esempio n. 5
0
        public async Task CreateTableAsync(string location)
        {
            ISession session = await GetSessionAsync().ConfigureAwait(false);

            logger.Debug(() => $"[Projections] Creating table `{location}` with `{session.Cluster.AllHosts().First().Address}`...");
            string            query     = string.Format(CreateProjectionEventsTableTemplate, location);
            PreparedStatement statement = await session.PrepareAsync(query).ConfigureAwait(false);

            statement = statement.SetConsistencyLevel(ConsistencyLevel.All);
            await session.ExecuteAsync(statement.Bind()).ConfigureAwait(false);

            logger.Debug(() => $"[Projections] Created table `{location}`... Maybe?!");
        }
Esempio n. 6
0
        public async Task DropTableAsync(string location)
        {
            if (string.IsNullOrWhiteSpace(location))
            {
                throw new ArgumentNullException(nameof(location));
            }

            ISession session = await GetSessionAsync().ConfigureAwait(false);

            string            query     = string.Format(DropQueryTemplate, location);
            PreparedStatement statement = await session.PrepareAsync(query).ConfigureAwait(false);

            statement = statement.SetConsistencyLevel(ConsistencyLevel.All);
            await session.ExecuteAsync(statement.Bind()).ConfigureAwait(false);
        }
Esempio n. 7
0
        public async Task CreateTableAsync(string location)
        {
            ISession session = await GetSessionAsync().ConfigureAwait(false);

            if (string.IsNullOrWhiteSpace(location))
            {
                throw new ArgumentNullException(nameof(location));
            }
            logger.Debug(() => $"[Projections] Creating snapshot table `{location}` with `{session.Cluster.AllHosts().First().Address}`...");
            string            query     = string.Format(CreateSnapshopEventsTableTemplate, location);
            PreparedStatement statement = await session.PrepareAsync(query).ConfigureAwait(false);

            statement = statement.SetConsistencyLevel(ConsistencyLevel.All);
            await session.ExecuteAsync(statement.Bind()).ConfigureAwait(false);

            logger.Debug(() => $"[Projections] Created snapshot table `{location}`... Maybe?!");
        }
Esempio n. 8
0
        public void Consistency_PreparedStatement_Serial_Insert_Success()
        {
            ManyDataTypesEntity mdtp = ManyDataTypesEntity.GetRandomInstance();

            object[] vals = ConvertEntityToObjectArray(mdtp);
            SetupSessionAndCluster(_defaultNodeCountOne);

            PreparedStatement preparedInsertStatement = _session.Prepare(_preparedInsertStatementAsString);
            BoundStatement    boundStatement          = preparedInsertStatement.SetConsistencyLevel(ConsistencyLevel.Quorum).Bind(vals);

            boundStatement.SetSerialConsistencyLevel(ConsistencyLevel.Serial);
            var result = _session.Execute(boundStatement);

            Assert.AreEqual(ConsistencyLevel.Quorum, result.Info.AchievedConsistency);

            var selectResult = _session.Execute(_defaultSelectStatement);

            Assert.AreEqual(_defaultPocoList.Count + 1, selectResult.GetRows().ToList().Count);
        }
        public async Task Start()
        {
            Console.WriteLine("Creating session...");
            var session = CreateConnectedSession();

            ReadAllData(session);

            _ps = session.Prepare("SELECT * FROM nameslist.names WHERE name = ?");
            _ps.SetConsistencyLevel(ConsistencyLevel.Three);

            Console.WriteLine("Loading...");
            Console.WriteLine("Number of threads?");
            var readLine    = Console.ReadLine();
            var nrOfThreads = Parse(readLine);

            _counterReader.StartStopWatch();

            await ConcurrentUtils.ConcurrentUtils.Times(nrOfThreads, nrOfThreads, index => LoadItemPerKey(session));
        }
        public CQLInventoryStorage(string[] contactPoints)
        {
            _cluster = Cluster.Builder().AddContactPoints(contactPoints).Build();
            _session = _cluster.Connect(KEYSPACE_NAME);


            SKEL_SELECT_STMT = _session.Prepare("SELECT * FROM skeletons WHERE user_id = ?;");
            SKEL_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            SKEL_SINGLE_SELECT_STMT = _session.Prepare("SELECT * FROM skeletons WHERE user_id = ? AND folder_id = ?;");
            SKEL_SINGLE_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            SKEL_INSERT_STMT
                = _session.Prepare("INSERT INTO skeletons (user_id, folder_id, folder_name, parent_id, type, level) " +
                                   "VALUES(?, ?, ?, ?, ?, ?);");
            SKEL_INSERT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_SELECT_STMT = _session.Prepare("SELECT * FROM folder_contents WHERE folder_id = ?;");
            FOLDER_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ATTRIB_SELECT_STMT = _session.Prepare("SELECT * FROM folder_contents WHERE folder_id = ? AND item_id = "
                                                         + FOLDER_MAGIC_ENTRY.ToString() + ";");
            FOLDER_ATTRIB_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ATTRIB_INSERT_STMT
                = _session.Prepare("INSERT INTO folder_contents (folder_id, item_id, name, inv_type, creation_date, owner_id) " +
                                   "VALUES (?, ?, ?, ?, ?, ?);");
            FOLDER_ATTRIB_INSERT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ITEM_INSERT_STMT
                = _session.Prepare("INSERT INTO folder_contents (folder_id, item_id, name, asset_id, asset_type, " +
                                   "base_permissions, creation_date, creator_id, current_permissions, description, " +
                                   "everyone_permissions, flags, group_id, group_owned, group_permissions, " +
                                   "inv_type, next_permissions, owner_id, sale_type) " +
                                   "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
            FOLDER_ITEM_INSERT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ITEM_UPDATE_STMT
                = _session.Prepare("UPDATE folder_contents SET name = ?, asset_id = ?, asset_type = ?, " +
                                   "base_permissions = ?, creation_date = ?, creator_id = ?, current_permissions= ?, description = ?, " +
                                   "everyone_permissions = ?, flags = ?, group_id = ?, group_owned = ?, group_permissions = ?, " +
                                   "inv_type = ?, next_permissions = ?, sale_type = ? " +
                                   "WHERE folder_id = ? AND item_id = ?;");
            FOLDER_ITEM_UPDATE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ITEM_REMOVE_STMT = _session.Prepare("DELETE FROM folder_contents WHERE folder_id = ? AND item_id = ?;");
            FOLDER_ITEM_REMOVE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_VERSION_INC_STMT
                = _session.Prepare("UPDATE folder_versions SET version = version + 1 WHERE user_id = ? AND folder_id = ?;");
            FOLDER_VERSION_INC_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_VERSION_SELECT_STMT = _session.Prepare("SELECT * FROM folder_versions WHERE user_id = ?;");
            FOLDER_VERSION_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_VERSION_SINGLE_SELECT_STMT = _session.Prepare("SELECT * FROM folder_versions WHERE user_id = ? AND folder_id = ?;");
            FOLDER_VERSION_SINGLE_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_UPDATE_STMT = _session.Prepare("UPDATE folder_contents SET name = ?, inv_type = ? " +
                                                  "WHERE folder_id = ? AND item_id = " + FOLDER_MAGIC_ENTRY.ToString());
            FOLDER_UPDATE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            SKEL_UPDATE_STMT = _session.Prepare("UPDATE skeletons SET folder_name = ?, type = ? WHERE user_id = ? AND folder_id = ?;");
            SKEL_UPDATE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            SKEL_MOVE_STMT = _session.Prepare("UPDATE skeletons SET parent_id = ? WHERE user_id = ? AND folder_id = ?;");
            SKEL_MOVE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            ITEM_OWNERSHIP_INSERT = _session.Prepare("INSERT INTO item_parents(item_id, parent_folder_id) VALUES(?, ?);");
            ITEM_OWNERSHIP_INSERT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            ITEM_OWNERSHIP_UPDATE = _session.Prepare("UPDATE item_parents SET parent_folder_id = ? WHERE item_id = ?;");
            ITEM_OWNERSHIP_UPDATE.SetConsistencyLevel(ConsistencyLevel.Quorum);


            ITEM_OWNERSHIP_REMOVE = _session.Prepare("DELETE FROM item_parents WHERE item_id = ?;");
            ITEM_OWNERSHIP_REMOVE.SetConsistencyLevel(ConsistencyLevel.Quorum);


            ITEM_OWNERSHIP_SELECT = _session.Prepare("SELECT * FROM item_parents WHERE item_id = ?;");
            ITEM_OWNERSHIP_SELECT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_ITEM_SELECT_STMT = _session.Prepare("SELECT * FROM folder_contents WHERE folder_id = ? AND item_id = ?;");
            FOLDER_ITEM_SELECT_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_REMOVE_STMT = _session.Prepare("DELETE FROM folder_contents WHERE folder_id = ?;");
            FOLDER_REMOVE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            SKEL_REMOVE_STMT = _session.Prepare("DELETE FROM skeletons WHERE user_id = ? AND folder_id = ?;");
            SKEL_REMOVE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);


            FOLDER_VERSION_REMOVE_STMT = _session.Prepare("DELETE FROM folder_versions WHERE user_id = ? AND folder_id = ?;");
            FOLDER_VERSION_REMOVE_STMT.SetConsistencyLevel(ConsistencyLevel.Quorum);
        }