Alternatives to 32 bit Firework IDs

Dear all,

I have a question concerning Firework IDs.

From looking at MongoDB it seems that the IDs that are used to store the FW are 32 bit integers. This means that we are limited to a bit more than 2 billion FWs.
I admit that this is a lot, but if you are a heavier user and never reset the data base you might at some point hit this limit.

Is there any way to circumvent this problem? For instance, would it be possible to use the 24 character Mongo ID, which is always unique?

Many thanks for your help!

Hi Stephan,

There are a couple of reasons we chose the integer IDs:

  • They are easier to type, as a lot of practical work for FWs is to do things like “lpad get_wfs -i 3534” and this can be easier than copy-pasting Mongo IDs. I think this is the main reason.
  • It can be easier to copy a FireWorks document - for example, if you copy a document and then insert it into a new database, all the relevant information is preserved. It becomes trickier if you are trying to preserve Mongo IDs unless you use dump/restore tools.

There are good reasons to use Mongo IDs as well - in addition to what you pointed out, there would be much less likelihood of a conflict if you try to merge two FWS databases. This would probably be one of the more useful cases for switching.

All that stated, my sense is that you will probably run into other performance issues before hitting your 2 billion limit for FW ids. And if you are using FWS that heavily, it might be worth just starting a second database. So unfortunately, I don’t think it is on the current roadmap to change the ID type as I think this will be a major undertaking, particularly if we try to keep backward compatibility with existing FWS databases.