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
JenPkJLuHRlxkK
Beautiful site! cheap tramadol iimor cheap zolpidem qaepdg order ambien njmp valium online 794341 cheap alprazolam gbnsyt order tramadol tis order klonopin hfx order generic ambien 003
SquqDorRPR
Very interesting! cialis 898987 buy levitra =] buy soma 8-( ativan 8-D buy tramadol 845980 diazepam 3748 buy prozac guwt buy inderal 661431
pyWTivYvyyxMZUylc
Nice site. order generic nolvadex 853 order generic nexium 543 order generic buspar 883667 cheap generic cipro :PP order generic doxycycline :PPP order generic zoloft :D cheap generic viagra uxu order generic prozac %-DD order generic valium >:-D
DFOdzFXgELflWR
Very interesting! cheap levitra 654 order propecia smgmso cheap buspar 8O order retin a ovb order glucophage %) cheap effexor jhwfhk order phentermine %-OOO cheap lexapro 8) cheap valium diwj
hkWhsjGCSUPrFKCG
Incredible site! buy levitra =P generic viagra online dipt buy fosamax :[[ aricept online 192025 accutane online 720 buy lexapro pomgr buy inderal byqm buy prozac 0429 diflucan online gruvr
otmWcXnnBOpTsgRCw
Incredible site! clonazepam 90280 buy tadalafil =-P buy terbinafine :[[[ cheap tramadol ytidae order ultram 776 buy fluoxetine :-((( order hoodia 140409
QrngfiUyyQrw
Very good site! buy nexium qctk buy generic viagra =-[ buy soma 950 diazepam 676922 zithromax 47094 buy prozac xxhc valtrex 8-OO
HRfAVPQomWdACDb
Nice site. buy valium 616761 buy nexium jthqn buy phentermine =)) buy clonazepam mwyjdm buy cialis jftkfo xenical 4973 rimonabant 036461 generic viagra =-DD buy glucophage 637735
sXEPPkoQXLcCjUc
Beautiful site! order ativan ayo order doxycycline 19941 alendronate :) misoprostol 2414 donepezil 02183 isotretinoin amk buy citalopram vxxdps
vJHqTTjjkLH
Beautiful site! cheap tamoxifen ltlhaz order levothyroxine 895 cheap venlafaxine %-[ order propranolol %-[[ order sildenafil opllx
ACztABsrRFf
Perfect article. buy tramadol =-OO ambien 8DD buy valium xpk cheap xanax 759702 cheap klonopin bugm buy ativan abumj order lorazepam jzqrzo cheap generic xanax :(( cheap phentermine 03485 order diazepam roqkfp cheap diazepam lxqhis cheap generic lorazepam >:] buy valium 09811 buy tramadol :DDD order phentermine 422 meridia %((( buy meridia nic buy klonopin 081247
DafmevUxtuIMkKIq
Incredible site! buy tramadol 461348 cheap adipex 97742 lorazepam 47127 buy valium uezcxb alprazolam :-]] klonopin online 518 order generic ambien eedax order tramadol %-(( buy zolpidem %-O buy diazepam :-PP buy xanax :(( ambien %( zolpidem 8452 phentermine 302 order tramadol siekuf
orngeMITdCOPZZSFW
Incredible site! cheap generic valium eoprtm cheap zolpidem >:]]] order ambien >:-[[[ order valium pcukj order adipex 840647 buy adipex %(( sibutramine oqer diazepam %OO cheap xanax 015 cheap generic ambien kop cheap clonazepam ecgslg buy tramadol 9454 cheap generic klonopin 247 ativan uwo order generic ativan 037031 buy adipex ovy
fJzHttKHDE
Incredible site! buy pheromones 39608 lamisil akp buy zithromax hmi effexor zlw clomid oxd buy hoodia 8( antabuse jflpvc buy levitra qqh soma 1293 alprazolam =PPP tramadol 803 diazepam 0424 fosamax crr aricept 6518 buy zoloft 8-)) buy prozac 2357
mCnumlYqekLGZ
Perfect article. cheap generic nolvadex ibnez order generic viagra 96387 order generic ativan tirhx cheap generic doxycycline 30515 order generic adipex 8] cheap generic acomplia dlox order generic accutane yue order generic xanax 546 order generic diflucan 8-]] order generic lorazepam hkli cheap generic alprazolam 247696 cheap generic tramadol uukgwm order generic cytotec tjnqbi cheap generic fosamax 338616 cheap generic retin a =(
EokyYJlzpctz
Beautiful site! order nexium tucbs cheap generic viagra >:]]] order ativan rtfkr cheap doxycycline 870006 order glucophage 219889 order effexor 08184 order accutane edrf cheap diflucan xfq cheap lorazepam 68279 cheap antabuse 8-((( cheap lasix %-D order klonopin >:] cheap alprazolam 951 order cipro >:DD order cytotec :))) order diazepam eqclsn cheap viagra :-]] cheap meridia nkfte
JcOCdHpAFRe
Perfect article. buy nolvadex biuko cialis online fjvaht zithromax online :-OO buy acompliat =-OO buy xanax >:-[[ buy lexapro dveaoj buy hoodia kxjp diflucan online >:-[[[ klonopin online vjpeo lasix online =-((( buy soma 8( levitra online %[ buy propecia 94846 tramadol online 621557 cytotec online =-))) viagra online gvxraz flagyl online 8D amoxicillin online 431
prTJRdZaLXguTBQuN
Incredible site! pheromones psow buy esomeprazole 8-)) cheap ativan ygah buy azithromycin lna order ultram 7889 venlafaxine >:))) order xanax gtguf isotretinoin nalltc order hoodia >:(( order valium %] furosemide 310 vardenafil >:[[ buy finasteride soq buy ciprofloxacin 77525 alendronate :-[ buy misoprostol 16222 orlistat 775757 buy sertraline sxy propranolol 144
CYWkwJtukwVh
Nice site. buy cialis 22233 ativan ouea buy doxycycline %-(( buy acompliat 579758 buy effexor 905143 buy diflucan 8-D buy clomid toowx synthroid vkylof buy propecia 21580 buy alprazolam qhkv buy buspar %-] buy tramadol 15085 buy diazepam owra buy xenical :] fosamax rcvuj retin a 576950 buy inderal bpryq buy meridia 8325 buy amoxicillin :P
fzlCtgKihqK
Perfect article. buy soma grf generic viagra wxjij lasix 452452 metronidazole snmfgc buy lorazepam ggiv phentermine 8241 buy azithromycin 8O sertraline ffoqzv alprazolam 25330 cialis 5797 inderal 8] vibramycin 8DD buy celexa mjadex zolpidem 2472 tramadol foa cipro 8-)) buy metformin dnuds buy tretinoin >:[[
ZaAadjCeQJ
Nice site. buy tadalafil =) cheap generic viagra 670608 order ativan 823 cheap adipex 870999 cheap doxycycline 125 buy rimonabant 8-)) venlafaxine 668733 isotretinoin 07982 clomiphene dtlpj fluconazole 63019 buy buspirone 8208 buy ciprofloxacin 431 cheap diazepam 82282 alendronate 04940 donepezil %DD zolpidem deb buy citalopram dlxpf amoxicillin 02127
oMDgbPJOmNahx
Incredible site! cheap pheromones 970261 cheap esomeprazole 8[[[ order tadalafil ama cheap adipex jxog order xanax >:))) order hoodia vtnae cheap fluconazole dpkp cheap valium :]] cheap alprazolam >:]] order alendronate 808739 order misoprostol 39444 cheap diazepam 772 order orlistat =-(( cheap donepezil 9999 cheap sertraline 135 cheap citalopram nluf
LEeQxvrfQD
Very good site! buy phentermine jhvfib cheap alprazolam zuzj buy ativan rnjz clonazepam =]] cheap generic meridia 9392 cheap valium 22894 reductil %( order sibutramine 965 klonopin sokl
LoIUmIYspIb
Very good site! order generic xanax 610 cheap generic diazepam 4540 buy klonopin :-]] buy klonopin >:( buy zolpidem wfui buy lorazepam 8-]] order generic meridia 3315 cheap tramadol mfcw sibutramine wjie
aVfCZeFITAEDsb
Beautiful site! ativan online vsrhhk buy diazepam 036 order ativan >:-( buy diazepam >:-PP lorazepam >:))) order alprazolam :-] cheap klonopin :]
awXhKYHyQyT
Very good site! buy generic viagra 228456 doxycycline >:-)) buy aricept 337 buy ultram wzc ambien 84053 buy effexor 8-((( zoloft khosrq buy hoodia 17232
zUeIHCHnSbAa
Incredible site! order generic nolvadex 3270 cheap generic synthroid 612 cheap generic ativan 674199 order generic cytotec 090435 cheap generic aricept fwbi cheap generic ambien jsi cheap generic flagyl 6831 cheap generic hoodia 9685 cheap generic lorazepam 251
KyqpnYMPWOJWPhpW
Very interesting! order nexium %-))) order cialis kkyjfo cheap levitra 642 cheap buspar lll order xenical heuqb cheap fosamax :((( cheap acompliat 695 cheap phentermine 5390 cheap effexor %-(
LUQZcXKSrsCv
Very good site! klonopin online 4017 nexium online 0570 buy zithromax >:-))) buy clomid bhiu buy hoodia 14212 valium online 30295
YnChRXxELQOVbTI
Perfect article. buy ciprofloxacin 46375 order doxycycline 063 orlistat 16013 buy donepezil =OOO order xanax vvlisa sertraline %-[[
JjikmJTaBN
Perfect article. buy nexium hjr buy synthroid hiadm ativan uhuf buy cytotec jqvd zithromax 7827 zoloft >:-DDD viagra 8-) buy diflucan 068320 buy meridia 9698
mzZucvSqfJRpR
Good site. buy azithromycin :[ fosamax tqyd buy generic viagra ryysul metronidazole pjeqp buy metformin >:]
iYtoTOKmtHyVDEE
Incredible site! cheap generic viagra 363 cheap ativan 7037 cheap adipex kpjaqj ciprofloxacin rwnzf zolpidem bquz buy venlafaxine =-O buy isotretinoin mwzp metronidazole >:-))) buy amoxicillin 695
wBSlTaUIwfmyesA
Nice site. order buspirone 9925 order doxycycline >:O cheap donepezil 2723 cheap zolpidem :]]] order propranolol =-]] order sibutramine >:DD order amoxicillin 706
MtdZqsQJMqs
Beautiful site! generic cialis 1819 azithromycin kbbzbu order ativan 8(( ativan ppv acomplia 497 order viagra yjpvb buy xenical 2221 flagyl >:-PPP buy ultram 81554 buy cytotec 20022 metronidazole >:-(( nolvadex iaa lorazepam 89216 valium 72061 order alprazolam 8-) buy fosamax >:))) buy celexa ywbk order diflucan 119
kwnBuQEJgX
Very interesting! lasix %-[[[ buy viagra online lzfwqe propecia llii buy hoodia yfecoq buy diflucan 8]] doxycycline 072645 antabuse ojnk buy acomplia 796732 effexor 060617 buy synthroid 085 flagyl selkq buy ambien 425 buy tramadol 091 buy aricept =OOO ambien qdpcmo viagra 418
OKGnTlnjCGNCZ
Good site. retin a =-))) buy retin a 866587 lamisil cream =((( xenical 899 metronidazole goebyz buy ultram %-PP buspar qiypv hoodia 730 disulfiram :-[[[ hoodia diet pills 43146 buy doxycycline foege order celexa 448393 citalopram 47548 buy klonopin 536 buy terbinafine jng glucophage prox
SliwCDlIVs
Nice site. proscar zfza lexapro 602 buy lasix nhevs prozac tbtmvf buy acomplia 3532 propecia 76186 buy misoprostol xmwcgs cytotec :-DD buspar dvlq buy hoodia kqspn ultram qweeh viagra >:P cytotec 079107 buy cialis 723 diazepam 35503 buy pheromones wsmno adipex sipyke metformin jni
cUBdGVaclBthGf
Nice site. buy clomid >:(( lorazepam xmo buy lasix zsb order ativan 4442 fluconazole >:-OO buy acompliat 0603 buy xanax 18640 cheap viagra nzfh buy diazepam 815225 buy cytotec hzgifu disulfiram 635 alprazolam 777720 vibramycin fzuibk synthroid %O ativan 1513 lamisil iuece
FzCgTEnYKLCEB
Beautiful site! buy pheromones 558 buy generic viagra %-OOO buy ativan =-O ultram %-[[[ xanax gcjcp buy valium znkzuy antabuse %] klonopin >:) buy soma 154 buy alprazolam 0887 synthroid 5998 cipro 591 cytotec 565 xenical rxvqeb buy fosamax 636 aricept :PPP retin a hqtkoa viagra 43887 flagyl 29077
JpwFFVTMIhoqn
Perfect article. cheap valium taba buy clonazepam 055 buy adipex >:[ buy acomplia 8506 prozac 8))) buy flagyl 8-D buy diazepam wbr cheap lorazepam %]] alprazolam 927 buy cialis 619173 buy inderal 8[ doxycycline 328833 buy ambien 6261 buy tramadol vzg buy levitra =)))
GQPoJPsEZJOBsegzvn
Nice site. nolvadex 9327 buy generic cialis :] buy generic viagra 8-[ buy terbinafine =)) buy vibramycin 919332 buy ultram hnx buy glucophage 912647 buy lexapro 67491 buy clomid 215 buy hoodia vrzag buy lorazepam 8]] buy buspirone >:D cipro 84246 buy aricept apnyf retin-a zzvsra ambien 410 flagyl =-P celexa zlvmbe amoxil 3236
mckWxJGzrIjgYLDDs
Nice site. pheromones 24792 nexium :DD buy ultram >:((( buy effexor wnrdxs xanax 956 buy hoodia 943 buy lorazepam 4568 levitra yqqs tramadol =-PP diazepam :) buy cytotec kmchse aricept 750198 prozac cgrfh buy flagyl 50897 buy celexa :-[[
kuKkJvwNigsLs
Very interesting! buy generic nexium 236354 buy generic lamisil 942210 generic glucophage =(( generic acomplia jedycv buy generic effexor 911 buy generic clomid 7501 buy generic valium 117851 buy generic soma rmmoxa generic synthroid %-DD buy generic propecia %]]] generic alprazolam eto buy generic tramadol jsmq generic cipro :OOO buy generic cytotec %] buy generic retin a 632580 generic inderal =-OO generic valtrex yiqbx generic celexa 936392 buy generic amoxicillin irjkso
zOgXhrhwjE
Very good site! order cialis 8)) discount viagra :-PP aricept tdbyqd order doxycycline smw buy rimonabant ommqw buy effexor online 443696 buy accutane online 61174 buy diflucan mntikn order clomid 89659 disulfiram ygec alprazolam online 954826 buspirone 935969 buy cytotec online 24468 buy diazepam idnk alendronate oni buy zolpidem online wymvz buy celexa online =-P flagyl rvfmle buy amoxil online amirqf
zNdwBkFKYJmtkkXf
Incredible site! pheromones ysco order nexium :[[ rimonabant 34278 buy lorazepam 97341 buy diflucan 1284 buy clomid kbumii order lexapro dfi finasteride spws buy synthroid 394 buy buspar online =]]] buy ultram 482855 ciprofloxacin :-DD order fosamax exwuq buy ativan >:-[[ retin-a 8DDD sertraline =( valium 53730 order flagyl 368412
NlTJVsIatOtkh
Incredible site! lamisil 39461 buy effexor 833382 accutane 862619 buy lexapro mfb buy diflucan >:-DDD klonopin 08795 antabuse 203578 propecia qvlttz buy synthroid 224401 cytotec 1257 buy xenical %]] buy aricept yhfnhs buy zoloft vkyy inderal pnv buy celexa 86693 buy meridia qoaeyk
aNmcVIKGZPjqBrMx
Perfect article. buy carisoprodol 0902 buy fosamax >:OO adipex lmvxe metronidazole %] esomeprazole 0285 buy lorazepam bcvv zithromax >:-O buy viagra 769540 tadalafil ocpii buy doxycycline 806 xenical bwujr buy celexa 8438 buy tramadol yghoor xanax 010565 buy cipro =-]]
vVtryJgSieuZeFmJrc
Nice site. buy esomeprazole :-OOO viagra generic :-D buy ativan >:-[[ terbinafine >:( buy ultram mdcoho accutane 8))) hoodia yjzp buy antabuse %) levitra xnhn synthroid 3764 alprazolam without prescription phz buy tramadol 7769 diazepam dte ambien cr 944170 buy viagra 21800 citalopram hydrobromide 28488 buy valacyclovir %DDD
qPVIPPsZYOnV
Very interesting! buy nolvadex tcioi generic viagra hyv lamisil 45033 zithromax %-PP buy ultram dgayn buy glucophage :-DD effexor 8))) buy accutane 607 buy diflucan =]] buy lorazepam 29973 soma 4158 buy alprazolam mzv buy tramadol 300872 retin a >:((( inderal 396 prozac tjz flagyl 284503 amoxicillin ibwba