[
https://issues.apache.org/jira/browse/CASSANDRA-15871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17135346#comment-17135346
]
maxwellguo commented on CASSANDRA-15871:
----------------------------------------
Hi [~brandon.williams],when using a driver to do some operaions on cassandra ,
different users can get all the schemas information when first made a
connection after the Auth setp.
User A, may store all the keyspaces/tables information in the client side,
That's beacuse the client doing query like : "SELECT * FROM
System_schema.keyspaces" and get all keyspace from system_schema table。But some
keyspace or tables or type may not be created by UserA, It may be UserB;
for my test, I doing some logs at Message.java ->
channelRead0(ChannelHandlerContext ctx, Request request)
{code:java}
public void channelRead0(ChannelHandlerContext ctx, Request request)
{
final Response response;
final ServerConnection connection;
long queryStartNanoTime = System.nanoTime();
try
{
assert request.connection() instanceof ServerConnection;
connection = (ServerConnection)request.connection();
if
(connection.getVersion().isGreaterOrEqualTo(ProtocolVersion.V4))
ClientWarn.instance.captureWarnings();
QueryState qstate = connection.validateNewMessage(request.type,
connection.getVersion(), request.getStreamId());
logger.info("Received: {}, v={}", request,
connection.getVersion()); // here is my logging
response = request.execute(qstate, queryStartNanoTime);
logger.info("response : {}", response);// and here is the
response.
response.setStreamId(request.getStreamId());
response.setWarnings(ClientWarn.instance.getWarnings());
response.attach(connection);
connection.applyStateTransition(request.type, response.type);
}
{code}
for me userA create table : kscas.tbcas ;userB create table ksgc.tbgc
.
But when I using userA to make a connection through cqlsh : my output log shows
all tables are return to
client.
!1.jpg!
So I think if it ok that when doing connection through userA, we just return
back userA's schema information like table/keyspace/columns/types .
> Cassandra driver first connection get the user's own schema information
> ------------------------------------------------------------------------
>
> Key: CASSANDRA-15871
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15871
> Project: Cassandra
> Issue Type: Improvement
> Components: Cluster/Schema, Messaging/Client
> Reporter: maxwellguo
> Priority: Normal
> Attachments: 1.jpg
>
>
> We know that cassandra driver making a conenction with the coordinator node
> first time , the driver may select all the keyspaces/tables/columns/types
> from the server and cache the data locally.
> For different users they may have different tables and types ,so It is not
> suitable to get all the meta data cached , It is fine to just cache the
> user's own schema information not all.
> And doing this is safe and save first time connection resourse.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]