PragmaTwice commented on PR #1489:
URL: 
https://github.com/apache/incubator-kvrocks/pull/1489#issuecomment-1588487790

   > > seems the ring buffer is shared between all connections, so just be 
curious that, will the functionality of SCAN get break if we have lots of 
client connections simultaneously? And could we make it duplicate per 
connections or able to adjust the buffer size dynamically?
   > 
   > @PragmaTwice It cannot be per connection since we need to allow using the 
cursor in different connections. That's to say, the connection A got the cursor 
should can be visible to connection B from the client side.
   
   Is this property used by some client libraries?
   
   Actually I cannot find how and when these cursors become **invalid** (e.g. 
Will different connections lead to invalid cursor? Will adding and deleting 
elements lead to invalid cursor?) in the official document, which seems they 
just do not give any guarentee about this. It is sad.
   
   But I find such a statement.
   > Multiple parallel iterations
   > It is possible for an infinite number of clients to iterate the same 
collection at the same time, as the full state of the iterator is in the 
cursor, that is obtained and returned to the client at every call. No server 
side state is taken at all.
   
   It may make the implementation of redis cursor more harder, if we need to 
follow it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to