ファイルバージョンの制限

SharePointでバージョンについての解説をします。
SharePointのバージョンには、マイナーバージョンとメジャーバージョンがあります。

メジャーバージョンの最大値は4194303(多分)で、マイナーバージョンは0から511迄です。
今回はその理由を解説します。(マイナーバージョンの制限て知らない人多いのよねー)

実装を調べるとバージョンの制限の理由が見えてきます。
SharePointのデータはほぼすべてSQL Serverに保存されます。
バージョン1のみ存在するファイルは下記の様に、データベースで管理されています。

WS000471
WS000473

上記のメジャーバージョン1のファイルに、マイナーバージョンを追加すると下記の様に成ります。マイナーバージョンの最大値511までバージョンを追加した結果が下記です。

WS000477
WS000474

因みに、バージョンを表示するUIVersionString列は、UIVersion列を計算して作成される計算列です。
計算式は下記の通り。

WS000478

この計算値を確認すれば一目瞭然なのです。

メジャーバージョンはUIVersion列を512で割った値に成ります。
その為、マイナーバージョンが511に達すると次のメジャーバージョンを発行するまでこれ以上のマイナーバージョンを発行する事が出来ません。

メジャーバージョンの制限もSQL ServerのInt型に依存して、最大値の「2,147,483,647」を512で割った値がメジャーバージョンの最大値となります。その為、論理的に「4194303」を超えるメジャーバージョンを発行する事が出来ません。
しかし、これだけのメジャーバージョンを発行するのは大変なので試していないので多分!と言う事です。
(万単位程度なら十分運用可能ですが、バージョン履歴を確認する時、急激にレスポンスが悪くなる可能性が有るので古いバージョンは削除しておく事が吉だと思います。)

 

因みに、マイナーバージョンが511の時、更にチェックアウトをしようとすると下記のメッセージが表示されてチェックアウトは出来ません。(2007でも同様にチェックアウト出来ませんが、メッセージは解りにくいので注意が必要!)

WS000476