Jump to content

Custom Attribute Links: How well will they 'scale'?


Mark Stewart

Recommended Posts

Hi,


We're a full CG studio with episodic work, and we currently use TypedContextLinks a lot, to link AssetsBuilds to Shots and Episodes which allows dynamic scene creation from ftrack info.

Last week we started playing around with Custom Attribute Links and really like how searchable they are for the end user.  I like it enough that, as I'm about to do a refactor on some core tools for an unrelated issue, I'm considering either linking to (or replacing outright) the TypedContextLink workflow we currently use.  My worry is that I'm unsure how well it'll handle assets that end up with hundreds of links to shots over a production run. 

I'm curious if the speed will be similar to TypedContextLinks, as they seem somewhat related in how they work from the little that I've played with them.

Do I have any real reason for concern over performance, or should I just go for it?

Thanks!

Mark 

Link to comment
Share on other sites

Hi Mark,

Thanks for posting this and apologies for the delayed response here. While we've build CustomAttributeLinks to scale with large datasets there is one limitation to be aware of, and that is that there is currently a limit of 50 entities per link, so if you create a link from shot to asset build, you can only link a single shot to 50 asset builds. The limit only applies for a single shot, so you can still link 50+ shots to different asset builds individually. I'm not sure if that is a deal-breaker for your scenario, as you mention an asset could have potentially hundred of links over the course of a production run.

Outside of that though, creating these links shouldn't have any noticeable impact on performance and we've build them with the intent to scale up with larger datasets (though it would be great to hear if you've noticed otherwise). We're still in the early stages of this feature-set so it would be great to hear how you intend to use this and if there are further improvements we can make here, as we're continuing to iterate on the functionality.

If you have any further questions don't hesitate to give us a shout. 

Cheers,
Andrew

Link to comment
Share on other sites

  • 5 months later...

Hello Andrew !

 

I have found the examples related to Custom Attribute Links :

https://ftrack-python-api.readthedocs.io/en/latest/example/custom_attribute_link.html
https://ftrack-python-api.readthedocs.io/en/latest/example/manage_custom_attribute_configuration.html#links
 

But I don't find its reference documentation, could you please point me to it ?

(I guess it's where limitations are described, as the "50 entitites per link" you talked about)

      

Thanks !

Link to comment
Share on other sites

Hi @altarak

Thanks for the update there, you bring up a good point that we don't explicitly call out in our docs the limit of 50 entities per link. We'll take note to make this clearer in our docs.

I should note that as custom attribute links is a relatively new feature, we're continuing to iterate on this and looking into the implications of removing this limit. It's definitely something we want to work towards and are currently investigating a way to ensure it is performant with a larger number of links.

Please give me a shout if you have any further questions on this.

Cheers,
Andrew

 

 

Link to comment
Share on other sites

Hi,

 

I would like to check if I correctly understood the limit of 50 entities per link.


I created a custom object, called CameraCustomObj.
 

Then, in the Tasks list, let's pretend I created Cam01, Cam02, ..., ... Cam55.   Their type is CameraCustomObj.


I then created a Custom Attribute Link, as seen on the screenshot below (Shot linked to the CameraCustomObj entity).
As it's a "Single-Selection" link, a shot cannot have more than one CameraCustomObj at once.
Here are 2 ways of thinking about it :


-A :  the "50" limit does not have any effect here (it would only apply if the link was "Multi-Selection").
-B :  even with "Single-Selection", if 55 entities were created (Cam01 to Cam55), this "choice among 55 entities" hits the 50 limit, and will cause problems.

 

Is A or B true ?
 

Cheers,

Alain

CreateCustomAttributeLink.jpg

Link to comment
Share on other sites

Hi @altarak

In this instance A would be correct. For a single select attribute the limitation has no affect at all. For a multi-select attribute it has an affect and limits to 50 selected entities. 

The above statement covers everything that this limit does.It does not:

* Limit how many entities you can select from (Cam1 - Cam55 can be selected from)
* It does not limit how many times Cam1 can be used by Shots. I.e. you can have 1,000,000 shots all using Cam1. (Unfortunately the Sidebar info tab on Cam1 will not handle this very well as it will try to display that it has been used by 1,000,000 shots – a known limitation)

I realise the concept here could be far better documented on our end to understand the ins and outs here. We'll definitely take note to try and make this a bit clearer both in docs and in-app.

If you have any further questions don't hesitate to give us a shout. 

Cheers,
Andrew

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...