私たちは、HiLoを使ってエンティティのIDを生成するASP.NETデータベースアプリケーションを実行しています。このアプリケーションの上に、同じデータベースを使用する複数のWebサイトがあります。私たちが見ているのは、IDがなくなり、ID列が負数になるということです。NHibernateから抜けてHiLo-idsが負数になる
これは発電機と関係があると思われます。複数のWebサイトが同じコードベースとデータベースの上を走るようになると、おそらくHiLoアルゴリズムは、bigint-rangeの外にあるIDの生成をすぐに開始します(もちろん相対的なものです)。
ジェネレータを、Id-シーケンス内のギャップ(かなりの数があります)を使用するように設定することは可能ですか?
それは解決策ですか?それとも、何か別のことをやっているのでしょうか?
私たちは現在の設定がHiLoの動作と互換性がなく、Int64でもidsが不足すると予想しているので、Int64ファーストとGUID.combに切り替えることにしました。ばかげたデータがあるわけではありませんが、アプリケーションを再起動する必要があり、複数のアプリケーションプールがあるため、IDが急速に増加します。 – Pieter