[
https://issues.apache.org/jira/browse/CASSANDRA-7622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nate McCall updated CASSANDRA-7622:
-----------------------------------
Comment: was deleted
(was: Github user zznate commented on a diff in the pull request:
https://github.com/apache/cassandra/pull/205#discussion_r173964217
--- Diff: src/java/org/apache/cassandra/db/virtual/CompactionStats.java ---
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.db.virtual;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.cassandra.cql3.CQL3Type;
+import org.apache.cassandra.cql3.QueryOptions;
+import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
+import org.apache.cassandra.db.InMemoryVirtualTable;
+import org.apache.cassandra.db.compaction.CompactionManager;
+import org.apache.cassandra.schema.TableMetadata;
+import org.apache.cassandra.service.StorageService;
+
+public class CompactionStats extends InMemoryVirtualTable
+{
+
+ public static Map<String, CQL3Type> columns()
+ {
+ Map<String, CQL3Type> definitions = new HashMap<>();
+ definitions.put("host_id", CQL3Type.Native.UUID);
+ definitions.put("compaction_id", CQL3Type.Native.UUID);
+ definitions.put("task_type", CQL3Type.Native.TEXT);
+ definitions.put("keyspace_name", CQL3Type.Native.TEXT);
+ definitions.put("table_name", CQL3Type.Native.TEXT);
+ definitions.put("bytes_compacted", CQL3Type.Native.TEXT);
+ definitions.put("bytes_total", CQL3Type.Native.TEXT);
+ return definitions;
+ }
+
+ public static Key primaryKey()
+ {
+ return createKey()
+ .addKey("host_id")
+ .addClustering("compaction_id");
+ }
+
+ public CompactionStats(TableMetadata metadata)
+ {
+ super(metadata);
+ }
+
+ public void read(StatementRestrictions restrictions, QueryOptions
options, ResultBuilder result)
+ {
+ UUID hostId = StorageService.instance.getLocalHostUUID();
+ for (Map<String, String> c :
CompactionManager.instance.getCompactions())
+ {
+ result.row(hostId, UUID.fromString(c.get("compactionId")))
--- End diff --
My $0.02 is that if we are duping the same strings everywhere, we should do
some statics we don't have a whole nudist colony of naked literals.
)
> Implement virtual tables
> ------------------------
>
> Key: CASSANDRA-7622
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7622
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Tupshin Harper
> Assignee: Chris Lohfink
> Priority: Major
> Fix For: 4.x
>
>
> There are a variety of reasons to want virtual tables, which would be any
> table that would be backed by an API, rather than data explicitly managed and
> stored as sstables.
> One possible use case would be to expose JMX data through CQL as a
> resurrection of CASSANDRA-3527.
> Another is a more general framework to implement the ability to expose yaml
> configuration information. So it would be an alternate approach to
> CASSANDRA-7370.
> A possible implementation would be in terms of CASSANDRA-7443, but I am not
> presupposing.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]