February 01, 2011
Mark Wielaard: New GPG key.
Finally created a new GPG key using gnupg. The old one was a DSA/1024 bits one and 8 years old. The new one is a RSA/2048 bits one. I will use the new one in the future to sign any release tarballs I might create. pub 2048R/57816A6A 2011-01-29 Key f...
More »
February 01, 2011
Andrew Hughes: [SECURITY] IcedTea6 1.7.8, 1.8.5, 1.9.5 Released!.
We are pleased to announce a new set of security releases, IcedTea6 1.7.8, IcedTea6 1.8.5 and IcedTea6 1.9.5.
This update contains the following security updates:
The IcedTea project provides a harness to build the source code from OpenJDK6 u...
More »
December/2024
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
|
|
Serialization surprises
CONTEXT
I want to share a problem that we had in our project. We were doing a real-time "Profits and Loss" server (P&L). The server sends stock updates to all the users subscribed to the stocks, basically as Google Finance or Yahoo Finance.
SIMPLE IMPLEMENTATION
I will used a basic approach (no aggregation and no optimization) to explain the problem that we had with Serialization and Hessian.
The server always keep the last value on the stocks, because when a user ask for a quote we want to send back as soon as possible the
last value (from the cache) that we had on that stock).
We kept the stock prices (BID and ASK) in a simple object : SymbolSerializable.
When a update is received for a stock, we update the values in his SymbolSerializable and send back the updated values to all
client subscribed to this stock.
...
symbol.setBid(update.getBid());
symbol.setAsk(update.getAsk());
...
for(Client client : clientList){
client.sendUpdate(symbol);
}
....
It can't be more simpler than that. The client will received each updates on his stocks.
The problems that we had was surprising. The clients were receiving the always the same price on a stock !
WHY ?
here an example :
stock : ABC
Updates :
1 : bid=10.25$, ask=10.50$
2 : bid=11.50$, ask=11.75$
3 : bid=12.00$, ask=12.15$
and the clients received :
1 : bid=10.25$, ask=10.50$
2 : bid=10.25$, ask=10.50$
3 : bid=10.25$, ask=10.50$
To debug ...
Date: August, 06 2010
Url: http://www.java.net/blog/survivant/archive/2010/08/06/serialization-surprises
Others News
|