commitLog et SSTables dans la base de données Cassandra

J'ai récemment commencé à travailler avec Cassandra base de données. J'ai installé single node cluster dans ma boîte locale. Et je suis en train de travailler avec Cassandra 1.2.3.

J'ai lu l'article sur internet et j'ai trouvé cette ligne-

Cassandra écrit sont d'abord écrites dans un journal de validation (pour la solidité),
et puis à une table en mémoire structure appelée memtable. Une écriture
réussi une fois qu'il est écrit dans le journal de validation et de la mémoire, donc il y
est très minime disk I/O au moment de l'écriture. Les écritures sont regroupées dans
mémoire et périodiquement écrit sur le disque à une persistance de la table
structure appelée un SSTable (triés chaîne de table).

Afin de comprendre les lignes ci-dessus, j'ai écrit un programme simple qui va écrire à Cassandra de Base de données à l'aide de Pelops client. Et j'ai pu insérer les données dans la base de données Cassandra.

Et maintenant je suis en train de voir comment mes données a été écrit en commit log et où que commit log file est? Et aussi comment SSTables est généré et où je peux trouver bien dans ma boîte locale et ce qu'il contient.

Je voulais voir ces deux fichiers afin que je puisse comprendre comment Cassandra fonctionne en arrière-plan.

Dans ma cassandra.fichier yaml, j'ai quelque chose comme ce

# directories where Cassandra should store data on disk.
data_file_directories:
    - S:\Apache Cassandra\apache-cassandra-1.2.3\storage\data

# commit log
commitlog_directory: S:\Apache Cassandra\apache-cassandra-1.2.3\storage\commitlog

# saved caches
saved_caches_directory: S:\Apache Cassandra\apache-cassandra-1.2.3\storage\savedcaches

Mais quand j'ai ouvert commitLog, tout d'abord, il a beaucoup de données, de sorte que mon notepad++ n'est pas en mesure de l'ouvrir correctement et si c'est ouvert, je ne vois pas correctement à cause de certains de codage ou quoi. Et dans mon dossier de données, je ne peux pas trouver quoi que ce soit?

Ce qui signifie que ce dossier est vide pour moi-

S:\Apache Cassandra\apache-cassandra-1.2.3\storage\data\my_keyspace\users

Est-ce que je suis en manque ici? Quelqu'un peut-il m'expliquer comment lire commitLog et SSTables fichiers et où je peux trouver ces deux fichiers? Et aussi exactement ce qui se passe derrière les scènes à chaque fois que je suis en train d'écrire à Cassandra de base de données.

Mise à jour:-

Code que j'utilise les insérer dans la Base de données Cassandra-

public class MyPelops {

    private static final Logger log = Logger.getLogger(MyPelops.class);

    public static void main(String[] args) throws Exception {


        //-------------------------------------------------------------
        //-- Nodes, Pool, Keyspace, Column Family ---------------------
        //-------------------------------------------------------------

        //A comma separated List of Nodes
        String NODES = "localhost";

        //Thrift Connection Pool
        String THRIFT_CONNECTION_POOL = "Test Cluster";

        //Keyspace
        String KEYSPACE = "my_keyspace";

        //Column Family
        String COLUMN_FAMILY = "users";

        //-------------------------------------------------------------
        //-- Cluster --------------------------------------------------
        //-------------------------------------------------------------

        Cluster cluster = new Cluster(NODES, 9160);

        Pelops.addPool(THRIFT_CONNECTION_POOL, cluster, KEYSPACE);

        //-------------------------------------------------------------
        //-- Mutator --------------------------------------------------
        //-------------------------------------------------------------

        Mutator mutator = Pelops.createMutator(THRIFT_CONNECTION_POOL);

        log.info("- Write Column -");

        mutator.writeColumn(
                COLUMN_FAMILY,
                "Row1",
                new Column().setName(" Name ".getBytes()).setValue(" Test One ".getBytes()).setTimestamp(new Date().getTime()));

        mutator.writeColumn(
                COLUMN_FAMILY,
                "Row1",
                new Column().setName(" Work ".getBytes()).setValue(" Engineer ".getBytes()).setTimestamp(new Date().getTime()));

        log.info("- Execute -");
        mutator.execute(ConsistencyLevel.ONE);

        //-------------------------------------------------------------
        //-- Selector -------------------------------------------------
        //-------------------------------------------------------------

        Selector selector = Pelops.createSelector(THRIFT_CONNECTION_POOL);

        int columnCount = selector.getColumnCount(COLUMN_FAMILY, "Row1",
                ConsistencyLevel.ONE);
        System.out.println("- Column Count = " + columnCount);

        List<Column> columnList = selector
                .getColumnsFromRow(COLUMN_FAMILY, "Row1",
                        Selector.newColumnsPredicateAll(true, 10),
                        ConsistencyLevel.ONE);
        System.out.println("- Size of Column List = " + columnList.size());

        for (Column column : columnList) {
            System.out.println("- Column: (" + new String(column.getName()) + ","
                    + new String(column.getValue()) + ")");
        }

        System.out.println("- All Done. Exit -");
        System.exit(0);
    }

}

Espace et de la Colonne de la famille que j'ai créé-

create keyspace my_keyspace with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = {replication_factor:1};
use my_keyspace;
create column family users with column_type = 'Standard' and comparator = 'UTF8Type';

source d'informationauteur arsenal