Skip to content

Conversation

@frcroth
Copy link
Contributor

@frcroth frcroth commented Feb 13, 2025

Offsite 2025

New Features

  • The client is split into two parts Record Browser (this is mostly what existed before) and Record Explorer
  • Record Browser
    • Number of versions is shown in the table
    • The total number of keys is shown at the bottom of the table (this is asynchronously fetched)
    • Auto-complete collection names
    • Download button removed (moved to Record Explorer)
  • Record Explorer
    • all new tab for one record/key/wire in the db (naming not clear)
    • Show protobufs using protobuf decoder without schema
    • Show hexdumps when no protobuf
    • Switch versions
    • Delete and download versions
  • Added new prefix CLI argument to specify this without needing to use the interactive input
    • When specifying inputs in the CLI, the data is automatically retrieved (one had to refresh the data manually previously)

TODOS

  • Test on real data. Is it way to slow?
    • Only really high number of versions are a problem
  • Consistency on class and id names (underscore, kebap case)
  • Acquire focus when switching tab (DONE as far as possible)

Copy link
Member

@fm3 fm3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great stuff! I did a little bit of browsing around. Really looking forward to using these improvements!

Some of this won’t work for larger databases/entries. For example, I can’t scroll in the »Select version x« button list view. I think it would be nice to have a text field there to input the selected number instead. It is common that thousands of versions exist for a key.

Also I saw in the code that up to 1e6 keys are requested for the key list. I think that is too much, it will take a long time. Please list only, say, 5000 and then print that there may be more keys. If so, the user will have to refine their prefix.

I can give you access to a large fossilDB to test this. Talk to me about credentials.

@frcroth
Copy link
Contributor Author

frcroth commented Feb 17, 2025

Also I saw in the code that up to 1e6 keys are requested for the key list. I think that is too much, it will take a long time. Please list only, say, 5000 and then print that there may be more keys. If so, the user will have to refine their prefix.

Actually, the limit is for 1e6 requests but this can be tuned down of course when met with reality. However, the fetching should run asynchronously so not slow it down, but that is also not tested on real data.

@frcroth frcroth marked this pull request as ready for review February 26, 2025 10:53
@frcroth frcroth requested a review from fm3 February 26, 2025 10:53
@frcroth frcroth force-pushed the interactive-client-improvements branch from fce854c to 9541c4e Compare March 3, 2025 16:32
@fm3
Copy link
Member

fm3 commented Mar 4, 2025

These are some great improvements :) I think with the latest commits the perfrmance of the record explorer is acceptable. I’m wondering if we can further improve the Browser’s performance, though. In e.g. the skeleton collection, interacting with the list, e.g. pgdn, seems very slow.

I’d rather relinquish the number of versions column if that could improve the performance. Maybe you could go for some more experiments there?

@frcroth
Copy link
Contributor Author

frcroth commented Mar 5, 2025

Added the performance mode. I think the main problems are the many redraws because of the async updates. These are disabled with performance mode. The skeletons collection should now be usable.

@frcroth frcroth force-pushed the interactive-client-improvements branch from 6727d0b to 3f3fea8 Compare March 5, 2025 11:00
Copy link
Member

@fm3 fm3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely better! It still froze a bunch on very-many-version records but those are relatively rare and i’d consider it usable.

@frcroth frcroth merged commit dfed83d into master Mar 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants