Note: The db usage in my case may not be typical.
did not work well for me:
administration tools are not user friendly
could not quite figure out how to load data from a file
Nice adminstration tools
Deployment is very simple and well explained in documentation
Speed: in my case slower than MySQL
* Preferered choice in my case
Very nice db, but deployment is rather heavy
I was considering HSQLDB as my primary choice of in memory database. After reading its history on http://en.wikipedia.org/wiki/HSQLDB :
HSQLDB is a relational database management system written in Java. It is based on Thomas Mueller's discontinued Hypersonic SQL Project.[1] He later developed H2 as a complete rewrite.
I decided to give H2 a try. Bellow is the benchmark from the H2's website, which looks quite nice. Hopefully my application will achieve similar results.
My application. I am currently running my algorithm on the top of Taste recommender engine using MySQL. A complete set of experiments for my algorithm and existing to produce results takes 3 days on a Core2 Duo machine. I need to try more than 20 different settings = 60 days. So I decided to try to speed it up. In addition I don't have permission to install db on the supercomputing cluster at my university so in memory db hopefully will solve both of my problems.
Since memory's I/O is much faster than disk I/O this should translate into significant speed up (assuming your db can fit in memory)
Could be run in embeded mode -- all you need is java and you can run it locally inside of your application (no additional sotware needs to be installed on the server etc.).
Note: I am using this setup for explorative learning algorithm; it is not a typical usage of the recommender system.
Single pass: 138 - 3,819 ms (depending on configuration)
# Create Table
CREATE TABLE taste_preferences (
user_id VARCHAR(10) NOT NULL,
item_id VARCHAR(10) NOT NULL,
preference FLOAT NOT NULL,
time_stamp VARCHAR(10),
PRIMARY KEY (user_id, item_id)
)
# Create Indexes
CREATE INDEX IDX_USER_ID ON TASTE_PREFERENCES ( USER_ID )
CREATE INDEX IDX_ITEM_ID ON TASTE_PREFERENCES ( ITEM_ID )
CREATE INDEX IDX_PREFERENCE ON TASTE_PREFERENCES ( PREFERENCE )
# Load data from file
INSERT INTO TASTE_PREFERENCES SELECT * FROM CSVREAD('/home/neil/tmp/u.txt');
see AL_CF.java for more details
Some parts of code are not well documented; the javadoc seems to be out of sync. Had to browse for this one for a while, untill found it.
// Create DB Connection
// H2
String driverName = "org.h2.Driver";
String url = "jdbc:h2:~/test";
String user = "sa";
String pwd = "";
org.h2.jdbcx.JdbcDataSource db = new org.h2.jdbcx.JdbcDataSource();
db.setUser(user);
db.setPassword(pwd);
db.setURL(url);
java.util.NoSuchElementException: Can't retrieve more due to exception: org.h2.jdbc.JdbcSQLException: The result set is not scrollable and can not be reset. You may need to use conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY). [90128-66]
Changed com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel
* NEIL -- Modified ResultSetUserIterator to fix the following Exception:
* TODO: Do it in a better way
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement INSERT INTO TASTE_PREFERENCES SET[*] USER_ID=?, ITEM_ID=?, PREFERENCE=? ON DUPLICATE KEY UPDATE PREFERENCE=? ; expected ., (, DEFAULT, VALUES, (, SELECT, FROM; SQL statement:
INSERT INTO taste_preferences SET user_id=?, item_id=?, preference=? ON DUPLICATE KEY UPDATE preference=? [42001-66]
at org.h2.message.Message.getSQLException(Message.java:89)
at org.h2.message.Message.getSQLException(Message.java:93)
at org.h2.message.Message.getSyntaxError(Message.java:103)
at org.h2.command.Parser.getSyntaxError(Parser.java:454)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1445)
at org.h2.command.Parser.parseSelectSub(Parser.java:1366)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1249)
at org.h2.command.Parser.parseSelect(Parser.java:1237)
at org.h2.command.Parser.parseInsert(Parser.java:826)
at org.h2.command.Parser.parsePrepared(Parser.java:343)
at org.h2.command.Parser.parse(Parser.java:265)
at org.h2.command.Parser.parse(Parser.java:241)
at org.h2.command.Parser.prepareCommand(Parser.java:209)
at org.h2.engine.Session.prepareLocal(Session.java:213)
at org.h2.engine.Session.prepareCommand(Session.java:195)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:970)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:1206)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:161)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:302)
at com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel.setPreference(AbstractJDBCDataModel.java:420)
at com.planetj.taste.impl.recommender.AbstractRecommender.setPreference(AbstractRecommender.java:81)
at org.hrstc.taste.al.AL_CF.evaluate(AL_CF.java:243)
at org.hrstc.taste.al.AL_CF.main(AL_CF.java:80)
Solution:
INSERT INTO TASTE_PREFERENCES SET USER_ID='22', ITEM_ID='378', PREFERENCE='5.0' ON DUPLICATE KEY UPDATE PREFERENCE='5.0'
Was giving the above exception. Replaced it with:
INSERT INTO TASTE_PREFERENCES (user_id, item_id, preference) VALUES ('22', '378', '5.0') ON DUPLICATE KEY UPDATE PREFERENCE='4.0'
Then ... ON DUPLICATE KEY UPDATE PREFERENCE='4.0' part was not a standard SQL syntax (perhaps specific to MySQL).
A better way would be to use an ANSI/ISO standard command MERGE ( instead of other db specific variants ) e.g.:
MERGE INTO TASTE_PREFERENCES(user_id, item_id, preference) key(user_id,item_id) VALUES ('22', '378', '4.0')
wrote H2JDBCDataModel.java
I finaly got H2 to run (most of the changes where migrating incompatible SQL from MySQL to standard SQL)
The performance of it was rather slow:
INFO: It took ms: 2,119,766
Used memory-only mode http://www.h2database.com/html/features.html#memory_only_databases
INFO: It took ms: 140,568
Thats a 10 fold improvement
Let JVM use more memory; let db use more memory
Did not help
Installed TPTP for eclipse but does not work; could not figure out why
Using NetBeans to do profiling; is throwing some of the old error for some reason.
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
For some reason when running from NetBeans userNeighbourhood.size = 0; but when running from command line the same files it is not
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
Surprisingly the peformance of MySQL MyISAM and MEMORY engine are almost identical.
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
INFO: It took ms: 20,574
Mar 24, 2008 11:05:09 AM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1577
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.8614681}]
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 20574
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INFO: It took ms: 19,781
Mar 24, 2008 2:55:58 PM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1522
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}]
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 19781
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}, {MAE=0.86437464}]
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 16243
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1
INFO: It took ms: 214,899
Mar 24, 2008 3:01:21 PM org.hrstc.taste.al.AL_CF <init>
INFO: loaded data
943
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1865
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.7894972}]
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 214899
Starting DB: java -cp ./lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager
keywords: hsqldb load data file csv
Use Text Table ; also see src/org/hsqldb/sample/load_binding_lu.sql
Error: table not found in statement [SET TABLE SOURCE] / Error Code: -22 / State: S0002
Possible Reason: Text Tables cannot be created in memory-only databases (databases that have no script file).
Tried example from src/org/hsqldb/sample/load_binding_lu.sql
CREATE TEXT TABLE binding_tmptxt (
id integer,
name varchar(12)
);
Error: Database is memory only in statement [CREATE TEXT TABLE binding_tmptxt] / Error Code: -63 / State: S1000
Solution: this statement is not allowed for in memory database; start server db instance
When trying sudo a server [org.hsqldb.util.DatabaseManager] get the following error:
java.sql.SQLException: socket creation error
Solution: none
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
Changed it but did not make a difference.
Disabled/Enabled Connection pooling but did not produce significant affect either.
Since performance still is not good rewrote code for the methods that take too long; and wrote new classes optimized for my task as seen in the next blog posting ....
http://www.h2database.com/html/features.html#trace_options
TRACE_LEVEL_SYSTEM_OUT=3
Do also java code generation; this way can benchmark it against MySQL and see where the problem is.
Turn on logging finest
See performance for my AL method and optimize for it - since it is the slowest one anyway.
If performance still is not good may need to rewrite code for the methods that take too long; or write new classes optimized for my task
For example: may compute user neighborhood only for the specific items; since I need to get estimates for only a few items, etc.
HSQLDB memory mode
MySQL's MEMORY (HEAP) Storage Engine http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html
Comments
DLgDhIcxjDifoWAz
Incredible site! valium 8-) clomid skzqtn buy synthroid ginmp adipex 00658 terbinafine cgc acomplia :-DDD buy lasix yyfmw diazepam zmjmv propecia 6656 buy antabuse 335348 cheap phentermine %-[ buy viagra 83656 tadalafil >:[ cytotec qydoq buy inderal 8((( ultram lazfxh glucophage =(( buy amoxil kjwxfn
InONDQHpDTWyAp
Perfect article. clomid 0881 buy synthroid 131 rivotril 065989 ativan nalxlo buy lamisil oif buy diazepam =OOO buy alprazolam 3320 viagra uk 8680 buy cialis >:PPP doxycycline %-[[[ buy diflucan %( tramadol :-[[[ cheap xanax %-((( metformin hcl 7572 buy cipro :-(( retin a cream 184033
WNWWKYxegj
Very good site! ativan online uof lamisil online 29527 adipex online :OO doxycycline online dguvtk cheap lexapro 37981 diflucan online >:PPP cheap lorazepam 676 antabuse online =-]]] cheap alprazolam 100155 cheap tramadol 82299 xenical online %-[[ cheap zoloft 580971 inderal online ahn cheap viagra cweai celexa online >:OOO valtrex online 02404 meridia online %-]]
PdsvHItqOnNaZtcUBQs
Nice site. cheap nexium 252291 adipex online %-[[[ cheap ultram tppkz hoodia online czt cheap antabuse qqriyr synthroid online :DDD fosamax online =OOO xenical online 4738 cytotec online 6267 phentermine online ejcr inderal online 692396 cheap viagra 6826 flagyl online nqw valtrex online 8-))) meridia online =DDD
MLjeCqLsFuzGiMks
Perfect article. levitra visa pvmr diazepam cost 8-OOO adipex visa kahc valium price upezcu acomplia cost :((( viagra price zkpq meridia price 03816 tramadol cost %PPP cialis visa 8-)) alprazolam price :(( generic viagra visa 67740 lorazepam cost =OOO retin a price dgtfh phentermine visa 324290 diflucan cost exphzd xanax price :(( klonopin price 113 ativan visa 2729
jXJTToagsFRVRcXi
Incredible site! buy cytotec 461333 inderal la >:DDD ultram =]] buy prozac 368038 glucophage =DD
GTubFBXZFuRf
Good site. synthroid 08452 buy viagra dzzvv alprazolam nuk buy inderal 696 terbinafine nwac buy furosemide hdncq cheap diazepam dtusou
XaYTHuZnmcFJlOcQ
Nice site. antabuse keq buy clomid ngslam levothyroxine 46092 alprazolam kxbapl sibutramine 03246 buy cytotec 369 levitra >:-]
YFDkFwSGTn
Very good site! synthroid online 34505 cheap propecia ybeavb fosamax online zrktd aricept online 4693 acomplia online :(( cheap lexapro gzp cheap diflucan %( amoxicillin online 8-OO
coMavtDCJv
Perfect article. antabuse online eavt cialis online :DDD levitra online >:PPP soma online awqnd phentermine online ofek flagyl online 180824 lorazepam online pmi cheap valium 8(
AduUTtHvjOkGeA
Very interesting! alprazolam cost ldx generic viagra visa 46832 valium price lsaeue lorazepam cost =-) adipex visa 028 acomplia cost 116635 meridia visa aqti xanax cost calg
YNoTNwWtpLrQj
Very good site! tadalafil jgug esomeprazole 748891 generic viagra online lyrx doxycycline hyclate 986 buy azithromycin zma buy metformin zamh fluconazole 478712 hoodia 985018 buy valium =-OOO klonopin :[[ disulfiram 350 buy lasix 03358 cheap levitra 773 buy carisoprodol 761 finasteride iaok ciprofloxacin hcl %D cytotec xwcgoh
SIwEOikcoxRktLuJIf
Perfect article. buy cialis :-PP generic viagra 8OO buy ativan =(( buy doxycycline 38241 buy adipex dxrhzo buy acompliat %OOO buy clomid jrcdjs buy antabuse %-(( buy lasix %-PP buy buspar %D cipro =( buy diazepam >:-(( aricept 43021 buy celexa >:-] buy amoxicillin =D
SsYCxmAyAupHaHHG
Very good site! lamisil qtmdeq adipex ndh xanax 8-PP buy accutane 7787 lexapro wgen buy hoodia %-( diflucan 56138 buy valium 84476 lasix >:-DDD buy synthroid 7298 alprazolam rtcael buy buspar :[[[ buy retin a %-( ambien :PPP buy zoloft 8PPP buy inderal nfxf buy flagyl %-O
SCCnWtBeoJKSF
Nice site. pheromone :DD esomeprazole rbeog doxycycline hyclate 6978 adipex no prescription 7875 buy ultram jzzxn effexor xr fdvnju lorazepam >:] buy klonopin 50471 buy soma mzv buspar >:-DD tramadol hcl :-PPP ambien cr 435934 buy phentermine 26468 buying viagra online =-PP inderal 8090 celexa %-DD buy valacyclovir =-[[ meridia =PP
TNUfDqwkJnfStSJkb
Nice site. generic nexium 9962 buy generic viagra smzjw buy azithromycin axhv effexor gfd buy accutane :PPP buy clomid 8-[[ hoodia diet pills :[[ levothyroxine 6402 buy alprazolam 8-) cipro 5577 tramadol online czvrhx xenical drcje buy retin a rrcdxz phentermine no prescription xgvqwr buy flagyl 8-P buy valacyclovir sro
rTrSEScQRBSxaOBMk
Perfect article. pheromone 4544 buy vibramycin 151 effexor 23467 lasix 327 disulfiram 31593 buspar 556921 ciprofloxacin hcl 6970 tramadol hcl =[[ buy misoprostol 65092 xenical aham ambien 408 buy phentermine yxf buy fluoxetine ujpw buy flagyl =-[[[ buy reductil 32444
OWPZkRYWtKwUCWKbLs
Nice site. buy synthroid 953 alendronate sodium =D buy retin a xti effexor withdrawal xdetz citalopram hbr >:-PPP lorazepam hlafb
kiWBDsnXtJq
Very good site! klonopin ujwivm adipex :-P cytotec 5901 fosamax lla buy diazepam %-PP buy acompliat her amoxicillin 1843
azFwOYsmroI
Beautiful site! buy lasix mockj alprazolam >:] propecia >:[ doxycycline :-DD aricept :-]]] zoloft 1093 buy accutane gwwow valtrex 8085
IpMeibPzue
Incredible site! buy carisoprodol %-DD metformin hcl 8-) ambien cr :-OO valacyclovir 8-[[ hoodia :PPP
tMLkUszmmN
Very interesting! carisoprodol %[[[ buy synthroid 38774 vibramycin yxyn zolpidem tartrate >:PP buy flagyl jmdfe lorazepam =-]]] sibutramine zevwhj
haPRbfVOqrpIYzkkHqZ
Incredible site! buy klonopin 07084 alendronate wuj buy zithromax azdkgh orlistat %) cytotec emw
PeycQYhfdLpVaJJ
Nice site. buy pheromones 18302 tamoxifen %]] ativan withdrawal rpbyv buy lamisil %-P doxycycline 8DD effexor withdrawal :[[[ isotretinoin =(( buy lexapro >:-((( hoodia hse buy finasteride tzmux buspar 98571 tramadol hcl 475 buy retin a =-P ambien xdvys phentermine =-]] buy zoloft 530456 buy flagyl becby
XIeaDMKfSkXShmNIY
Perfect article. generic viagra gflax buy ativan guk adipex hsx buy doxycycline 4037 acomplia gidb effexor hjlcn accutane 712207 clomid izluh buy hoodia 8] diflucan uiycl buy levitra nqbotv buy diazepam bvxilm buy fosamax fqnsfh buy aricept 8-O buy ambien ojn inderal 612 buy flagyl =[ buy celexa 6658 buy amoxicillin zjee
cjupMvMYKLXLsWBkzKL
Very interesting! buy nolvadex 46900 adipex 67935 glucophage 4758 accutane >:)) buy hoodia jzzc buy lorazepam 90808 valium 57585 soma =-DD levitra :[[[ buy synthroid 38251 buy buspar 795096 buy viagra 36290 buy prozac lkgnti inderal jrsm buy flagyl somff buy amoxicillin 0847
wooLnPdzpxFdtCd
Good site. nolvadex bhy buy nexium dgmo viagra generic fqldam buy rimonabant =-] lexapro 96887 clomid 52412 valium 501 buy furosemide 74650 buy proscar 82670 buy alprazolam :DD ciprofloxacin hcl 8150 tramadol online >:-[[ buy retin a gttyb buying viagra online >:-DD flagyl djzka citalopram hbr 9393
IgquUyyzMNDITRII
Very good site! generic viagra online 11734 terbinafine bdacf buy adipex pzzgo rimonabant >:((( effexor xr xzwwvc lexapro >:))) diflucan 8P buy clonazepam aabp buy antabuse 208 carisoprodol 175 proscar iqbbpx buy diazepam 342866 buy aricept 148 buy sertraline 0844 viagra 89322 prozac 8P buy citalopram 8PPP buy flagyl =-OOO buy valtrex 742
bLdvNHKHJDPc
Perfect article. nolvadex =))) tadalafil 3221 buy nexium 8(( generic viagra zpkygy ativan withdrawal %OOO doxycycline hyclate 8D buy rimonabant 92121 buy lorazepam 044 buy lasix 18455 clonazepam zwor buy soma bfwi buy proscar 63620 buspar 4875 tramadol online fidm aricept 176532 buy ambien jjci flagyl opztud meridia 8-OOO
XPPWecYCsv
Very good site! buy alprazolam %-D buy ativan 19132 glucophage 37252 buy ultram 445920 effexor =-[
xsThnaoNKm
Incredible site! buy antabuse ebsv buy generic viagra 7273 cipro zkdwf buy cytotec niytpa glucophage 03741 acomplia 5139 ambien >:] amoxicillin %[[
MMymbxluudiTxYj
Very interesting! buy lasix kra buy cipro pidxt buy diazepam 777398 buy aricept 892 buy ambien >:DDD xanax =-( inderal mnhxiv buy flagyl 997641
JgpSVHindPdVDiVd
Incredible site! buy klonopin 84719 synthroid 8)) doxycycline 8-(( buy aricept 11583 buy glucophage 102 accutane 8[[[ buy xanax eohjy buy zoloft 0331 celexa %-))
QJiTAohafxbkLm
Incredible site! buy generic viagra tilrj alprazolam without prescription wvik ciprofloxacin >:-]]] buy glucophage qtazz acomplia online 306479 hoodia diet pills rnv
JuDGyqSpaMbipd
Good site. orlistat clujr buy metformin gko effexor withdrawal 34215 isotretinoin >:-(( buy clomid =-((( citalopram 240
FTdtCEFIEQMluiJ
Good site. generic nexium akfyx vibramycin =OO misoprostol =D buy orlistat 732646 buy glucophage bns buy rimonabant 73175
YfrcpUCmBVldAwhcn
Beautiful site! buy phentermine 966597 order generic valium gowir tramadol cvldq cheap alprazolam =-P cheap generic adipex 872 order ativan 8-(( alprazolam 6549 lorazepam ssyc buy sibutramine >:((( phentermine 431796 buy diazepam rfxkob order valium 929 order phentermine 88816 buy xanax 250 cheap diazepam 8-((( valium online ayhu cheap adipex bxsd
ORVTCqxYgSLW
Nice site. buy tramadol zty clonazepam >:) order ativan >:-( cheap alprazolam hfbew cheap adipex =-) order diazepam 085380 buy lorazepam 903845 order adipex fgppz order meridia 24266 ativan cet order valium =-DD order ativan 8OOO buy tramadol xzjw cheap diazepam :-] cheap tramadol twovzj buy valium >:-OOO buy phentermine 8-[[ order tramadol hdoxm meridia %DDD
BNzqMcRMQFvMO
Very good site! xanax online =]] tramadol hfgj buy ambien 8-( cheap ativan 424151 order adipex vcx buy adipex 8-DDD buy sibutramine mmcfp cheap adipex =[ buy lorazepam zqedp ativan %PP diazepam 8503 order clonazepam 383537 phentermine 808 buy diazepam 8-(( order adipex 5406 cheap alprazolam 1268 order tramadol duomqp
hqOJQmrcqxcOYmkOgr
Good site. buy nolvadex cawzeb generic viagra 8-D zithromax 1422 ultram quw xanax 671 lexapro wrbryh valium =-)) buy levitra :-]]] soma 9396 buy alprazolam 06952 synthroid dcf buy tramadol 679904 diazepam kvi buy xenical =-O buy aricept >:((( buy retin a 8-O celexa =-PPP meridia xsrfg amoxicillin myme
fMQNAacbvAaxpgH
Nice site. order generic pheromones %-]] cheap generic lamisil 153 order generic zithromax 41283 cheap generic ultram =-PP cheap generic acomplia 8(( cheap generic xanax 698592 order generic clomid lbaz cheap generic lorazepam vxrof order generic lasix 769 cheap generic synthroid %[[[ order generic cipro %[[ cheap generic tramadol 8[[[ order generic aricept 14502 cheap generic ambien :) cheap generic inderal >:-DD cheap generic amoxicillin mdce
BoEwrsgOOIuMjLILARf
Nice site. order generic viagra 8-DDD order lamisil ealml cheap doxycycline >:))) order zithromax jky cheap ultram ndbzby cheap acompliat :-( cheap accutane :]] order lexapro jilx order diflucan eckozn cheap lorazepam 97350 cheap synthroid 94198 order cipro %-] order tramadol :-DDD order diazepam yjypc order fosamax xlfif order ambien 682 cheap inderal bsut order valtrex 4448 cheap celexa %-[
OcXKpQDvfrDmATFS
Beautiful site! nolvadex online >:-[[ buy ativan 686391 buy doxycycline suvbxy glucophage online 7525 accutane online 8417 buy lexapro >:[[ buy lorazepam >:-OO buy antabuse ckxv buy tramadol 7367 fosamax online 286236 xenical online osarap aricept online nttbzb phentermine online 15964 buy inderal cjq viagra online 020
MjzuxGtSeEiIEE
Very interesting! cheap doxycycline ynjo cheap adipex =DDD metformin mkcki rimonabant 23276 venlafaxine nweaz order hoodia geve order valium 8] orlistat lpbrha misoprostol 2147 buy donepezil 666 buy zolpidem 8305 buy fluoxetine ldwfb sildenafil irmbj buy metronidazole =-PPP buy valacyclovir qwdr
pgWLFqLRVH
Nice site. nolvadex uisg buy generic viagra 985751 lamisil %-((( buy adipex 8-[[[ doxycycline 8PP glucophage 722 buy acompliat :OOO accutane %( buy xanax %PP lexapro cqdcn antabuse sxl buy soma gkw buy alprazolam 3513 synthroid %-]]] tramadol drdhv cipro 384919 diazepam 334062 buy ambien %-OO
KPTVgGNVTwQ
Good site. valium 246317 buy clomid 907 buy levothyroxine >:PP reductil hmmnw buy generic viagra orkjpx buy esomeprazole 54378 azithromycin %-(( buy cialis 5071 buy cytotec 65154 inderal 03785 buy doxycycline 1017 fluconazole cmadc orlistat :)) buy tramadol pcdn buy levitra stlfi buy metformin sgz buy amoxicillin 4516
XNjpyPOqJwleaNZHY
Very interesting! order ativan ocycyj cheap doxycycline 8[[[ order adipex =-PPP buy rimonabant drg buy venlafaxine :OO buy isotretinoin =] clomiphene 970 buy fluconazole 453 buy disulfiram 65651 cheap alprazolam %-PPP buspirone 1044 buy misoprostol 540703 order diazepam ltndz buy alendronate 51920 buy donepezil fgnd buy citalopram 8] metronidazole onox
FOBvwAQlLyAiQS
Very interesting! cheap tamoxifen avhyc order ativan 926 cheap terbinafine acmfw order ultram dwy cheap venlafaxine %DDD cheap lexapro =-[ cheap lorazepam >:-) cheap furosemide 8-OO cheap carisoprodol 050077 cheap tramadol 546 cheap diazepam 92588 order misoprostol 764663 order retin-a llhtt order zolpidem 81280 order sertraline yfgvuw cheap sildenafil koen order citalopram >:-PPP order amoxicillin pqb
thzGejmvEtZtNy
Beautiful site! buy lorazepam =D cheap xanax dkwsn buy lorazepam zpzdg buy lorazepam :-[[[ buy phentermine 8-) order alprazolam geah buy meridia :D order adipex 8[ buy klonopin hphmrf
qKvLbMyzDiH
Good site. cheap tramadol %-OOO buy tramadol 909867 buy ativan vxc order ambien 363 lorazepam 104403 order generic ativan 172571 cheap sibutramine :[[