Patent ID: 8566296

Claim:
A method for performing shared updates, comprising: receiving user-provided logic for determining whether updates to a particular column are valid in the presence of concurrent updates to data items in the particular column; storing the user-provided logic at a location accessible to a business transaction framework; wherein the user-provided logic is distinct and separate from the business transaction framework; receiving a request, associated with a particular business transaction, to perform an update to a particular copy of a data item in a particular row in the particular column; wherein the particular copy of the data item has a value that has been updated by updates, made by one or more business transactions other than the particular business transaction, that have not yet been confirmed, and updates, made by the particular business transaction, previous to receiving the request, that have not yet been confirmed; and in response to the request, the business transaction framework performing the steps of: (a) determining, for the particular copy of the data item, a particular value, wherein the particular value is a current value of the particular copy of the data item; (b) causing the user-provided logic to generate an indication of whether the update should be allowed, in the presence of concurrent updates to the particular copy of the data item, by: invoking the user-provided logic, and passing, to the user-provided logic, said particular value to enable the user-provided logic to determine whether the update should be allowed based, at least in part, on the particular value, and one or more constraints on the value of the data item; (c) determining whether to allow the update based, at least in part, on the indication; wherein the step of receiving user-provided logic includes receiving at least one of: an implementation of a method of a customized data classification type; or a definition of an operational constraint that includes logic for enforcing cross-column dependencies; wherein the method is performed by at least one device comprising a processor.