473,472 Members | 1,728 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

system Architectural advice

dee
hi,
I considering designing a online snipe system. This where i input a
price and the application will submit the snipe at the desired time to
the site. I have been thinking about the design of the system at a
higher level view and wanted some ideas on what would be the best
design of the system in terms of performance , managability and
scallability. I was thinking of three database tables , one not very
urgent , urgent and very urgent . The very urgent would be checked
every second to submit bids, this would have less rows than the others
so would help performance. The urgent checked every 1 mins and would
move bids ending in two min or less to the urgent table. The not
urgent checked every 10 mins and moved to the urgent when ending in 20
mins ir less. I was thinking MSMQ could also be used , does any one
have any advice?
Jul 21 '05 #1
2 1413
Dee,
Your plan sounds unnecessarily complicated. With your
architecture each bid ends up being written to the db 3 times plus
plus 2 extra bits of IO for removing the bids from the two staging
tables. With a database limiting IO is one of the main goals of
optimizing. If you simply have one table and index the field
containing the bid DateTime then your one query every second will use
the index and therefore be very efficient regardless of the number of
records, this schema will also eliminate 4 IO operations for each bid.

Cecil Howell
MCSD, MCT
da********@kagi.com (dee) wrote in message news:<3e**************************@posting.google. com>...
hi,
I considering designing a online snipe system. This where i input a
price and the application will submit the snipe at the desired time to
the site. I have been thinking about the design of the system at a
higher level view and wanted some ideas on what would be the best
design of the system in terms of performance , managability and
scallability. I was thinking of three database tables , one not very
urgent , urgent and very urgent . The very urgent would be checked
every second to submit bids, this would have less rows than the others
so would help performance. The urgent checked every 1 mins and would
move bids ending in two min or less to the urgent table. The not
urgent checked every 10 mins and moved to the urgent when ending in 20
mins ir less. I was thinking MSMQ could also be used , does any one
have any advice?

Jul 21 '05 #2
sure, create a single table. Put an index on the date-time column.
Create an architecture with one central db server (possibly clustered for
reliability) with a dispatcher service running on the db server. The
dispatcher will look for records that need to be handled, and will dispatch
them. That's all it does. It can load up an hour's worth of records in
memory, and then simply dispatch from memory when the time trigger is hit.

To dispatch, have the dispatcher call a web service running on an agent
system. The agent should accept the transaction async... so that the
dispatcher is not blocked while the agent does its work. You could use MSMQ
3.0 if you'd like. .NET Remoting works well too, and is fairly fast, but I
don't think it load balances very well, so you may not want to go this way.

The agent is responsible for sending the bid to the auction site, getting a
response, and informing the data server if the post was successful.

Load balance your agents. Some systems will take time to accept the bid.
That way, if you have 15,000 bids to place at exactly 9:52pm on 61 different
sites, you simply have your dispatcher call the web service of the agent,
and have the load balancer decide which of your dozens of servers will pick
up the request and attempt to update the auction site.

This configuration starts with two servers, and scales well.

If your database becomes a bottleneck, then you create two databases and you
logically partition the transactions. E.G. if you have 15,000 bids that
need to be placed between 9 and 10 pm, 7,500 would be sitting on db server
A, while 7,500 will be on db server B. This means that the ability to store
the record in a database should be abstracted in some way. (dozens of ways
to do this). I like random numbers as a good seed for this kind of thing.

Hope this helps,
--- Nick Malik
Application Systems Architect

"dee" <da********@kagi.com> wrote in message
news:3e**************************@posting.google.c om...
hi,
I considering designing a online snipe system. This where i input a
price and the application will submit the snipe at the desired time to
the site. I have been thinking about the design of the system at a
higher level view and wanted some ideas on what would be the best
design of the system in terms of performance , managability and
scallability. I was thinking of three database tables , one not very
urgent , urgent and very urgent . The very urgent would be checked
every second to submit bids, this would have less rows than the others
so would help performance. The urgent checked every 1 mins and would
move bids ending in two min or less to the urgent table. The not
urgent checked every 10 mins and moved to the urgent when ending in 20
mins ir less. I was thinking MSMQ could also be used , does any one
have any advice?

Jul 21 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Andrzej | last post by:
I am looking up for book about XML architectural forms. Or good site. Regards Andrzej
3
by: MrMike | last post by:
I have an asp.net project containing several dozen webforms. For some reason on one of these webforms in the Public Class area there is listed each webform control as follows... Public Class...
2
by: Viet | last post by:
I have an architectural issue that I have been working on for quite awhile now and I would like another person's point of view. This issue involves the conversion of a VB6 app to VB.NET. In this...
2
by: dee | last post by:
hi, I considering designing a online snipe system. This where i input a price and the application will submit the snipe at the desired time to the site. I have been thinking about the design of...
11
by: stax | last post by:
Hi, Assuming having a method that calls another method which also calls other methods and so on having a long winded tree of methods. What do I do in case it turns out everything has to be...
1
by: Griff | last post by:
Hi I'm not sure of the best way to go about achieving my goal and would appreciate any advice. What I would like to do is to generate a control that can be dropped onto a web page. For...
12
by: Rowan | last post by:
Hi there, I am just starting in .net 2.0 with a background in VB6. I have two projects to complete. The first being a website and the second is a client application. For now the majority of...
2
by: DC | last post by:
Hi, I have designed some data objects that I want to be filled by several providers. Do these objects typically belong into a seperate project (plus each provider is a separate project)? ...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.