1. An image pickup apparatus that performs exposure to acquire an image signal, the image pickup apparatus comprising:
a pixel section in which plural pixels which generate signal charges corresponding to an exposure amount are arrayed two-dimensionally;
an exposure amount control section that determines an exposure amount of the pixel section,
a memory section that can store a pixel signal from the pixel section for plural frames of an output image,
a pixel readout control section that reads out the pixel signal of the pixel section and stores the pixel signal in the memory section, and
a memory readout control section that reads out the pixel signal stored in the memory section, wherein
the exposure amount control section performs control to continuously expose the pixel section to light plural times, and
the pixel readout control section sequentially reads out respective pixel signals related to the continuous plural times of exposures and stores the pixel signals in the memory section.
2. The image pickup apparatus according to claim 1, wherein
the plural times of exposures controlled by the exposure amount control section are exposures in exposure times different from one another, and
the memory readout control section sequentially outputs the respective pixel signals related to the continuous plural times of exposures stored in the memory section to an outside in each of the plural times of exposures.
3. The image pickup apparatus according to claim 1, wherein the memory readout control section performs an averaging operation for respective images related to the continuous plural times of exposures stored in the memory section or, when the pixel readout control section reads out the pixel signal of the pixel section and stores the pixel signal in the memory section, simultaneously and successively performs the averaging operation for the respective images related to the plural times of exposures to obtain an averaging operation result and outputs the averaging operation result to an outside.
4. The image pickup apparatus according to claim 3, wherein the memory readout control section further writes the averaging operation result in the memory section again and thereafter reads out the averaging operation result from the memory section and amplifies the averaging operation result to thereby generate an image equivalent to an addition operation result of the images related to the plural times of exposures and output the image to the outside.
5. The image pickup apparatus according to claim 1, wherein
the plural times of exposures controlled by the exposure amount control section are exposures in exposure times different from one another, and
the memory readout control section performs dynamic range combination for the respective pixel signals related to the continuous plural times of exposures stored in the memory section or, when the pixel readout control section reads out the pixel signal of the pixel section and stores the pixel signal in the memory section, simultaneously and successively performs the dynamic range combination for the respective pixel signals related to the plural times of exposures to obtain a dynamic range combination result and outputs an image having a number of frames smaller than a number of times of exposures controlled by the exposure amount control section to an outside.
6. The image pickup apparatus according to claim 5, wherein the memory readout control section subjects the respective pixel signals related to the continuous plural times of exposures to an addition operation to thereby perform the dynamic range combination.
7. The image pickup apparatus according to claim 5, wherein
the plural times of exposures controlled by the exposure amount control section include a long exposure time and a short exposure time, and
the memory readout control section compares a pixel signal related to the long exposure time with a predetermined determination threshold level and, when the pixel signal is smaller than the determination threshold level, outputs the pixel signal to the outside or, when the pixel signal is equal to or larger than the determination threshold level, outputs a result obtained by adding the determination threshold level or a specific addition level related to a ratio of the long exposure and the short exposure to the pixel signal to the outside to thereby output an image subjected to the dynamic range combination to the outside.
8. The image pickup apparatus according to claim 1, wherein
the memory readout control section carries out in parallel an averaging operation and an addition operation for respective images related to the continuous plural times of exposures stored in the memory section or, when the pixel readout control section reads out the pixel signal of the pixel section and stores the pixel signal in the memory section, simultaneously and successively carries out in parallel the averaging operation and the addition operation for the respective images related to the plural times of exposures, and
the memory readout control section compares a pixel signal related to the addition operation with a predetermined determination threshold level and, when the pixel signal is smaller than the determination threshold level, outputs the pixel signal to an outside or, when the pixel signal is equal to or larger than the determination threshold level, outputs a result obtained by adding the determination threshold level or a specific addition level related to a ratio of a long exposure and a short exposure to a pixel signal related to the averaging operation to the outside to thereby output an image subjected to dynamic range combination having a number of frames smaller than a number of times of exposure controlled by the exposure amount control section to the outside.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of storing and accessing multi-tenancy data, the method comprising the steps of:
creating a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
accessing data of a tenant in a table set in response to receiving a data access request from the tenant;
recording relationships between the tenants and the table sets in a multi-tenancy metadata repository, wherein the step of accessing the data of the tenant comprises the steps of finding the table set by querying the metadata repository and accessing the data of the tenant in the table set based on the result received from the query of the metadata repository; and
determining a maximum number of table sets and a maximum table sharing rate of each database, wherein the step of creating a plurality of table sets is performed according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the step of creating the plurality of table sets further comprises the steps of:
assigning each new tenant to an already created table set in response to the new tenant on-boarding if it is determined that the table set has not reached the maximum table sharing rate in a current database;
assigning each new tenant to a new table set if it is determined that there is no table set that has not reached the maximum table sharing rate in the current database and it is determined that the number of table sets in the current database has not reached the maximum number of table sets; and
repeating the steps on the next database until each of the one or more databases contains the maximum number of table sets and each table set reaches the maximum table sharing rate.
2. The method of claim 1, wherein the data access request contains a SQL statement for data access and the step of accessing the data of the tenant comprises the steps of: (i) extracting the SQL statement contained in the data request: (ii) parsing the SQL statement contained in the data request: (iii) modifying the SQL statement into a corresponding SQL statement for accessing the data of the tenant in the table set and (iv) sending the modified SQL statement to a database storing the data of the tenant.
3. A method of storing and accessing multi-tenancy data, the method comprising the steps of:
creating a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
accessing data of a tenant in a table set in response to receiving a data access request from the tenant;
recording relationships between the tenants and the table sets in a multi-tenancy metadata repository, wherein the step of accessing the data of the tenant comprises the steps of finding the table set by querying the metadata repository and accessing the data of the tenant in the table set based on the result received from the query of the metadata repository; and
determining a maximum number of table sets and a maximum table sharing rate of each database, wherein the step of creating a plurality of table sets is performed according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the step of creating the plurality of table sets further comprises:
assigning each new tenant to a new table set until the number of table sets in a current database reaches the maximum number of table sets if it is determined that the number of table sets in the current database has not reached the maximum number of table sets;
assigning each new tenant to a table set that has the least number of tenants in the current database until all the table sets in the current database reaches the maximum table sharing rate if it is determined that the number of table sets in the current database has reached the maximum number of table sets; and
performing the above operations on the next database until each database of the one or more databases reaches the maximum number of table sets and each table set reaches the maximum table sharing rate.
4. A method of storing and accessing multi-tenancy data, the method comprising the steps of:
creating a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
accessing data of a tenant in a table set in response to receiving a data access request from the tenant;
recording relationships between the tenants and the table sets in a multi-tenancy metadata repository, wherein the step of accessing the data of the tenant comprises the steps of finding the table set by querying the metadata repository and accessing the data of the tenant in the table set based on the result received from the query of the metadata repository; and
determining a maximum number of table sets and a maximum table sharing rate of each database, wherein the step of creating a plurality of table sets is performed according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the step of determining the maximum number of table sets and the maximum table sharing rate comprises the steps of:
creating emulation use cases reflecting the use of a multi-tenant application under a plurality of table sharing rates and a plurality of total number of tenants;
executing the use cases against the multi-tenant application and a database in order to obtain overall performance values of the multi-tenancy application;
obtaining the maximum table sharing rate and a maximum level of the total number of tenants based on (i) the overall performance values, (ii) a required performance value required for each tenant and (iii) the percentage of decrease of the total number of tenants that can be tolerated by the provider of the multi-tenancy application, caused by the increase of the table sharing rate on the condition that the performance value required for each tenant remains unchanged; and
obtaining the maximum number of table sets of the database.
5. The method according to claim 4, wherein the step of obtaining the maximum table sharing rate and the maximum level of the total number of tenants comprises the steps of:
obtaining the level of the total number of tenants satisfying the performance value required for each tenant when the table sharing rate is equal to 1 based on the overall performance values under various levels of the total number of tenants at that table sharing rate and the performance value required for each tenant;
obtaining the maximum level of the total number of tenants that can he accepted by the provider based on satisfying the performance value required for each tenant and the percentage of decrease of the total number of tenants that can be tolerated by the provider of the multi-tenancy application; and
obtaining the maximum table sharing rate by comparing the overall performances of the multi-tenancy application under various table sharing rates, the maximum level of the total number of tenants, and the overall performance satisfying the performance value required for each tenant under the maximum level of the total number of tenants.
6. An apparatus for storing and accessing multi-tenancy data, comprising:
a memory;
a tangible non-transitory computer readable storage medium accessible to said memory;
at least one processor, coupled to said memory;
a creation processing module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to create a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
a multi-tenancy data router stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to access data of a tenant in a table set in response to receiving a data access request from the tenant; and
a multi-tenancy metadata repository stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to record the corresponding relationships between tenants and table sets;
wherein the multi-tenancy data router, when loaded into said memory, further causes said at least one processor to be operative to find the table set by querying the metadata repository and access the data of the tenant in the table set based on a result received from the query of the metadata repository;
further comprising a determination module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to determine a maximum number of table sets and maximum table sharing rate of each database, wherein the creation module, when loaded into said memory, further causes said at least one processor to create the plurality of table sets in the one or more databases according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the creation module comprises:
means for assigning each new tenant to an already created table set in response to the new tenant on-boarding when it is determined that the table set has not reached the maximum table sharing rate in a current database;
means for assigning each new tenant to a new table set when it is determined that there is no table set that has not reached the maximum table sharing rate in the current database and when it is determined that the number of table sets in the current database has not reached the maximum number of table sets; and
means for repeating the steps on the next database until each of the one or more databases contain the maximum number of table sets and each table set reaches the maximum table sharing rate.
7. The apparatus of claim 6, wherein the data access request contains a SQL statement for data access and the multi-tenancy data router, when loaded into said memory, further causes said at least one processor to (i) extract the SQL statement contained in the data request; (ii) parse the SQL statement contained in the data request; (iii) modify the SQL statement into a corresponding SQL statement for accessing the data of the tenant in the table set; and (iv) send the modified SQL statement to a database storing the data of the tenant.
8. An apparatus for storing and accessing multi-tenancy data, comprising:
a memory;
a tangible non-transitory computer readable storage medium accessible to said memory;
at least one processor, coupled to said memory;
a creation processing module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to create a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
a multi-tenancy data router stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to access data of a tenant in a table set in response to receiving a data access request from the tenant; and
a multi-tenancy metadata repository stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to record the corresponding relationships between tenants and table sets;
wherein the multi-tenancy data router, when loaded into said memory, further causes said at least one processor to be operative to find the table set by querying the metadata repository and access the data of the tenant in the table set based on a result received from the query of the metadata repository;
further comprising a determination module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to determine a maximum number of table sets and maximum table sharing rate of each database, wherein the creation module, when loaded into said memory, further causes said at least one processor to create the plurality of table sets in the one or more databases according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the creation module comprises:
means for assigning each new tenant to a new table set until the number of table sets in a current database reaches the maximum number of table sets if it is determined that the number of table sets in the current database has not reached the maximum number of table sets;
means for assigning each new tenant to a table set that has the least number of tenants in the current database until all the table sets in the current database reaches the maximum table sharing rate if it is determined that the number of table sets in the current database has reached the maximum number of table sets; and
means for performing the above operations on the next database until each database of the one or more databases reaches the maximum number of table sets and each table set reaches the maximum table sharing rate.
9. An apparatus for storing and accessing multi-tenancy data, comprising:
a memory;
a tangible non-transitory computer readable storage medium accessible to said memory;
at least one processor, coupled to said memory;
a creation processing module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to create a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
a multi-tenancy data router stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to access data of a tenant in a table set in response to receiving a data access request from the tenant; and
a multi-tenancy metadata repository stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to record the corresponding relationships between tenants and table sets;
wherein the multi-tenancy data router, when loaded into said memory, further causes said at least one processor to be operative to find the table set by querying the metadata repository and access the data of the tenant in the table set based on a result received from the query of the metadata repository;
further comprising a determination module stored in said computer readable storage medium which, when loaded into said memory, causes said at least one processor to be operative to determine a maximum number of table sets and maximum table sharing rate of each database, wherein the creation module, when loaded into said memory, further causes said at least one processor to create the plurality of table sets in the one or more databases according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein said determination module comprises:
means for creating emulation use cases reflecting the use of a multi-tenant application under a plurality of table sharing rates and a plurality of total number of tenants;
means for executing the use cases against the multi-tenant application and a database to obtain overall performance values of the multi-tenancy application;
means for obtaining the maximum table sharing rate and a maximum level of the total number of tenants based on (i) the overall performance values, (ii) a required performance value required for each tenant and (iii) the percentage of decrease of the total number of tenants that can be tolerated by the provider of the multi-tenancy application, caused by the increase of the table sharing rate on the condition that the performance value required for each tenant remains unchanged; and
means for obtaining the maximum number of table sets of the database.
10. The apparatus according to claim 9, wherein the means for obtaining the maximum table sharing rate and the level of the total number of tenants comprises:
means for obtaining the level of the total number of tenants satisfying the performance value required for each tenant when the table sharing rate is equal to 1 based on the overall performance values under various levels of the total number of tenants at that table sharing rate and the performance value required for each tenant;
means for obtaining the maximum level of the total number of tenants that can he accepted by the provider based on satisfying the performance value required for each tenant and the percentage of decrease of the total number of tenants that can be tolerated by the provider of the multi-tenancy application; and
means for obtaining the maximum table sharing rate by comparing the overall performances of the multi-tenancy application under various table sharing rates, the maximum level of the total number of tenants, and the overall performance satisfying the performance value required for each tenant under the maximum level of the total number of tenants.
11. An article of manufacture comprising a computer program product for storing and accessing multi-tenancy data, said computer program product comprising:
a tangible non-transitory computer-readable storage medium, storing in a non-transitory manner computer readable program code, the computer readable program code comprising:
computer readable program code configured to create a plurality of table sets in one or more databases, wherein each table set is used to store data of a group of tenants selected from a plurality of tenants;
computer readable program code configured to access data of a tenant in a table set in response to receiving a data access request from the tenant;
computer readable program code configured to record relationships between the tenants and the table sets in a multi-tenancy metadata repository, wherein the computer readable program code configured to access the data of the tenant comprises computer readable program code configured to perform the steps of finding the table set by querying the metadata repository and accessing the data of the tenant in the table set based on the result received from the query of the metadata repository; and
computer readable program code configured to determine a maximum number of table sets and a maximum table sharing rate of each database, wherein the computer readable program code configured to create a plurality of table sets creates the plurality of table sets according to the determined maximum number of table sets and maximum table sharing rate of each database;
wherein the computer readable program code configured to create the plurality of table sets further comprises:
computer readable program code configured to assign each new tenant to an already created table set in response to the new tenant on-boarding if it is determined that the table set has not reached the maximum table sharing rate in a current database;
computer readable program code configured to assign each new tenant to a new table set if it is determined that there is no table set that has not reached the maximum table sharing rate in the current database and it is determined that the number of table sets in the current database has not reached the maximum number of table sets; and
computer readable program code configured to repeat the steps on the next database until each of the one or more databases contains the maximum number of table sets and each table set reaches the maximum table sharing rate.