 Hello everybody and welcome to our presentation. My name is Oleg Zharkov and today we will bring you a short update on the work that has been done and our vision of the future. We will talk about overhaul and pagination in data libraries. I assume that most of you are familiar with the older implementation of data libraries that served us quite well for a long period of time. We didn't have many problems with it, just until recently we faced an issue when we load a big number of datasets. Assume that you don't only have 45 of them, but hundreds, thousands or even hundreds of thousands of datasets. As well as many other areas of our everyday life, Galaxy also got affected by the pandemic. Zharkov tool research brought us a huge amount of data. We are talking about really big number of datasets which we have to store within a single folder. It's clear that it might get a while until we load the entire thing and it's getting expensive and we cannot afford to wait such a long time anymore. It was obvious that pagination was desperately needed. At first we implemented on the back end. So we made it possible to say, okay, I want just 15 datasets starting from this offset and please apply the search text on my result. It is also clear that we have to paginate the search result as well because this might get really, really big. Same applies for the deleted datasets that might produce a huge list as well. While it was a straightforward process on the back end, due to a long-going history on Galaxy Frontend, the UI implementation was slightly trickier. Just to bring you a little clarity, let me show how it all started. Right after we abandoned service-side rendering, Galaxy community decided to render stuff on the client side. So at first we implemented libraries using the backbone, which we used till 2015. However, as popularity drops, fewer features get implemented and the backbone becomes just legacy burden. So we decided to reimplement most of the stuff using modern libraries like Vue.js and Bootstrap and complement the new implementation with pagination. This is how it was before and this is how it's right now. So let's actually run it. Let's see the difference and check the performance. Okay, let us conduct a short experiment. On the top part, you see a legacy implementation that doesn't rely on pagination. So let us open the folder that contains around 700 datasets and let's do the same on the bottom part. We clearly can see that the pagination is way more beneficial than the getting the whole folder within one request. However, let's proceed to the real-world example, which you already can find on the Galaxy VPN server. So you can go to libraries, you can open COVID sequences and none of our folder, which loads quite fast considering that it has 5,000 datasets. We can go even harder. Let's open sequences back and go into Lumina folder. After a short time, we clearly can see that it's able to open even 155,000 of datasets, which won't be possible with our legacy implementation. Furthermore, we didn't just stop on library foldering. We went further and we find many other library components, like libraries list, every sort of permission which we can find inside the library. Additionally, we brought a view router inside the codebase. This is just a small example of libraries list, how it was before and how it is right now. This is another example of permissions in Backbone and in View. I really hope that you like the new one more. I wanted to say that it was a long process, which was going for a few months, where we had to rewrite a lot of library components, PR by PR. Obviously, the biggest one was the pagination inside the data library. I also wanted to say that no implementation is perfect and it's clear that you might encounter some bugs. So, if you do, please do not hesitate to open the issues page on Galaxy and we'll try to address them as fast as possible. Let's briefly talk about the future plans. First of all, would you like to finish the verification? There are still some backbones models which has to be verified and a dataset view. We also want to implement delete all with the pagination. We want to finish the collection support where we already have working process PR. We want to implement search not only for the name and description, but also for the dataset properties. A few users asked us to implement the regular search. And finally, we would really like to implement a bridge between FTP server and a data library. Thanks a lot for your attention and I am ready to answer your questions.