Yes, sorry I did not make it clear, I also agree it is not the right direction to invest a lot of community effort. I am more talking about casual use cases like importing a server for unit tests outside Iceberg, running some local debugging, etc. I think it would be valuable to provide a server in Iceberg for that purpose, and maybe vend it as test utils. Thoughts?
-Jack On Thu, Jan 25, 2024 at 11:35 AM Ryan Blue <b...@tabular.io> wrote: > > I know we have the RESTCatalogAdapter and RESTCatalogSevlet for unit > tests, and technically we have a very similar Jetty server implementation > in TestRESTCatalog. Should we think about making those components out of > the tests into an iceberg-rest-server module for this use case, and merge > with the implementation that Gravitino has? > > I think that this would take the Iceberg project in the wrong direction. > Iceberg has always been a library and I think it should continue to be. > Concerns about runtime should be left to other projects that need to fit > into existing infrastructure or skillsets of people maintaining them. The > question of whether to use Jetty or Tomcat or whatever else is a serious > consideration, as is how to monitor that application and send metrics. I > think it would slow down the core purpose of Iceberg if we got distracted > by these things. > > In fact, I think that this project shows that the library is getting the > balance right: it is using `CatalogHandlers` for their intended purpose. It > has opinions about how to run the actual HTTP service and people that agree > can use it. Other people could use `CatalogHandlers` to build on a > different foundation. > > On Thu, Jan 25, 2024 at 11:13 AM Jack Ye <yezhao...@gmail.com> wrote: > >> Really cool project! >> >> I browsed a bit of the codebase, and see this implementation of the REST >> service backend: >> - >> https://github.com/datastrato/gravitino/blob/main/catalogs/catalog-lakehouse-iceberg/src/main/java/com/datastrato/gravitino/catalog/lakehouse/iceberg/IcebergRESTService.java#L39 >> - >> https://github.com/datastrato/gravitino/blob/main/catalogs/catalog-lakehouse-iceberg/src/main/java/com/datastrato/gravitino/catalog/lakehouse/iceberg/ops/IcebergTableOps.java#L42-L51 >> >> Looks like it is initializing a Jetty server that uses CatalogHandlers >> to delegate the execution to a specific Java Catalog implementation. >> >> I think this is actually something that is lacking today in Iceberg, >> which is an easy way for users to start an actual REST HTTP server. >> >> I know we have the RESTCatalogAdapter and RESTCatalogSevlet for unit >> tests, and technically we have a very similar Jetty server implementation >> in TestRESTCatalog. Should we think about making those components out of >> the tests into an iceberg-rest-server module for this use case, and merge >> with the implementation that Gravitino has? >> >> Best, >> Jack Ye >> >> On Thu, Jan 25, 2024 at 10:47 AM Yufei Gu <flyrain...@gmail.com> wrote: >> >>> Thanks Justin for the sharing. >>> >>> It's pretty cool to see an open source REST catalog implementation in >>> action. Having dabbled a bit in the early development of Gravitino myself, >>> I'm really excited about its potential with the Iceberg REST catalog. >>> >>> The idea of Gravitino moving to an ASF project is promising. It’ll >>> surely boost its visibility and open up more doors for collaboration and >>> adoption. >>> >>> Looking forward to where this goes. Keep up the fantastic work! >>> >>> Yufei >>> >>> >>> On Thu, Jan 25, 2024 at 5:55 AM Jean-Baptiste Onofré <j...@nanthrax.net> >>> wrote: >>> >>>> Hi Justin, >>>> >>>> I talked with Junping a couple of months ago about Gravitino. Thanks >>>> for sharing ! >>>> >>>> Regards >>>> JB >>>> >>>> On Thu, Jan 25, 2024 at 12:15 AM Justin Mclean < >>>> jus...@classsoftware.com> wrote: >>>> > >>>> > Hi, >>>> > >>>> > We open-sourced a new project, Gravitino, in December and have been >>>> working on growing the community and adding new functionality. We plan to >>>> donate the project to the ASF this year. Gravitino is a unified metadata >>>> lake solution offering a unified approach to managing datasets from diverse >>>> sources and regions across multiple cloud platforms. Its core is an Iceberg >>>> REST catalog service implementation to manage Iceberg tables efficiently. >>>> > >>>> > If this sounds like something you would be interested in, then the >>>> following resources will help: >>>> > - Blog post: >>>> https://datastrato.ai/blog/gravitino-iceberg-rest-catalog-service/ >>>> > - Gravitino documentation: https://datastrato.ai/docs/0.3.1/ >>>> > - Iceberg REST service documentation: >>>> https://datastrato.ai/docs/0.3.1/iceberg-rest-service >>>> > >>>> > We welcome any feedback and suggestions you have, and as always, all >>>> contributions are welcome. You can find the source code at >>>> https://github.com/datastrato/gravitino. >>>> > >>>> > Kind Regards, >>>> > Justin >>>> >>> > > -- > Ryan Blue > Tabular >