Commit Graph

54 Commits

Author SHA1 Message Date
Pekka Enberg
86355a54a5 db: Remove column_family stub
There's a proper column_family in database.hh now. Remove a stub that
was introduced during the initial conversion.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-02-23 14:31:36 +02:00
Tomasz Grabiec
d5a7f37c45 db: Merge api.hh into database.hh 2015-02-09 10:28:44 +01:00
Tomasz Grabiec
e20cc1c1f9 db: Avoid storing schema pointer with each partition 2015-02-09 10:28:44 +01:00
Tomasz Grabiec
48c11a01db db: Add ability to apply mutations into the database
For simplicity partition data is stored using the same object which is
used for mutations: mutation_partition. Later we can introduce a more
efficient version.
2015-02-09 10:28:44 +01:00
Tomasz Grabiec
800ba79efa db: Drop api:: namespace from mutation model classes
In preparation for merging into database.hh
2015-02-09 10:28:44 +01:00
Tomasz Grabiec
19e89a6057 db: Introduce mutation_partition::apply(const mutation_partition&)
It merges two partition mutations together. It is assumed that the first
one (invocation target) is much larger.
2015-02-09 10:28:44 +01:00
Tomasz Grabiec
3645e983c0 db: Refactor atomic_cell structure
The new structure has common timestamp field extracted, it has the
same meaning for both live and dead cells. It will make it easier to
merge cells this way.
2015-02-09 10:28:44 +01:00
Tomasz Grabiec
1212ad18d0 db: Make setting static vs. clustered cell explicit 2015-02-09 10:28:44 +01:00
Tomasz Grabiec
df8f7279b3 db: Simplify row tombstone management 2015-02-09 10:28:44 +01:00
Tomasz Grabiec
1610a58293 types: Relax include 2015-02-04 10:28:47 +01:00
Tomasz Grabiec
d4b6f7abc3 cql3: Convert more of ConsistencyLevel 2015-01-29 19:40:07 +01:00
Tomasz Grabiec
15bc1a8af3 db: Introduce mutation model
This model is meant to follow CQL more closely than the model in
Origin. We have direct representations for CQL rows and cells.

We avoid using thrift concepts here. Here's how some of the Origin's
classes map to this:

 Mutation -> mutation
 ColumnFamily -> partition
 CellName -> clustering_key/clustering_prefix and column_id
 Cell -> atomic_cell (not for collection types though)

