[ 
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: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to