Found more than 19000 files and 14000 directories in my HM2 database folder. Looks like every player has its own directory. Its a very small database (150MB).
Can this be right?
Found more than 19000 files and 14000 directories in my HM2 database folder. Looks like every player has its own directory. Its a very small database (150MB).
Can this be right?
Yes, this is right.
The folders are in the Users/%yourusername%/AppData/Roaming/HoldemManager/Database/ subfolders.
I'm unsure why we're actually having a directory for each player. I'll email the developer to ask if that is really needed.
Participate in the Beta release of the newest Hold'em Manager version: HM Cloud. Sign-up HERE.
If you would like to leave some feedback to help us improve the quality of the solutions, and/or the support quality you received, - you can do this here
In HM1 there are a lot of tables that deal with a specific hand played by a specific player. In HM2 we don't have these tables, instead, for player related hand data, we use a flat file approach. Each player has his own folder and each file represents a single day. Each line within the file is a tokenized version of a single hand with incredible amounts of detail.
Your overall HM2 spaced used (DB + Files) is almost half of HM1 and we store probably 2-3 times as much info plus it can be accessed many, many times faster and allows us to do some things that wouldn't be possible otherwise, many of which are yet to come.
If you don't want the space in your Roaming folder due to C: file space or something like that, we do give you the option of storing this data anywhere
Roy
Okey, that`s fair if that is required.
btw, the version 5735 brought in the programm too many bugs, the version 5822 is even more horrible, cause the performance became terrible.
i installed back the version 5728, which seems to be really fine and smooth to me, and unfortunately will have to use it for a couple of months without updating, cause you`re patching speed and quality makes me hope for the best.
Keep up the _____ work.
Try this version and report bugs so that they get fixed, rather than just rolling back. There are times when the rollback will cause issues and crashes.
http://forums.holdemmanager.com/hm2-...l-release.html
Not just yet - we might change the format a bit. Either way we'll be providing documentation and tools to work with the data. Here is something to get started though - it shows the code used to build the lines. Some fields are further delimited by | and that is a street by street breakdown of the field
hand.StartDate.Year.ToString() + "," +
hand.StartDate.Month.ToString() + "," +
hand.StartDate.Day.ToString() + "," +
hand.StartDate.Hour.ToString() + "," +
hand.StartDate.Minute.ToString() + "," +
hand.StartDate.Second.ToString() + "," +
hand.GameNumber.ToString() + "," +
hand.TourneyNumber + "," +
hand.SiteID.ToString() + "," +
GameTypeID.ToString() + "," +
TableID.ToString() + "," +
P.Player_ID.ToString() + "," +
HM1toHM2ConversionHelper.GetSeatPosition(playerhan d.SeatPosition) + "," +
playerhand.OffTheButton.ToString() + "," +
hand.ButtonSeat.ToString() + "," +
playerhand.SeatNumber.ToString() + "," +
(playerhand.StackSize * 100).ToString("0") + "," +
(playerhand.EffectiveStackSize * 100).ToString("0") + "," +
GetHoleCardsString(playerhand) +
playerhand.IsHero.ToString().Substring(0, 1) + "," +
(playerhand.BlindAmountPosted * 100).ToString("0") + "," +
(playerhand.NetAmountWon * 100).ToString("0") + "," +
HM1toHM2ConversionHelper.GetPreflopActionFacingPla yer(playerhand.PreFlopActionStatus) + "," +
GetActionsByStreet(playerhand) + "," +
GetBetAmountsByStreet(playerhand) + "," +
GetCallAmountsByStreet(playerhand) + "," +
"," +
"," +
"," +
"," +
GetContinuationBetByStreet(playerhand) + "," +
GetRelativePositionByStreet(playerhand) + "," +
GetSituationFacingPlayerByStreet(playerhand) + "," +
GetMadeHandValueByStreet(playerhand) + "," +
GetFlushDrawValueByStreet(playerhand) + "," +
GetStraightDrawValueByStreet(playerhand) + "," +
hand.NumberOfPlayers.ToString() + "," +
(hand.NumberOfPlayersWhoSawFlop > 0 ? hand.NumberOfPlayersWhoSawFlop.ToString() : "") + "," +
(hand.NumberOfPlayersWhoSawTurn > 0 ? hand.NumberOfPlayersWhoSawTurn.ToString() : "") + "," +
(hand.NumberOfPlayersWhoSawRiver > 0 ? hand.NumberOfPlayersWhoSawRiver.ToString() : "") + "," +
(hand.NumberOfPlayersWhoSawShowdown > 0 ? hand.NumberOfPlayersWhoSawShowdown.ToString() : "") + "," +
(hand.PotSizePerStreet[0] * 100).ToString("0") + "," +
(hand.FlopHappened ? (hand.PotSizePerStreet[1] * 100).ToString("0") : "") + "," +
(hand.TurnHappened ? (hand.PotSizePerStreet[2] * 100).ToString("0") : "") + "," +
(hand.RiverHappened ? (hand.PotSizePerStreet[3] * 100).ToString("0") : "") + "," +
(playerhand.CalculatedRake * 100).ToString("0") + "," +
(hand.RakeAmount * 100).ToString("0") + "," +
HM1toHM2ConversionHelper.GetStreetWentAllIn(player hand.StreetWentAllIn) + "," +
HM1toHM2ConversionHelper.GetStealSituationType(pla yerhand) + "," +
(playerhand.AllInEv * 1000).ToString("0") + "," +
(playerhand.SklanskyDollarsWon * 100).ToString("0") + "," +
vsPlayerString + "," +
HM1toHM2ConversionHelper.GetSeatPosition(hand.Posi tionOfFirstLimperPreflop) + "," +
HM1toHM2ConversionHelper.GetSeatPosition(hand.Posi tionOfFirstRaiserPreflop) + "," +
hand.NameOfFirstRaiserPreflop.Replace(",", "|COMMA|") + "," +
HM1toHM2ConversionHelper.GetSeatPosition(hand.Posi tionOfFirstThreeBetPreflop) + "," +
hand.NameOfFirstThreeBetPreflop.Replace(",", "|COMMA|") + "," +
GetCommunityCardString(hand) +
(playerhand.IcmDollarsWon * 100).ToString("0") + "," +
WinningPlayerIDAndHoleCards + "," +
HM1toHM2ConversionHelper.GetMaxStreetSeen(playerha nd.MaxStreetSeen).ToString() + "," +
WinningPlayerAmountWonInCents + "," +
PreflopPotSizesPerActionInBBs(playerhand) + "," +
PreflopBetOrRaisedFacingPlayerPerActionInBBs(playe rhand) + "," +
PreflopPlayerActionAmountInBBs(playerhand) + "," +
FlopPotSizesPerActionInBBs(playerhand) + "," +
FlopBetOrRaisedFacingPlayerPerActionInBBs(playerha nd) + "," +
FlopPlayerActionAmountInBBs(playerhand) + "," +
TurnPotSizesPerActionInBBs(playerhand) + "," +
TurnBetOrRaisedFacingPlayerPerActionInBBs(playerha nd) + "," +
TurnPlayerActionAmountInBBs(playerhand) + "," +
RiverPotSizesPerActionInBBs(playerhand) + "," +
RiverBetOrRaisedFacingPlayerPerActionInBBs(playerh and) + "," +
RiverPlayerActionAmountInBBs(playerhand) + "," +
PostflopEquityvsRandom(playerhand);