Note about CounterMutation. CounterMutation is for modifying counter
tables. A counter table can only have one column, the counter
value. In Origin CounterMutation is a subclass of IMutation which
represents mutations on counter tables. The only field it adds is
consistency level. I think we don't need to have a separate class for
this, at least in the generic code, which simplifies things. We can
check whether the table is a counter table from the schema and we can
pass the consistency level from QueryOptions during serialization.
2015-01-29 18:55:24 +01:00
Tomasz Grabiec
612f68b869 db: Convert ConsistencyLevel to C++ 2015-01-23 18:45:28 +01:00
Tomasz Grabiec
4b9dd3e978 db: Import ConsistencyLevel 2015-01-23 18:45:27 +01:00
Pekka Enberg
e4a8d7cf71 cql3: Convert ModificationStatement to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-20 11:48:26 +02:00
Asias He
bf78e14d17 db: Switch to seastar shared_ptr from std::shared_ptr 2015-01-15 09:05:48 +08:00
Asias He
8d737985b0 db: Convert db/composites/AbstractCType.java to C++ 2015-01-15 09:05:48 +08:00
Asias He
3984f25b38 db: Make db::composites::c_type public 2015-01-15 09:05:48 +08:00
Asias He
79832823ed db: Add missing virtual destructor for i_mutation 2015-01-14 14:51:05 +02:00
Asias He
3af55230e1 db: Switch to use real UUID in db/i_mutation.hh 2015-01-14 14:51:04 +02:00
Pekka Enberg
275caedd8c db: convert ListType to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-09 13:00:16 +02:00
Pekka Enberg
ec22f9123e db: Import db/marshal/ListType.java
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-09 13:00:13 +02:00
Pekka Enberg
2bf11ddac5 db: convert CollectionType to C++
Minimal conversion to have the type available.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-09 12:26:57 +02:00
Pekka Enberg
c245518948 db: Import db/marshal/CollectionType.java
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-09 11:17:53 +02:00
Pekka Enberg
ca1c54ac7c db: convert ReversedType to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-07 16:23:48 +02:00
Pekka Enberg
4984184603 db: import db/marshal/ReversedType.java
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-07 16:23:33 +02:00
Pekka Enberg
90abbbaef1 db: Fix include in cell_name.hh
Fix the following build error:

  In file included from ./db/cell.hh:29:0,
                   from ./db/expiring_cell.hh:26,
                   from cql3/attributes.hh:31,
                   from cql3/cql3.cc:33:
  ./db/composites/cell_name.hh: At global scope:
  ./db/composites/cell_name.hh:51:36: error: expected class-name before ‘{’ token
   class cell_name : public composite {
                                    ^
  ninja: build stopped: subcommand failed.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-01-07 16:23:33 +02:00
Asias He
6bb4681bfc db: Convert db/RowPosition.java to C++ 2015-01-07 20:44:54 +08:00
Asias He
53c492d3ca db: Import db/RowPosition.java 2015-01-07 20:44:54 +08:00
Asias He
306fef6027 db: Convert db/IMutation.java to C++ 2015-01-07 20:44:54 +08:00
Asias He
3d2592f7d4 db: Add db/IMutation.java 2015-01-07 20:32:49 +08:00
Asias He
04b8a6bf7d db: Convert db/CounterCell.java to C++ 2015-01-06 17:55:53 +08:00
Asias He
3d418e55ad db: Import db/CounterCell.java 2015-01-06 17:49:10 +08:00
Asias He
969f942613 db: Convert db/ExpiringCell.java to C++ 2015-01-06 17:46:40 +08:00
Asias He
4513e28e1b db: Import db/ExpiringCell.java 2015-01-06 17:42:15 +08:00
Asias He
49e7d79630 db: Convert db/DeletedCell.java to C++ 2015-01-06 17:40:49 +08:00
Asias He
50bdc5438f db: Import db/DeletedCell.java 2015-01-06 17:35:55 +08:00
Asias He
f4b40d3516 db: Convert db/CounterUpdateCell.java to C++ 2015-01-06 17:33:51 +08:00
Asias He
4ad91ece93 db: Import db/CounterUpdateCell.java 2015-01-06 17:23:46 +08:00
Asias He
5449d44f38 db: Convert db/Cell.java to C++ 2015-01-06 17:23:46 +08:00
Asias He
d11a39524f db: Import db/Cell.java 2015-01-06 17:23:46 +08:00
Avi Kivity
1fe6bf687d db: de-pimpl data_type
Since origin tends to cast around, we should allow that too, by exposing
the implementation type and using a shared_ptr instead of a value class.
2015-01-05 15:55:30 +02:00
Asias He
ec0a5670dd db: Convert db/composites/CellNameType.java to C++ 2015-01-05 14:28:26 +08:00
Asias He
ce9ef19f64 db: Convert db/composites/CType.java to C++ 2015-01-05 14:27:19 +08:00
Asias He
dd805f8add db: Convert db/DeletionInfo.java and db/RangeTombstone.java to C++
Stub only.
2015-01-05 14:13:31 +08:00
Asias He
c9882d7d96 db: Import db/RangeTombstone.java 2015-01-05 14:13:31 +08:00
Asias He
9769752779 db: Import db/DeletionInfo.java 2015-01-05 14:13:31 +08:00
Asias He
888a2436cb db: Convert db/OnDiskAtom.java to C++
Stub only.
2015-01-05 14:13:31 +08:00
Asias He
c059c56790 db: Import db/OnDiskAtom.java 2015-01-05 14:13:31 +08:00
Asias He
3fbb10b9ea db: Add stub db.cc file 2015-01-04 10:46:25 +02:00