Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 3be7de3

Browse files
committedApr 14, 2017
Encapsulate Cassandra lineage_graph_version_edge
Move lineage_graph_version_edge into lineage_graph_version (with set lineage_edge_version_id_set)
1 parent f936196 commit 3be7de3

File tree

4 files changed

+15
-29
lines changed

4 files changed

+15
-29
lines changed
 

‎scripts/cassandra/cassandra.cql

+2-6
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,10 @@ create table lineage_graph (
147147

148148
create table lineage_graph_version (
149149
id bigint PRIMARY KEY,
150-
lineage_graph_id bigint
150+
lineage_graph_id bigint,
151+
lineage_edge_version_id_set set<bigint>
151152
);
152153

153-
create table lineage_graph_version_edge (
154-
lineage_graph_version_id bigint,
155-
lineage_edge_version_id bigint,
156-
PRIMARY KEY (lineage_graph_version_id, lineage_edge_version_id)
157-
);
158154

159155
/* CREATE EMPTY VERSION */
160156

‎scripts/cassandra/drop_cassandra.cql

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
* limitations under the License.
1313
*/
1414

15-
drop table lineage_graph_version_edge;
1615
drop table lineage_graph_version;
1716
drop table lineage_graph;
1817
drop table lineage_edge_version;

‎scripts/cassandra/truncate.cql

-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
* limitations under the License.
1313
*/
1414

15-
truncate lineage_graph_version_edge;
1615
truncate lineage_graph_version;
1716
truncate lineage_graph;
1817
truncate lineage_edge_version;
@@ -27,7 +26,6 @@ truncate edge;
2726
truncate rich_version_tag;
2827
truncate rich_version_external_parameter;
2928
truncate rich_version;
30-
truncate structure_version_attribute;
3129
truncate structure_version;
3230
truncate structure;
3331
truncate version_history_dag;

‎src/main/java/edu/berkeley/ground/dao/usage/cassandra/CassandraLineageGraphVersionFactory.java

+13-20
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@
2929
import edu.berkeley.ground.model.usage.LineageGraphVersion;
3030
import edu.berkeley.ground.model.versions.GroundType;
3131
import edu.berkeley.ground.util.IdGenerator;
32+
import org.slf4j.Logger;
33+
import org.slf4j.LoggerFactory;
3234

3335
import java.util.ArrayList;
36+
import java.util.HashSet;
3437
import java.util.List;
3538
import java.util.Map;
36-
37-
import org.slf4j.Logger;
38-
import org.slf4j.LoggerFactory;
39+
import java.util.Set;
40+
import java.util.stream.Collectors;
3941

4042
public class CassandraLineageGraphVersionFactory
4143
extends CassandraRichVersionFactory<LineageGraphVersion>
@@ -104,13 +106,12 @@ public LineageGraphVersion create(Map<String, Tag> tags,
104106
this.dbClient.insert("lineage_graph_version", insertions);
105107

106108
for (long lineageEdgeVersionId : lineageEdgeVersionIds) {
107-
List<DbDataContainer> lineageEdgeInsertion = new ArrayList<>();
108-
lineageEdgeInsertion.add(new DbDataContainer("lineage_graph_version_id", GroundType.LONG,
109-
id));
110-
lineageEdgeInsertion.add(new DbDataContainer("lineage_edge_version_id", GroundType.LONG,
111-
lineageEdgeVersionId));
109+
List<DbDataContainer> predicates = new ArrayList<>();
110+
predicates.add(new DbDataContainer("id", GroundType.LONG, id));
111+
Set<Long> edgeValue = new HashSet<>();
112+
edgeValue.add(lineageEdgeVersionId);
112113

113-
this.dbClient.insert("lineage_graph_version_edge", lineageEdgeInsertion);
114+
this.dbClient.addToSet("lineage_graph_version", "lineage_edge_version_id_set", edgeValue, predicates);
114115
}
115116

116117
this.lineageGraphFactory.update(lineageGraphId, id, parentIds);
@@ -137,8 +138,8 @@ public LineageGraphVersion retrieveFromDatabase(long id) throws GroundException
137138
List<DbDataContainer> predicates = new ArrayList<>();
138139
predicates.add(new DbDataContainer("id", GroundType.LONG, id));
139140

140-
List<DbDataContainer> lineageEdgePredicate = new ArrayList<>();
141-
lineageEdgePredicate.add(new DbDataContainer("lineage_graph_version_id", GroundType.LONG,
141+
List<DbDataContainer> lineageGraphVersionPredicates = new ArrayList<>();
142+
lineageGraphVersionPredicates.add(new DbDataContainer("id", GroundType.LONG,
142143
id));
143144

144145
CassandraResults resultSet = this.dbClient.equalitySelect("lineage_graph_version",
@@ -148,15 +149,7 @@ public LineageGraphVersion retrieveFromDatabase(long id) throws GroundException
148149

149150
long lineageGraphId = resultSet.getLong("lineage_graph_id");
150151

151-
List<Long> lineageEdgeVersionIds = new ArrayList<>();
152-
CassandraResults lineageEdgeSet = this.dbClient.equalitySelect("lineage_graph_version_edge",
153-
DbClient.SELECT_STAR, lineageEdgePredicate);
154-
155-
if (!lineageEdgeSet.isEmpty()) {
156-
do {
157-
lineageEdgeVersionIds.add(lineageEdgeSet.getLong("lineage_edge_version_id"));
158-
} while (lineageEdgeSet.next());
159-
}
152+
List<Long> lineageEdgeVersionIds = resultSet.getSet("lineage_edge_version_id_set", Long.class).stream().collect(Collectors.toList());
160153

161154
LOGGER.info("Retrieved lineage_graph version " + id + " in lineage_graph " + lineageGraphId
162155
+ ".");

0 commit comments

Comments
 (0)